Description Usage Arguments Details Value C API Author(s) References See Also Examples
pomp provides a number of probability distributions that have proved useful in modeling partially observed Markov processes. These include the Euler-multinomial family of distributions and the the Gamma white-noise processes.
1 2 3 4 5  | reulermultinom(n = 1, size, rate, dt)
deulermultinom(x, size, rate, dt, log = FALSE)
rgammawn(n = 1, sigma, dt)
 | 
n | 
 integer; number of random variates to generate.  | 
size | 
 scalar integer; number of individuals at risk.  | 
rate | 
 numeric vector of hazard rates.  | 
dt | 
 numeric scalar; duration of Euler step.  | 
x | 
 matrix or vector containing number of individuals that have succumbed to each death process.  | 
log | 
 logical; if TRUE, return logarithm(s) of probabilities.  | 
sigma | 
 numeric scalar; intensity of the Gamma white noise process.  | 
If N individuals face constant hazards of death in k ways at rates r1,r2,…,rk, then in an interval of duration dt, the number of individuals remaining alive and dying in each way is multinomially distributed:
(N-∑(dni), dn1, …, dnk) ~ multinomial(N;p0,p1,…,pk),
where dni is the number of individuals dying in way i over the interval, the probability of remaining alive is p0=exp(-∑(ri dt)), and the probability of dying in way j is
pj=(1-exp(-sum(ri dt))) rj/(∑(ri)).
In this case, we say that
(dn1,…,dnk)~eulermultinom(N,r,dt),
where r=(r1,…,rk). Draw m random samples from this distribution by doing
1  |     dn <- reulermultinom(n=m,size=N,rate=r,dt=dt),
 | 
 where r is the vector of rates.
Evaluate the probability that x=(x1,…,xk) are the numbers of individuals who have died in each of the k ways over the interval dt,
by doing 
1  |     deulermultinom(x=x,size=N,rate=r,dt=dt).
 | 
Breto & Ionides (2011) discuss how an infinitesimally overdispersed death process can be constructed by compounding a multinomial process with a Gamma white noise process. The Euler approximation of the resulting process can be obtained as follows. Let the increments of the equidispersed process be given by
1  |     reulermultinom(size=N,rate=r,dt=dt).
 | 
In this expression, replace the rate r with r {Δ W}/{Δ t}, where Δ W \sim \mathrm{Gamma}(Δ t/σ^2,σ^2) is the increment of an integrated Gamma white noise process with intensity σ. That is, Δ W has mean Δ t and variance σ^2 Δ t. The resulting process is overdispersed and converges (as Δ t goes to zero) to a well-defined process. The following lines of code accomplish this:
1  | 
1  |     dn <- reulermultinom(size=N,rate=r,dt=dW)
 | 
or
1  |     dn <- reulermultinom(size=N,rate=r*dW/dt,dt=dt).
 | 
He et al. (2010) use such overdispersed death processes in modeling measles.
For all of the functions described here, access to the underlying C routines is available: see below.
reulermultinom | 
 Returns a   | 
deulermultinom | 
 Returns a vector (of length equal to the number of columns of   | 
rgammawn | 
 Returns a vector of length   | 
An interface for C codes using these functions is provided by the package. At a prompt, execute
1  |     file.show(system.file("include/pomp.h",package="pomp2"))
 | 
to view the ‘pomp.h’ header file that defines and explains the API.
Aaron A. King
C. Breto & E. L. Ionides, Compound Markov counting processes and their applications to modeling infinitesimally over-dispersed systems. Stoch. Proc. Appl., 121:2571–2591, 2011.
D. He, E. L. Ionides, & A. A. King, Plug-and-play inference for disease dynamics: measles in large and small populations as a case study. J. R. Soc. Interface, 7:271–283, 2010.
Other information on model implementation: Csnippet,
accumulators,
covariate_table,
dmeasure_spec, dprocess_spec,
parameter_trans,
pomp2-package, prior_spec,
rinit_spec, rmeasure_spec,
rprocess_spec, skeleton_spec,
transformations, userdata
1 2 3 4 5 6  | 
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.