Прогнозирование временных рядов с помощью GARCH - PullRequest
1 голос
/ 20 июня 2020

Я пытаюсь спрогнозировать объект временного ряда в R с моделью GARCH (1,1). Моя цель - сделать прогноз на 24 случая вперед с помощью модели GARCH. Хотя я использую объект временного ряда при прогнозировании, я получаю следующую ошибку:

Ошибка в объекте is.constant (y): (list) не может быть принудительно введена для ввода '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 голосов
/ 20 июня 2020

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)

введите описание изображения здесь

Данные

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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...