[R] ARMA(0,2) & GARCH(1,1) - code & hessian
Yohan Chalabi
chalabi at phys.ethz.ch
Tue Aug 19 16:22:13 CEST 2008
Hi,
As far as I can tell, your code looks very similar to the example of
the paper "Parameter Estimation of ARMA Models with GARCH/APARCH
Errors" available at the rmetrics website. In this paper you can also
find an example how to calculate the hessian matrix.
What is the dataset and the parameters you are trying to estimate?
regards,
Yohan
regards,
Yohan
>>>> "DK" == Desislava Kavrakova <dkavrakova at yahoo.com>
>>>> on Mon, 18 Aug 2008 02:03:05 -0700 (PDT)
DK> Hello R-list-members,
DK> I'm trying to model ARMA(0,2) & GARCH(1,1) process using the code below, but according to my textbook, the estimated parameters are wrong. The MA-parameters should be negative. (I've got the same problem using garchFit()). Can anyone tell me what I'm doing wrong? And how can I calculate the hessian matrix?
DK>
DK> Many thanks,
DK> Desislava Kavrakova
DK>
DK>
DK> Code:
DK>
DK> garch<-function(x){
DK> x<<-ts(x)
DK> n<-length(x)
DK>
DK> Mean = mean(x); Var = var(x); S = 1e-6
DK> param = c(a = Mean, b1 = S, b2 = S, alpha0 = 0.1*Var,alpha = 0.1, beta = 0.8)
DK> lowerB = c(a = -10*abs(Mean), b1 = S-1, b2 = S-1, alpha0 = S^2, alpha = S, beta = S)
DK> upperB = c(a = 10*abs(Mean), b1 = 1-S, b2 = 1-S, alpha0 = 100*Var, alpha = 1-S, beta = 1-S)
DK>
DK> llh<-function(p){
DK> a<-p[1]
DK> b1<-p[2]
DK> b2<-p[3]
DK> alpha0<-p[4]
DK> alpha<-p[5]
DK> beta<-p[6]
DK>
DK> res<-array(length(x))
DK> hh<-array(length(x))
DK> res[1]<-x[1]-a
DK> res[2]<-x[2]-a-b1*res[1]
DK> for (i in 3:n){
DK> res[i]<-x[i]-a-b1*res[i-1]-b2*res[i-2]
DK> }
DK> res<-ts(res)
DK> hh[1]<-alpha0
DK> for (i in 2:n){
DK> hh[i]<-alpha0+alpha*res[i-1]^2+beta*(hh[i-1]-alpha0)
DK> }
DK> hh<-ts(hh)
DK> h<-sqrt(abs(hh))
DK>
DK> -sum(log(dnorm(x=res/h)/h))
DK> }
DK>
DK> fit<-nlminb(param, llh, lower=lowerB, upper=upperB)
DK> fit$par
DK> }
--
PhD student
Swiss Federal Institute of Technology
Zurich
www.ethz.ch
More information about the R-help
mailing list