lower: a named list for specifying lower bounds of parameters.
upper: a named list for specifying upper bounds of parameters.
start: initial values to be passed to the optimizer.
joint: perform joint estimation or two stage estimation, by default joint=FALSE. If there exists an overlapping parameter, joint=TRUE does not work for the theoretical reason
third: perform third estimation by default third=FALSE. If there exists an overlapping parameter, third=TRUE does not work for the theoretical reason.
Est.Incr: the qmleLevy returns an object of mle-clas, by default Est.Incr="NoIncr", other options as "Incr" or "IncrPar".
aggregation: If aggregation=TRUE, the function returns the unit-time Levy increments. If Est.Incr="IncrPar", the function estimates Levy parameters using the unit-time Levy increments.
Details
This function performs Gaussian quasi-likelihood estimation for Levy driven SDE.
Returns
first: estimated values of first estimation (scale parameters)
second: estimated values of second estimation (drift parameters)
third: estimated values of third estimation (scale parameters)
Note
The function qmleLevy uses the function qmle internally. It can be applied only for the standardized Levy noise whose moments of any order exist. In present yuima package, birateral gamma (bgamma) process, normal inverse Gaussian (NIG) process, variance gamma (VG) process, and normal tempered stable process are such candidates. In the current version, the standardization condition on the driving noise is internally checked only for the one-dimensional noise. The standardization condition for the multivariate noise is given in
They also contain more presice explanation of this function.
References
Masuda, H. (2013). Convergence of Gaussian quasi-likelihood random fields for ergodic Levy driven SDE observed at high frequency. The Annals of Statistics, 41(3), 1593-1641.
Masuda, H. and Uehara, Y. (2017). On stepwise estimation of Levy driven stochastic differential equation (Japanese) ., Proc. Inst. Statist. Math., accepted.
Author(s)
The YUIMA Project Team
Examples
## Not run:## One-dimensional case dri<-"-theta0*x"## set driftjum<-"theta1/(1+x^2)^(-1/2)"## set jumpyuima<-setModel(drift = dri
,jump.coeff = jum
,solve.variable ="x",state.variable ="x",measure.type ="code",measure = list(df="rbgamma(z,1,sqrt(2),1,sqrt(2))"))## set true modeln<-3000T<-30## terminalhn<-T/n ## stepsizesam<-setSampling(Terminal = T, n=n)## set sampling schemeyuima<-setYuima(model = yuima, sampling = sam)## modeltrue<-list(theta0 =1,theta1 =2)## true valuesupper<-list(theta0 =4, theta1 =4)## set upper boundlower<-list(theta0 =0.5, theta1 =1)## set lower boundset.seed(123)yuima<-simulate(yuima, xinit =0, true.parameter = true,sampling = sam)## generate a pathstart<-list(theta0 = runif(1,0.5,4), theta1 = runif(1,1,4))## set initial valuesqmleLevy(yuima,start=start,lower=lower,upper=upper, joint =TRUE)## Multi-dimensional caselambda<-1/2alpha<-1beta<-c(0,0)mu<-c(0,0)Lambda<-matrix(c(1,0,0,1),2,2)## set parameters in noisedri<-c("1-theta0*x1-x2","-theta1*x2")jum<-matrix(c("x1*theta2+1","0","0","1"),2,2)## set coefficientsyuima <- setModel(drift=dri, solve.variable=c("x1","x2"),state.variable = c("x1","x2"), jump.coeff=jum, measure.type="code", measure=list(df="rvgamma(z, lambda, alpha, beta, mu, Lambda
)"))n<-3000## the number of total samplesT<-30## terminalhn<-T/n ## stepsizesam<-setSampling(Terminal = T, n=n)## set sampling schemeyuima<-setYuima(model = yuima, sampling = sam)## modeltrue<-list(theta0 =1,theta1 =2,theta2 =3,lambda=lambda, alpha=alpha,beta=beta,mu=mu, Lambda=Lambda)## true valuesupper<-list(theta0 =4, theta1 =4, theta2 =5, lambda=lambda, alpha=alpha,beta=beta,mu=mu, Lambda=Lambda)## set upper boundlower<-list(theta0 =0.5, theta1 =1, theta2 =1, lambda=lambda, alpha=alpha,beta=beta,mu=mu, Lambda=Lambda)## set lower boundset.seed(123)yuima<-simulate(yuima, xinit = c(0,0), true.parameter = true,sampling = sam)## generate a pathplot(yuima)start<-list(theta0 = runif(1,0.5,4), theta1 = runif(1,1,4),theta2 = runif(1,1,5),lambda=lambda, alpha=alpha,beta=beta,mu=mu, Lambda=Lambda)## set initial valuesqmleLevy(yuima,start=start,lower=lower,upper=upper,joint =FALSE,third=TRUE)## End(Not run)