User:Carl Boettiger/Notebook/Stochastic Population Dynamics/2010/05/26

{| width="800"
 * style="background-color: #EEE"|[[Image:owwnotebook_icon.png|128px]] Stochastic Population Dynamics
 * style="background-color: #F2F2F2" align="center"|  |Main project page
 * style="background-color: #F2F2F2" align="center"|  |Main project page


 * colspan="2"|
 * colspan="2"|

Rethinking Beetles Noise

 * Noise in the larval class is damped by $$ \partial_L f_L $$ and grows proportional to its intrinsic variation and the contribution of other classes through their derivatives of $$ f_L $$, that is, $$ \partial_E f_l $$ as well as the sum of its intrinsic rates (essentially whichever is larger). Taking E dynamics to be fast we might reduce to a continous time LPA model:

\begin{align} & \dot L = a_e \frac{bA - c_{ea} A - c_{el} L}{a_e + \mu_e} - a_l - \mu_l \\ & \dot P = a_l L - \mu_p P - a_p P \\ & \dot A = a_p P - \mu_a A \end{align} $$

and the larval fluctuations are essentially:

\begin{align} \sigma^2_L &= \frac{\nu + \beta_L}{2 \partial_L f_L} \\ \nu &= \frac{ 2(\partial_A f_L)^2 \sigma_A^2 }{\partial_L f_L + \partial_A f_A} \\ \partial_A L &= \frac{a_e (b - c_{ea} ) }{a_e + \mu_e} \end{align} $$ where $$ \beta_i $$ is the intrinsic noise of the age class. Hence a class i which propagates large noise to another class j has a large $$ \partial_i f_j $$. If this term is a linear transition $$ \lambda X_i $$, then the same term appears in $$ f_i $$ and hence damps the noise $$ \sigma_i^2 $$ and cancels out. Hence noise must propagate into a class through nonlinear transition rates OR through an asymmetry in the transition (i.e. the c_1, c_2 large noise example in the generalized crowley).

Compare to noise in Eggs:



\sigma^2_E = \frac{ \frac{ (\sigma_L^2 c_{el} +\sigma_A^2 c_{ea} )E^2 }{\mu_A + \mu_L + a_L}+ \beta_E/2}{\mu_E + c_{ea} A + c_{el} L + a_e} $$

Adding age delay to beetle dynamics
Current formulation has used exponential waiting times between stages. By subdividing the classes (increasing the system dimension size) and creating single jump within-state transitions, these become gamma-distributed waiting times. Adding ten steps to each phase and a little parameter fiddling introduces sustained oscillations. (Version-stable code).



beetle_pars <- c(b=5, ue= 0, ul = 0.001, up = 0.00001, ua = 0.01, ae = 1.3, al = .1, ap = 1.5, cle = .2, cap = .1, cae = 5, V=100)

Xo[1] = 100


 * Implementation still needs trouble-shooting, variance dynamics don't seem to be being computed correctly. done
 * Adult class doesn't need multiple stages. done
 * Code should allow for a general k classes rather than a fixed 10 classes. done

and now we have noise in oscillatory, gamma-waiting model:




 * parameters as before, see version-stable code.

Misc / Code notes

 * R-evolution parallelizes the variance dynamics calculation (perhaps the matrix multiplication step?) and is probably responsible for the openmp parallelization working.


 * article on cloud computing vs grid. reminds me to include questions on cloud computing in the CSGF survey.
 * Should also take a closer read of the recent: Kendall BE, Wittmann ME. A stochastic model for annual reproductive success. The American naturalist. 2010;175(4):461-8. Available at: http://www.ncbi.nlm.nih.gov/pubmed/20163244.


 * }