R, Временные ряды, Модель Арима, Прогнозирование, Ежедневные данные [закрыто]
Я пытаюсь сделать некоторые прогнозы спроса с ежедневными данными, с 16 января 2012 года по 10 октября 2013 года. Но прогнозирование просто возвращает ужасные результаты. Любая подсказка, почему?
Вот как данные выглядят на графике: существуют еженедельные и ежемесячные сезонности. То есть: больше спроса в будний день и меньше спроса в выходные дни.
Вот как выглядит график прогнозирования: где черная линия - это фактические данные, а синяя линия - это прогнозируемые данные.
x = ts(data, freq=7, start=c(3,2))
fit <- auto.arima(x)
pred <- forecast(fit, h=300)
Я провел много исследований о том, как согласовать ежедневные данные с моделью арима. А так как есть еженедельная сезонность, поэтому я выбрал freq = 7.
Однако, поскольку прогнозы плохие. И кто-то был достаточно хорош, чтобы указать на один из методов, которыми профессор Хиндман поделился о подборе моделей с несколькими сезонностями.
https://stats.stackexchange.com/questions/74418/frequency-of-time-series-in-r/74426#74426
Поэтому я воспользовался советом хороших парней и подобрал модели по двум указанным выше методам.
Способ 1: использование функции tbats ().
x_new <- msts(x, seasonal.periods=c(7,7*52))
fit <- tbats(x_new)
fc <- forecast(fit, h=7*52)
Я использовал еженедельную сезонность 7 и ежегодную сезонность 7 * 52. Поскольку я не нашел простой способ получить месячную сезонность. Исходя из результата, прогноз тоже не очень хороший. Примечание: если я использую 7 * 4 в качестве второго сезонного периода для месяца, это дает худший прогноз.
Метод 2: Использование фурье в качестве xreg.
seas1 <- fourier(x, K=1)
seas2 <- fourier(ts(x,freq=7*52), K=1)
fit <- auto.arima(x, xreg=cbind(seas1,seas2))
seas1.f <- fourierf(x, K=1, h=7*52)
seas2.f <- fourierf(ts(x,freq=7*52), K=1, h=7*52)
fc1 <- forecast(fit, xreg=cbind(seas1.f, seas2.f))
Я попробовал это с другим K, и это не улучшает прогноз.
Поэтому я застрял! Поскольку прогнозирование далеко. Может ли кто-нибудь указать, где мои ошибки? Или как мне улучшить мою модель?
Большое спасибо!