this time I have a suggestion for a new feature for MASON and I wonder
if others would also find it useful.
The point is that I find myself often with the problem to run a
simulation until one or all of my agent types have reached a steady
state. Basically I keep track of the number of my agents with a variable
and then plot this variable while the simulation is running. I simply
watch this plot and stop it manually whenever I have the feeling that a
steady state is reached.
But this seems to be a very non-reproducible and cumbersome way of doing it.
Maybe this would be a job for the Schedule class of MASON ?
If we are only interested in the total number of all agents Schedule has
in principle all the information it needs (number of agents at each time
step). Of course if there are different agent types and the all should
reach equilibrium things might become more complicated. I'm not sure
what the best way is to test if a variable that is subject to random
fluctuations has reached a steady state. Some ideas would be
(1) take the last N values, calculate a linear regression line and
compute the p-value that the slope is different from zero.
(2) to avoid the arbitrary choice of N, one could also start with the
last 2 points and calculate the p-value. If it is below a given
threshold stop, if not repeat the calculation with the last 3 points,
etc. until a p-value below the threshold is found or until all available
points are used. This seems computationally very expensive, but it was
just an idea.