Diethelm Wuertz wrote:

Tabs removed from the code, makes a nicer printout ....

garchSim =
function(model = list(omega = 1.0e-06, alpha = 0.1, beta = 0.8, mu = 0),
n = 100, innov = NULL, n.start = 100, start.innov = NULL, rand.gen = rnorm, ...)
{ # Doesn't work, replace the three following three lines ... # if (!exists("model$alpha")) model$alpha = 0
# if (!exists("model$beta")) model$beta = 0
# if (!exists("model$mu")) model$mu = 0
# with ...
if (is.null(model$alpha)) model$alpha = 0
if (is.null(model$beta)) model$beta = 0
if (is.null(model$mu)) model$mu = 0


   max.order = max(length(model$alpha), length(model$beta))
   if (n.start < max.order)
       stop("n.start must be greater or equal max(alpha,beta)")
   if (is.null(start.innov))
       start.innov = rand.gen(n.start, ...)
   if (is.null(innov))
       innov = rand.gen(n, ...)
   h = x = z = c(start.innov, innov)
   for (i in 1:max.order) {
       h[i] = model$omega/(1 - sum(model$alpha) - sum(model$beta))
       x[i] = sqrt(h[i]) * z[i] + model$mu
   }
   n.alpha = length(model$alpha)
   n.beta = length(model$beta)
   for (i in (max.order + 1):(n.start + n)) {
       h[i] = model$omega + sum(model$alpha * x[i - (1:n.alpha)]^2) +
           sum(model$beta * h[i - (1:n.beta)])
       x[i] = sqrt(h[i]) * z[i] + model$mu
   }
   as.ts(x[-(1:n.start)])
}

______________________________________________
[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

Reply via email to