-
Notifications
You must be signed in to change notification settings - Fork 8
software options
David J. Harris edited this page Sep 29, 2015
·
10 revisions
I (Dave) thought it would be a good idea to list some options for software packages we could use. Right now, I'm leaning toward Stan or pomp if we don't need adaptive nonlinearities, or mistnet if we do. If Stan is flexible enough for the models we're interested in, it could be orders of magnitude faster than pomp. It looks like we'd run into limitations pretty fast with the other packages.
Here's a list of packages that might do the kind of state space modeling we'd want:
-
mistnet plus a particle filter
- Advantages: This is the only package on the list with a good way to learn about nonlinear relationships
- Disadvantages: we'd have to write the particle filter ourselves. Mistnet also has a lot of hyperparameters, and probably isn't as well-tested as Stan or pomp.
-
Stan
- Advantages: highly efficient MCMC, can fit any model with a tractable likelihood
- Disadvantages: Can't fit models with intractable likelihoods
-
pomp
- Advantages: can write the model in R or C, many built-in fitting methods (iterated filtering, particle MCMC, approximate Bayesian computation, etc.). Can fit a larger range of models than Stan (e.g. continuous time population models with discrete numbers of interacting individuals) because the likelihood doesn't have to be tractable
- Disadvantages: most included methods need to use Monte Carlo methods for all aspects of inference; can't always add shortcuts by marginalizing things out. Will probably be much slower than Stan for the class of models where they overlap
-
KFAS
- Advantages: Possibly simpler than Stan or pomp?
- Disadvantages: limited formula interface?
-
INLA
- Advantages: No Monte Carlo needed, so possibly very efficient
- Disadvantages: INLA is an approximation. Need to "trick" the package into fitting the model; same for multinomial data.
Here's a list of packages that do state space modeling that I think we can rule out for one reason or another:
- MARSS assumes Gaussian errors, which is basically incompatible with the rodent count data