-
Notifications
You must be signed in to change notification settings - Fork 1
Development plan
In pomp, the central element is the pomp
class, which holds data and model.
The organizing principle is that the model is decomposed into "basic components", each of which is a procedure that computes some model-specific computation.
At present, these are:
-
rprocess
: simulation of the latent state process -
dprocess
: evaluation of the latent state process' transition density (i.e., state_t | state_{t-1}) -
rmeasure
: simulation of the measurement process -
dmeasure
: evaluation of the measurement model density (i.e., data | state) -
rprior
,dprior
-
skeleton
: evaluation of a "deterministic skeleton" -
emeasure
,vmeasure
: expectation and variance of data | state
In the beginning, the first four of these were envisioned, and a lot of the development hinged on replicating these four for various models. Carles Breto took to calling these the "four horsemen". Now there are more than four, but the name seems as good as any.
"Workhorses" in the current pomp implementation are methods that perform the required computation for a specific pomp
-class object.
Therefore, the workhorses are the links between models and algorithms.
Change: It might make sense to dispense with skeleton
altogether, since we can (and maybe should) view a deterministic latent process as a degenerate case.
To accomplish this, we'd need to implement rprocess
plugins for DE solvers and map iterators.
We could then do away with trajectory
(below).
The first layer of nontrivial algorithms in pomp are:
-
simulate
: Simulate from the joint latent-state/measurement process. -
pfilter
: A vanilla particle filter. -
trajectory
: Compute the deterministic trajectory corresponding to the object's skeleton. -
probe
: Compute summary statistics from simulations.
Many algorithms for estimation of parameters and model comparison can be built on these foundations. The immediately most useful ones, I would guess, are:
- Iterated filtering
- Particle MCMC
- ABC
Down the list are other algorithms:
- Synthetic likelihood maximization or MCMC
- Ensemble Kalman filter methods
- Trajectory matching
- Collocation methods