使用GARCH进行时间序列预测

时间:2020-06-19 23:59:38

标签: r time-series forecasting

我正在尝试使用GARCH(1,1)模型预测R中的时间序列对象。我的目标是使用GARCH模型提前预测24个实例。尽管我在预测时使用时间序列对象,但出现以下错误:

is.constant(y)中的错误: (列表)对象不能强制输入“ double”

这些是我正在使用的命令:

library(forecast)
library(tseries)


trainer1 <- ts(trainer, frequency=24)
m1 <- garch(trainer1, order = c(1,1))
forecasts1 <- forecast(m1, h=24)

我正在使用的示例数据如下:

124.30
98.99
64.00
64.00
123.99
123.99
34.97
123.99
139.91
140.00
164.30
178.99
140.00
169.95
161.18
139.94
161.31
124.00
115.01
124.00

非常感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

garch不是forecast软件包的功能。因此,不能在forecast模型上应用m1函数。 garch函数在tseries软件包中可用。因此,要使用garch进行预测,您必须使用

library(forecast)
library(tseries)
trainer1 <- ts(df, frequency=24)
m1 <- garch(trainer1, order = c(1,1))
forecasts1 <- predict(m1, trainer1)

如果要进行预测,可以使用fGarch包,如

library(fGarch)
fit <- garchFit(~ arma(0,1) + garch(1,1), data = trainer1, trace = FALSE)
predict(fit,n.ahead=24,plot=TRUE)

enter image description here

数据

df = structure(list(trainer = c(124.3, 98.99, 64, 64, 123.99, 123.99, 
34.97, 123.99, 139.91, 140, 164.3, 178.99, 140, 169.95, 161.18, 
139.94, 161.31, 124, 115.01, 124)), class = "data.frame", row.names = c(NA, 
-20L))