Если модель авторегрессивного временного ряда нелинейна, требует ли она все еще стационарности?


17

Думая об использовании повторяющихся нейронных сетей для прогнозирования временных рядов. Они в основном реализуют своего рода обобщенную нелинейную авторегрессию по сравнению с моделями ARMA и ARIMA, которые используют линейную авторегрессию.

Если мы выполняем нелинейную авторегрессию, все еще необходимо, чтобы временной ряд был стационарным, и нужно ли нам выполнять дифференцирование, как в моделях ARIMA?

Или нелинейный характер модели дает ей возможность обрабатывать нестационарные временные ряды?


Другими словами, является ли требование стационарности (в среднем и дисперсии) для моделей ARMA и ARIMA из-за того, что эти модели являются линейными, или из-за чего-то другого?


Можете ли вы привести пример нелинейного ARIMA, о котором вы думаете?
Аксакал

1
@Aksakal Я не имею в виду «нелинейную ARIMA», а скорее «нелинейную ARIMA», которая является нелинейной - например, авторегрессионные нейронные сети Amazon DeepAR.
Скандер Х. - Восстановить Монику

Ответы:


15

Если целью вашей модели является прогнозирование и прогнозирование, то короткий ответ - ДА, но стационарность не обязательно должна быть на уровнях.

Я объясню. Если вы сводите прогнозирование к его основной форме, это будет извлечение инварианта. Подумайте об этом: вы не можете предсказать, что меняется. Если я скажу вам, что завтра будет отличаться от сегодняшнего дня во всех мыслимых аспектах , вы не сможете дать какой-либо прогноз .

Только когда вы сможете продлить что-то с сегодняшнего дня на завтра, вы можете сделать любой прогноз. Я приведу несколько примеров.

  • Икс^T+1знак равноИксT
  • vзнак равно60ИксT~vT
  • Твой сосед пьян каждую пятницу. Будет ли он пьян в следующую пятницу? Да, пока он не меняет своего поведения
  • и так далее

В каждом случае разумного прогноза мы сначала извлекаем что-то постоянное из процесса и распространяем его на будущее. Следовательно, мой ответ: да, временные ряды должны быть стационарными, если дисперсия и среднее значение являются инвариантами, которые вы собираетесь распространить в будущее из истории. Более того, вы хотите, чтобы отношения с регрессорами также были стабильными.

Просто определите, что является инвариантом в вашей модели, будь то средний уровень, скорость изменения или что-то еще. Эти вещи должны остаться такими же в будущем, если вы хотите, чтобы ваша модель обладала какой-либо прогнозирующей способностью.

Пример Холта Винтерса

Фильтр Холта Винтерса упоминался в комментариях. Это популярный выбор для сглаживания и прогнозирования определенных видов сезонных рядов, и он может работать с нестационарными рядами. В частности, он может обрабатывать серии, где средний уровень растет со временем линейно. Другими словами, где уклон устойчивый . В моей терминологии наклон является одним из инвариантов, которые этот подход извлекает из ряда. Давайте посмотрим, как он терпит неудачу, когда наклон неустойчивый.

На этом графике я показываю детерминированный ряд с экспоненциальным ростом и аддитивной сезонностью. Другими словами, наклон со временем становится все круче:

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

Вы можете видеть, как фильтр очень хорошо вписывается в данные. Установленная линия красная. Однако, если вы попытаетесь предсказать с помощью этого фильтра, он потерпит неудачу. Истинная линия - черная, а красная - с синей доверительной границей на следующем графике:

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

Причину неудачи легко понять, изучив уравнения модели Холта Уинтерса . Он извлекает склон из прошлого и распространяется на будущее. Это работает очень хорошо, когда уклон стабилен, но когда он постоянно растет, фильтр не может идти в ногу, он на один шаг позади, и эффект накапливается в растущей ошибке прогноза.

Код R:

t=1:150
a = 0.04
x=ts(exp(a*t)+sin(t/5)*sin(t/2),deltat = 1/12,start=0)

xt = window(x,0,99/12)
plot(xt)
(m <- HoltWinters(xt))
plot(m)
plot(fitted(m))

xp = window(x,8.33)
p <- predict(m, 50, prediction.interval = TRUE)
plot(m, p)
lines(xp,col="black")

В этом примере вы можете улучшить производительность фильтра, просто ведя журнал серии. Когда вы берете логарифм экспоненциально растущего ряда, вы снова делаете его наклон устойчивым и даете этому фильтру шанс. Вот пример:

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

Код R:

t=1:150
a = 0.1
x=ts(exp(a*t)+sin(t/5)*sin(t/2),deltat = 1/12,start=0)

xt = window(log(x),0,99/12)
plot(xt)
(m <- HoltWinters(xt))
plot(m)
plot(fitted(m))

p <- predict(m, 50, prediction.interval = TRUE)
plot(m, exp(p))

xp = window(x,8.33)
lines(xp,col="black")

3
«Если вы сводите прогнозирование к его самой основной форме, это будет извлечение инварианта. Подумайте об этом: вы не можете предсказать, что меняется. Если я скажу вам, что завтра будет отличаться от сегодняшнего во всех мыслимых аспектах, вы не будете быть в состоянии произвести любой вид прогноза. " - Это хороший способ описания статистического прогнозирования, который я раньше не видел (явно), +1.
Firebug

1
«временные ряды должны быть стационарными, если дисперсия и среднее значение являются инвариантами, которые вы собираетесь распространить в будущее из истории», - интуитивно это имеет смысл, - но где-то на этом форуме кто-то (я думаю, это был Роб Хиндман) упомянул, что некоторые модели прогнозирования, а именно экспоненциальное сглаживание, работают лучше всего, когда данные не являются стационарными.
Скандер Х. - Восстановить Монику


1
Это заслуживает +10!
kjetil b halvorsen

2
@ Firebug, спасибо, понятия инвариантов и симметрий важны в физике. Например, стационарность среднего и дисперсии напоминает трансляционную симметрию во времени, что позволяет прогнозировать будущее.
Аксакал

0

Я также согласен с @Aksakal, что если основная цель состоит в прогнозировании, то основные характеристики стационарного ряда должны сохраняться.


Не могли бы вы немного расширить свою точку зрения?
jbowman
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.