Este es un ejemplo reproducible que utiliza el paquete fGarch
Espero que puedas adaptarlo a tu situación:
library("fGarch")
# Create specification for GARCH(1, 1)
spec <- garchSpec(model = list(omega = 0.05, alpha = 0.1, beta = 0.75), cond.dist = "norm")
# Simulate the model with n = 1000
sim <- garchSim(spec, n = 1000)
# Fit a GARCH (1, 1)
fit <- garchFit(formula = ~ garch(1, 1), data = sim, include.mean = F)
# Predict 40 steps ahead
pred <- predict(fit, n.ahead = 40)
# Concatenate the fitted model with the prediction, transform to time series
dat <- as.ts(c(sqrt(fit@h.t), pred = pred$standardDeviation))
# Create the plot
plot(window(dat, start = start(dat), end = 1000), col = "blue",
xlim = range(time(dat)), ylim = range(dat),
ylab = "Conditional SD", main = "Prediction based on GARCH model")
par(new=TRUE)
plot(window(dat, start = 1000), col = "red", axes = F, xlab = "", ylab = "", xlim = range(time(dat)), ylim = range(dat))
Un agradecimiento al autor de la respuesta en este hilo, lo utilicé para conseguir los gráficos correctos.
Tenga en cuenta también que puede crear un gráfico de la serie predicha, en lugar de la desviación estándar condicional predicha, utilizando la función plot = T
en la llamada a predict
.