Ich habe eine Hausaufgabe bekommen: Dabei geht es um die Umwandlung eines ARMA models in ein GARCH (2, 2) Model. Der ARMA Prozess ( aus einem alten Projekt) aus dem ich das GARCH (2, 2) model erstellen soll, sieht wie folgt aus:
Code: Alles auswählen
myMatrikel = 12345678 # put in your matriculation number here.
{
n = 500
set.seed(myMatrikel)
p = sample(1:6,1)
q = sample(1:6,1)
alpha = round(runif(q, min = 0, max = 1/q), digits = 3)
beta = round(runif(p, min = 0, max = 1/p), digits = 3)
initY = rnorm(max(p, q))
initErr = rnorm(max(p, q))
y = err = 1:(2*n)*0
y[1:max(p, q)] = initY
err[1:max(p, q)] = initErr
for (t in (max(p, q) + 1):length(y))
{
err[t] = rnorm(1)
y[t] = beta %*% y[(t - 1):(t - p)] + alpha %*% err[(t - 1):(t - q)] + err[t]
}
Y = y[(n + 1):(2*n)]
}
# end search for errors here
# delete unneccessary variables
rm(list = c("err", "initErr", "initY", "y", "t", "myMatrikel"))
Ich weiß, bei einem GARCH-Modell ja das h_t die Variable, die dem stochastischen Prozess unterliegt, also die Variable welche einer Art ARMA Modell folgt. Die Y^2 Werte ergeben sich dann aus diesem Modell, indem man die h_t als Varianz nimmt und dann mit dieser Varianz und dem Mittelwert 0 aus der Normalverteilung ein Y zieht. Dieses kann man wiederum quadrieren, das neue h_t+1 berechnen und wieder Y_t+1 ziehen.
Nur mir fällt es schwer das ht in die Aufgabe einzubauen.
Ich wäre über jeden Tipp dankbar