User:Carl Boettiger/Notebook/Stochastic Population Dynamics/2010/05/21
Stochastic Population Dynamics  Main project page Previous entry Next entry 
Puzzled over the twostep jump process resultsThe variance dynamics are slightly different if the continuous time Markov process allows events to contain two steps (such as a transition of an individual from one age class to another, or one patch to another, etc) as well as one step birth/death) transitions. [math]\displaystyle{ V\tau_{ij}(X/V) }[/math] to represent the rate of transitions from state i to state j. We change variables for our state space from the discrete count state variable X by dividing by the system size (volume) V, to obtain the continuous, meanfield approximation of the density p = X/V. Then:
where T is a symmetric matrix with offdiagonal elements i,j [math]\displaystyle{ \tau_{ij}(p) + \tau{ji}(p) }[/math] and diagonal elements chosen so that rows sum to zero. This approximation is implemented in noise_approx.R Example: Crowley model
(Note this is the original Crowley model where the c coefficients are equal. In the original model this represented competition for space by overgrowth and hence would more naturally be expressed as a two step process).
Interpreting the cxy terms as transitions rather than independent birth and death events results in the same meanfield dynamics but differing fluctuations. For instance, the covariance dynamics are:
Whereas interpreted as singlestep birth and death the cxy term at the end is absent. The variance dynamics are similarly altered. Numerical implementationThis individualbased simulation is implemented in metapop.c and callable from R interface from ind_based_models.R as metapop_ibm(). The file metapop.R specifies the dynamics of birth, death, transition matrix and the Jacobian so that linear_noise_approx() function from above can be used to calculate the moments. This file also runs the crolwey_ibm model (from crowley.c, interface in the ind_based.models.R) and the linear noise approximation to it from crowley.R to compare how the twostep process changes the noise dynamics. This comparison can be run simply by loading the package and running metapop_example() function. For some reason the individual basedsimulation of the twostep process seems to resemble that of the onestep process more, while the twostep linear noise approximation alternately underestimates (Fig 1) or overestimates (Fig 2) the variance. Looking for bugs in the implementation at the moment.
