Class for the miMathematical Description of Multi Dimensional Jump Diffusion Processes
Class for the miMathematical Description of Multi Dimensional Jump Diffusion Processes
The yuima.multimodel class is a class of the yuima package that extends the yuima.model-class.
class
Slots
drift:: always expression((0)).
diffusion:: a list of expression((0)).
hurst:: always h=0.5, but ignored for this model.
jump.coeff:: set according to scale in setPoisson.
measure:: a list containting the intensity measure and the jump distribution.
measure.type:: always "CP".
state.variable: a vector of names identifying the names used to denote the state variable in the drift and diffusion specifications.
parameter:: which is a short name for ``parameters'', is an object of class model.parameter-class. For more details see model.parameter-class documentation page.
state.variable:: identifies the state variables in the
expression.
jump.variable:: identifies the variable for the jump coefficient.
time.variable:: the time variable.
noise.number:: denotes the number of sources of noise.
equation.number:: denotes the dimension of the stochastic differential equation.
dimension:: the dimensions of the parameter given in the parameter slot.
solve.variable:: identifies the variable with respect to which the stochastic differential equation has to be solved.
xinit:: contains the initial value of the stochastic differential equation.
J.flag:: wheather jump.coeff include jump.variable.
Methods
simulate: simulation method. For more information see simulate.
qmle: Quasi maximum likelihood estimation procedure. For more information see qmle.
Author(s)
The YUIMA Project Team
Examples
## Not run:# We define the density function of the underlying Levydmyexp <-function(z, sig1, sig2, sig3){ rep(0,3)}# We define the random number generatorrmyexp <-function(z, sig1, sig2, sig3){ cbind(rnorm(z,0,sig1), rgamma(z,1,sig2), rnorm(z,0,sig3))}# Model Definition: in this case we consider only a multi# compound poisson process with a common intensity as underlying# noisemod <- setModel(drift = matrix(c("0","0","0"),3,1), diffusion =NULL, jump.coeff = matrix(c("1","0","0","0","1","-1","1","0","0"),3,3), measure = list( intensity ="lambda1", df ="dmyexp(z,sig1,sig2,sig3)"), jump.variable = c("z"), measure.type=c("CP"), solve.variable=c("X1","X2","X3"))# Sample schemesamp<-setSampling(0,100,n=1000)param <- list(lambda1 =1, sig1 =0.1, sig2 =0.1, sig3 =0.1)# Simulationtraj <- simulate(object = mod, sampling = samp, true.parameter = param)# Plotplot(traj, main =" driven noise. Multidimensional CP", cex.main =0.8)# We construct a multidimensional SDE driven by a multivariate# levy process without CP components.# Definition multivariate densitydmyexp1 <-function(z, sig1, sig2, sig3){ rep(0,3)}# Definition of random number generator# In this case user must define the delta parameter in order to# control the effect of time interval in the simulation.rmyexp1 <-function(z, sig1, sig2, sig3, delta){ cbind(rexp(z,sig1*delta), rgamma(z,1*delta,sig2), rexp(z,sig3*delta))}# Model defintionmod1 <- setModel(drift=matrix(c("0.1*(0.01-X1)","0.05*(1-X2)","0.1*(0.1-X3)"),3,1), diffusion=NULL, jump.coeff = matrix(c("0.01","0","0","0","0.01","0","0","0","0.01"),3,3), measure = list(df="dmyexp1(z,sig1,sig2,sig3)"), jump.variable = c("z"), measure.type=c("code"), solve.variable=c("X1","X2","X3"),xinit=c("10","1.2","10"))# Simulation sample pathssamp<-setSampling(0,100,n=1000)param <- list(sig1 =1, sig2 =1, sig3 =1)# Simulationset.seed(1)traj1 <- simulate(object = mod1, sampling = samp, true.parameter = param)# Plotplot(traj1, main ="driven noise: multi Levy without CP", cex.main =0.8)# We construct a multidimensional SDE driven by a multivariate# levy process.# We consider a mixed situation where some# noise are driven by a multivariate Compuond Poisson that# shares a common intensity parameters.### Multi Levy modelrmyexample2<-function(z,sig1,sig2,sig3, delta){if(missing(delta)){ delta<-1} cbind(rexp(z,sig1*delta), rgamma(z,1*delta,sig2), rexp(z,sig3*delta), rep(1,z), rep(1,z))}dmyexample2<-function(z,sig1,sig2,sig3){ rep(0,5)}# Definition Modelmod2 <- setModel(drift=matrix(c("0.1*(0.01-X1)","0.05*(1-X2)","0.1*(0.1-X3)","0","0"),5,1), diffusion=NULL, jump.coeff = matrix(c("0.01","0","0","0","0","0","0.01","0","0","0","0","0","0.01","0","0","0","0","0","0.01","0","0","0","0","0","0.01"),5,5), measure = list(df ="dmyexample2(z,sig1,sig2,sig3)", intensity ="lambda1"), jump.variable = c("z"), measure.type=c("code","code","code","CP","CP"), solve.variable=c("X1","X2","X3","X4","X5"), xinit=c("10","1.2","10","0","0"))# Simulation schemesamp <- setSampling(0,100, n =1000)param <- list(sig1 =1, sig2 =1, sig3 =1, lambda1 =1)# Simulationset.seed(1)traj2 <- simulate(object = mod2, sampling = samp, true.parameter = param)plot(traj2, main ="driven noise: general multi Levy", cex.main =0.8)## End(Not run)