Hello R-list-members,
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?
Many thanks,
Desislava Kavrakova
Code:
garch<-function(x){
x<<-ts(x)
n<-length(x)
Mean = mean(x); Var = var(x); S = 1e-6
param = c(a = Mean, b1 = S, b2 = S, alpha0 = 0.1*Var,alpha = 0.1, beta = 0.8)
lowerB = c(a = -10*abs(Mean), b1 = S-1, b2 = S-1, alpha0 = S^2, alpha = S, beta
= S)
upperB = c(a = 10*abs(Mean), b1 = 1-S, b2 = 1-S, alpha0 = 100*Var, alpha = 1-S,
beta = 1-S)
llh<-function(p){
a<-p[1]
b1<-p[2]
b2<-p[3]
alpha0<-p[4]
alpha<-p[5]
beta<-p[6]
res<-array(length(x))
hh<-array(length(x))
res[1]<-x[1]-a
res[2]<-x[2]-a-b1*res[1]
for (i in 3:n){
res[i]<-x[i]-a-b1*res[i-1]-b2*res[i-2]
}
res<-ts(res)
hh[1]<-alpha0
for (i in 2:n){
hh[i]<-alpha0+alpha*res[i-1]^2+beta*(hh[i-1]-alpha0)
}
hh<-ts(hh)
h<-sqrt(abs(hh))
-sum(log(dnorm(x=res/h)/h))
}
fit<-nlminb(param, llh, lower=lowerB, upper=upperB)
fit$par
}
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.