Ok I switched to the slow loop since it is more obvious what's happening
there.
I am not sure if it is possible to implement it in such a way. Any comments
are highly appreciated!
#
------------------------------------------------------------------------------
# load fGarch and a data set
#
------------------------------------------------------------------------------
library(fGarch)
data(dem2gbp)
x <- dem2gbp[,1]
llhGARCHSK11N <- function(par, x)
{
mu <- par[1]; omega <- par[2]; alpha <- par[3]; beta <- par[4]
gamma0<- par[5];
gamma1<- par[6];
gamma2<- par[7];
delta0<- par[8];
delta1<- par[9];
delta2<- par[10];
e <- x - mu
e2 <- e^2
#Skewness
sk <- ((x - mu)^3) / length(x)/ sd(x)^3
#Kurtosis
ku <- (((x - mu)^4) / length(x))/ sd(x)^4 - 3
## slow loop variance
s2 = omega + alpha*mean(e2) + beta*mean(e2)
for ( t in 2:length(x))
s2[t] = omega + alpha*e2[t-1] + beta*s2[t-1]
eta=e/s2
## slow loop skewness
sk = gamma0 + gamma1*mean(sk) + gamma2 * mean(sk)
for ( t in 2:length(x))
sk[t] = gamma0 + gamma1*sk[t-1]^3 + gamma2*sk[t-1]
## slow loop kurtosis
ku = delta0 + delta1*mean(ku) + delta2*mean(ku)
for ( t in 2:length(x))
ku[t] = delta0 + delta1*ku[t-1]^4 + delta2*ku[t-1]
#-sum(log(dnorm(e, mean = 0, sd = sqrt(abs(s2)))))
-sum(log(1+(sk/6)*(eta^3-3*eta)+((ku-3)/24)*(eta^4-6*eta^2+3))^2-log(1+((sk^2)/6)+(ku-3)^2/24))
}
mu <- mean(x); omega <- 0.1*var(x); alpha <- 0.1; beta <- 0.8
gamma0<- 0;
gamma1<- 0;
gamma2<- 0;
delta0<- 0;
delta1<- 0;
delta2<- 0;
parN <- c(mu, omega, alpha, beta, gamma0, gamma1, gamma2 , delta0, delta1,
delta2)
llhGARCHSK11N(parN, x)
small <- 1e-6
lowN <- c(-10*abs(mu), small, small, small)
upN <- c(10*abs(mu), 100*abs(mu), 1-small, 1-small)
fitN <- nlminb(star=parN, objective=llhGARCHSK11N, x = x, lower=lowN,
upper=upN,
control=list(x.tol = 1e-8,trace=1))
#
------------------------------------------------------------------------------
Thanks in Advance!
On Wed, Feb 16, 2011 at 7:22 AM, Johannes Lips <[email protected]
> wrote:
> Hello,
>
> I'm quite new to R but tried to learn as much as possible in the last
> few months.
> My problem is that I would like to estimate the model of Leon et al.
> (2005).
> I have shortly summarised the most important equations in the following
> pdf file:
> http://hannes.fedorapeople.org/leon2005.pdf
>
> My main question is now how could I introduce these two additional terms
> into the Likelihood function of a(n) (existing) GARCH method.
>
> I looked into some GARCH packages but wasn't really sure where to start.
> I know that this is not really an easy task but I would be very grateful
> if you could help me out by giving me some hints on how to solve this
> problem.
>
> Thanks in advance!
>
> Johannes Lips
>
> P.S. I sent this e-mail also to the R-help mailing list but was told I
> should better send it to the finance-sig.
> https://stat.ethz.ch/pipermail/r-help/2011-February/268871.html
>
[[alternative HTML version deleted]]
_______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-finance
-- Subscriber-posting only. If you want to post, subscribe first.
-- Also note that this is not the r-help list where general R questions should
go.