5
$\begingroup$

I have set out to implement a simple ABC rejection sampling algorithm in order to approximate the posterior distribution of parameters for Lotka-Volterra system and I have a few questions:

1) What kind of prior would one impose on the parameters of LV model? Is a uniform distribution of parameters a reasonable choice? I understand that i'd need something a bit more powerful than rejection sampling approach (e.g. ABC SMC).

2) What would be a good choice of summary statistic and a distance measure for acceptance decision? I can imagine that KL distance could be a candidate but, from experience, what works best?

3) How do we "sample" from the model? The first thing that comes to mind is using Gillespie algorithm but i can't be sure.

Thank you!

$\endgroup$
1
  • 1
    $\begingroup$ There's actually a fully worked-out tutorial for the Lotka-Volterra model in Stan available on MC-stan.org $\endgroup$
    – Durden
    Commented Jul 14 at 21:31

1 Answer 1

3
$\begingroup$
  1. Prior choice for ABC is not different than for standard Bayesian analysis - if your parameters act strongly nonlinear on the likelihood, uniform may not be a sensible choice. See, e.g. Kass, R. E. & Wasserman, L. (1996) The selection of prior distributions by formal rules. J. Am. Stat. Assoc., American Statistical Association, 91, 1343-1370. A sensitivity analysis may be useful.

  2. Impossible to say if you don't say what data you have - in any case, you typically want to have several summary statistics. You could have a look at the summary statistics tested in Wood, S. N. (2010) Statistical inference for noisy nonlinear ecological dynamic systems. Nature, 466, 1102-1104, this is a fairly similar setup.

  3. You need a stochastic model - standard LV is not stochastic, you will need to introduce some stochasticity in the equations.

$\endgroup$
5
  • $\begingroup$ Thank you for your input! I will check out the references. As for your answer to question 3: true, this is where i am planning to use a stochastic system of rate equations with corresponding propensities and use Gillespie to draw samples inspired by R. Erban, et al "A practical guide to stochastic simulation of reaction diffusion processes". I am just not 100% sure it is the way to go. $\endgroup$
    – ambushed
    Commented Apr 3, 2016 at 21:36
  • 1
    $\begingroup$ You might also want to have a look at this paper: arxiv.org/abs/1403.6886. They use ABC to fit LV. As for summaries, you could probably use those of Wood (2010) (they are implemented by the synlik R package if you are interested), but if both prey and predator densities are observed you will need to add statistics measuring their dependence (for instance vector autoregressive coefficients?). $\endgroup$ Commented Apr 3, 2016 at 21:58
  • $\begingroup$ As for the data, i will fake it for now. Choose a parameter set, sample with it and try to see how close I can get to the posterior with ABC. Nothing fancy. $\endgroup$
    – ambushed
    Commented Apr 3, 2016 at 21:59
  • 1
    $\begingroup$ @ambushed / regarding 3 - if you just want to play around I see no runtime issue with simply doing the LV as a stochastic difference equation, as in Np (t+1) = f(Np, Npre) + stochasticity ... and so on. $\endgroup$ Commented Apr 4, 2016 at 16:27
  • 2
    $\begingroup$ I would suggest looking at Toni et al. (2009) "Approximate Bayesian computation scheme for parameter inference and model selection in dynamical systems" J Roy Soc Inferface. 6. (doi: 10.1098/rsif.2008.0172) as they illustrate this problem (choosing parameters for LV based upon noisey data) and compare ABC-rejection, ABC-MCMC, and ABC-SMC. In response to your questions: 1) they use a uniform prior for parameters; 2) they use SSE; 3) they first solve deterministic LV with known parameters and add Gaussian noise. $\endgroup$
    – p-robot
    Commented Oct 14, 2016 at 11:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.