Description Usage Arguments Details Value Syntactical jargon Note Author(s) References See Also Examples
JGQD.mcmc()
uses parametrised coefficients (provided by the user as Rfunctions) to construct a C++ program in real time that allows the user to perform Bayesian inference on the resulting jump diffusion model. Given a set of starting parameters, a MCMC chain is returned for further analysis.
The structure of the model is predefined and coefficients may be provided for models nested within the generalized quadratic diffusion framework.
JGQD.mcmc()
performs inference using the MetropolisHastings algorithm for jump diffusions of the form:
where
and
describes a Poisson process with jumps of the form:
arriving with intensity
subject to a jump distribition of the form:
1 2 3 4 5 
X 
Time series (vector) of discretely observed points of the process of interest. These may be nonequidistant observations (see 
time 
A vector of timestamps associated with each observation in 
mesh 
The number mesh points between any two given data points. 
theta 
The parameter vector of the process. 
sds 
Proposal distribution standard deviations. That is, for the ith parameter the proposal distribution is ~ Normal(..., 
updates 
The number of chain updates (including burned updates) to perform. 
burns 
The number of updates to burn. That is, the first 
exclude 
Vector indicating which transitions to exclude from the analysis. Default = 
plot.chain 
If 
RK.order 
The order of the RungeKutta solver used to approximate the trajectories of cumulants. Must be 4 or (default) 10. 
Dtype 
Character string indicating the type of density approximation (see details) to use. Types: 
Tag 

wrt 
If 
Jdist 
Valid entries are 'Normal', 'Expnential', 'Gamma' and 'Laplace'. 
Jtype 
Valid types are 'Add' or 'Mult'. 
factorize 
Should factorization be used (default = TRUE). 
print.output 
If 
decode 
Should the algorithm estimate jump detection probabilities? Default value is 
palette 
Colour palette for drawing trace plots. Default 
JGQD.mcmc()
operates by searching the workspace for functions with names that match the coefficients of the predefined stochastic differential equation. Only the required coefficients need to be specified e.g. G0(t)
,G1(t)
and Q0(t)
for an OrnsteinUhlenbeck model. Unspecified coefficients are ignored. When a new model is to be defined, the current model may be removed from the workspace by using the JGQD.remove
function, after which the new coefficients may be supplied.
par.matrix 
A matrix containing the MCMC chain on 
acceptence.rate 
A vector containing the acceptance rate of the MCMC at every iteration. 
model.info 
A list of variables pertaining to inference calculations. 
model.info$elapsed.time 
The runtime, in h/m/s format,of the MCMC procedure (excluding compile time). 
model.info$time.homogeneous 
‘No’ if the model has timehomogeneous coefficients and ‘Yes’ otherwise. 
model.info$p 
The dimension of 
model.info$DIC 
Calculated Deviance Information Criterion. 
model.info$pd 
Effective number of parameters (see 
decode.prob 
Estimated jump detection probabilities. 
Synt. [1]: The coefficients of the JGQD may be parameterized using the reserved variable theta
. For example:
G0 < function(t){theta[1]*(theta[2]+sin(2*pi*(ttheta[3])))}
.
Synt. [2]: Due to syntactical differences between R and C++ special functions have to be used when terms that depend on t
. When the function cannot be separated in to terms that contain a single t
, the prod(a,b)
function must be used. For example:
G0 < function(t){0.1*(10+0.2*sin(2*pi*t)+0.3*prod(sqrt(t),1+cos(3*pi*t)))}
.
Here sqrt(t)*cos(3*pi*t) constitutes the product of two terms that cannot be written i.t.o. a single t
. To circumvent this isue, one may use the prod(a,b)
function.
Synt. [3]: Similarly, the ^  operator is not overloaded in C++. Instead the pow(x,p)
function may be used to calculate x^p. For example sin(2*pi*t)^3 in:
G0 < function(t){0.1*(10+0.2*pow(sin(2*pi*t),3))}
.
Note [1]: When plot.chain
is TRUE
, a trace plot is created of the resulting MCMC along with the acceptance rate at each update. This may save time when scrutinizing initial MCMC runs.
Etienne A.D. Pienaar: etiennead@gmail.com
Updates available on GitHub at https://github.com/eta21.
Daniels, H.E. 1954 Saddlepoint approximations in statistics. Ann. Math. Stat., 25:631–650.
Eddelbuettel, D. and Romain, F. 2011 Rcpp: Seamless R and C++ integration. Journal of Statistical Software, 40(8):1–18,. URL http://www.jstatsoft.org/v40/i08/.
Eddelbuettel, D. 2013 Seamless R and C++ Integration with Rcpp. New York: Springer. ISBN 9781461468677.
Eddelbuettel, D. and Sanderson, C. 2014 Rcpparmadillo: Accelerating R with highperformance C++ linear algebra. Computational Statistics and Data Analysis, 71:1054–1063. URL http://dx.doi.org/10.1016/j.csda.2013.02.005.
Feagin, T. 2007 A tenthorder RungeKutta method with error estimate. In Proceedings of the IAENG Conf. on Scientifc Computing.
Varughese, M.M. 2013 Parameter estimation for multivariate diffusion systems. Comput. Stat. Data An., 57:417–428.
1 2 3 4 5 6 7 8  #===============================================================================
# For detailed notes and examples on how to use the JGQD.mcmc() function, see
# the following vignette:
RShowDoc('Part_4_Likelihood_Inference',type='html','DiffusionRjgqd')
#===============================================================================

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.