Можно ли моделировать стационарную серию тренда с помощью ARIMA?

12

У меня вопрос / путаница в отношении стационарных рядов, необходимых для моделирования с помощью ARIMA (X). Я думаю об этом больше с точки зрения логического вывода (эффекта вмешательства), но хотел бы знать, если прогнозирование против логического вывода имеет какое-либо значение в ответе.

Вопрос:

Все вводные материалы, которые я прочитал, утверждают, что ряд должен быть стационарным, что имеет смысл для меня, и именно здесь появляется «я» в ариме (различие).

Что меня смущает, так это использование трендов и дрейфов в ARIMA (X) и последствий (если таковые имеются) для стационарных требований.

Отменяет ли использование термина «константа / дрейф» и / или трендовую переменную в качестве экзогенной переменной (то есть добавление «t» в качестве регрессора) отрицание требования, что ряд является стационарным? Отличается ли ответ в зависимости от того, имеет ли ряд единичный корень (например, тест adf) или имеет детерминированный тренд, но не имеет единичного корня?

ИЛИ

Всегда ли серии должны быть стационарными, сделаны с помощью различий и / или трендендинга перед использованием ARIMA (X)?

B_Miner
источник

Ответы:

12

Глядя на комментарии, кажется, что мы не рассмотрели вопрос о том, как выбирать между детерминистическим или стохастическим трендом. То есть, как действовать на практике, а не последствия или свойства каждого случая.

Один из следующих способов: начать с применения теста АПД.

  • Если ноль корня единицы отклонен, мы сделаны. Тренд (если есть) может быть представлен детерминированным линейным трендом.
  • Если нуль теста ADF не отклонен, тогда мы применяем тест KPSS (где нулевая гипотеза противоположна, стационарность или стационарность вокруг линейного тренда).

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

    o Если нуль теста KPSS не отклонен, то мы должны были бы сказать, что данные не очень информативны, потому что мы не смогли отклонить ни одну из нулевых гипотез. В этом случае может быть безопаснее работать с первыми отличиями серии.

Как упоминалось в предыдущем ответе, помните, что на эти тесты может повлиять наличие выбросов (например, выброс в один момент времени из-за ошибки при записи данных или сдвиг уровня, например, из-за изменения политики, которое влияет на серии с данного момента времени). Таким образом, желательно также проверить эти проблемы и повторить предыдущий анализ после включения регрессоров для некоторых потенциальных выбросов.

javlacalle
источник
Потрясающие! Был ли мой вопрос с комментариями выше верным, что если мы видим то, что выглядит как тренд, мы используем тест ADF, который включает тренд (опция № 3 в ссылке, которую я разместил)?
B_Miner
Последний вопрос - как вы относитесь к ситуации, когда вы подходите ARIMA, говорите ARIMA (0,1,1) к серии, а среднее значение разности не равно нулю? Это означает, что я считаю, что вы добавляете константу к модели, которая также представляет линейный тренд в исходной серии. Что означает этот случай? Является ли тренд в исходной серии детерминированным, поскольку различие в серии не устранило тренд?
B_Miner
@B_Miner Что касается вашего первого комментария, я бы начал с включения только перехвата. Если тренд выглядит несколько экспоненциально, вы также можете добавить параметр наклона линейного тренда и посмотреть, является ли он значительным. В общем, лучше начать с модели с несколькими параметрами, и, если диагностика остатков не является удовлетворительной, рассмотрите возможность добавления других элементов.
javlacalle
@B_Miner Принятие первых различий устраняет как детерминистический, так и стохастический тренд. Если вы видите тенденцию в разностном ряду в модели с перехватом, то вам следует рассмотреть возможность повторного взятия различий (т. Е. Проверить наличие второго единичного корня).
javlacalle
1
a1t+a2t2
5

Помните, что существуют разные виды нестационарности и способы борьбы с ними. Четыре общих из них:

1) Детерминированные тренды или стационарность трендов. Если ваша серия такого рода лишена тенденции или включите временную тенденцию в регрессию / модель. Возможно, вы захотите проверить теорему Фриша-Во-Ловелла об этом.

2) Сдвиги уровней и структурные разрывы. Если это так, вы должны включать фиктивную переменную для каждого перерыва или, если ваш образец достаточно длинный, смоделируйте каждый режим отдельно.

3) Изменение дисперсии. Либо моделируйте выборки отдельно, либо моделируйте изменяющуюся дисперсию, используя класс моделирования ARCH или GARCH.

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

Чтобы смоделировать временной ряд с использованием класса моделирования ARIMA, необходимо выполнить следующие шаги:

1) Посмотрите на ACF и PACF вместе с графиком временного ряда, чтобы увидеть, является ли ряд стационарным или нестационарным.

2) Проверьте серию на наличие корневого модуля. Это можно сделать с помощью широкого спектра тестов, среди которых наиболее распространенными являются тест ADF, тест Филлипса-Перрона (PP), тест KPSS с нулевой стационарностью или тест DF-GLS, который является наиболее эффективным. из вышеупомянутых испытаний. НОТА! Что в случае, если ваша серия содержит структурный разрыв, эти тесты смещены в сторону того, чтобы не отклонять ноль корневого элемента. Если вы хотите проверить надежность этих испытаний и если вы подозреваете один или несколько структурных разрывов, вам следует использовать эндогенные структурные тесты на разрушение. Двумя распространенными являются тест Зивота-Эндрюса, который допускает одно эндогенное структурное разрушение, и критерий Клементе-Монтаньеса-Рейеса, который допускает два структурных разрушения. Последний допускает две разные модели.

3) Если в ряду есть единичный корень, то вы должны отличать ряд. После этого вы должны посмотреть на ACF, PACF и график временных рядов и, возможно, проверить, находится ли второй корень модуля в безопасности. ACF и PACF помогут вам решить, сколько терминов AR и MA вы должны включить.

4) Если ряд не содержит единичного корня, но график временного ряда и ACF показывают, что у ряда есть детерминированный тренд, следует добавить тренд при подгонке модели. Некоторые люди утверждают, что совершенно справедливо просто отличать ряд, если он содержит детерминистическую тенденцию, хотя в процессе может быть потеряна информация. Тем не менее, это хорошая идея, чтобы отличить его, чтобы увидеть, как много терминов AR и / или MA вам нужно будет включить. Но тренд времени действителен.

5) Установите различные модели и выполните обычную диагностическую проверку. Возможно, вы захотите использовать информационный критерий или MSE, чтобы выбрать лучшую модель с учетом того образца, на который вы ее поместили.

6) Делайте выборочные прогнозы по наилучшим образом подобранным моделям и рассчитывайте функции потерь, такие как MSE, MAPE, MAD, чтобы увидеть, какие из них действительно лучше всего работают при использовании их для прогнозирования, потому что это то, что мы хотим сделать!

7) Делайте свои прогнозы, как босс, и будьте довольны результатами!

Plissken
источник
И ответить на ваш вопрос быстро. Да, оно может.
Плисскен,
Мне не разрешили комментировать вышесказанное, так как у меня недостаточно репутации, но я хочу отметить, что процесс «белого шума» является стационарным. Его среднее значение и дисперсия не меняется с течением времени, поэтому он является стационарным!
Плисскен,
Дэн, отличный ответ! Относительно вашего последнего комментария здесь, вы говорите, что если вы в конечном итоге получите остаточный белый шум, который является стационарным ... тогда он говорит вам, что вы смоделировали серию адекватно (то есть правильно / адекватно рассмотрели вопросы стационарности)?
B_Miner
1
Да, точно. Часто Q-тест Льюнга-Бокса используется для проверки остатков, чтобы увидеть, являются ли они случайными. В случае, если они тогда, модель - адекватное представление данных. Кое-что, что я забыл упомянуть в ответе выше, это то, что после того, как вы подобрали модель, вы можете посмотреть на график ACF и график временных рядов невязок подобранной серии. Это даст вам хорошее представление о том, являются ли ваши остатки белым шумом или нет (ACF не должен иметь каких-либо значительных задержек). В любом случае, большинство статистических пакетов имеют команду для теста Q по Льюнгу.
Плисскен
Вот ссылка на вики для теста Ljung-Box Q: en.wikipedia.org/wiki/Ljung%E2%80%93Box_test
Плисскен,
5

Определение того, является ли тренд (или другой компонент, такой как сезонность) детерминированным или стохастическим, является частью головоломки при анализе временных рядов. Я добавлю пару пунктов к тому, что было сказано.

1) Важно различать детерминированные и стохастические тренды, потому что если в данных присутствует корень единицы (например, случайное блуждание), то тестовая статистика, используемая для логического вывода, не следует традиционному распределению. Смотрите этот пост для некоторых деталей и ссылок.

Мы можем смоделировать случайное блуждание (стохастический тренд, в котором должны быть взяты первые различия), проверить значимость детерминированного тренда и увидеть процент случаев, когда ноль детерминированного тренда отклоняется. В R мы можем сделать:

require(lmtest)
iter <- 10000
cval <- 0.05
n <- 120
rejections <- 0
set.seed(123)
for (i in seq.int(iter))
{
  x <- cumsum(rnorm(n)) # random walk
  fit <- lm(x ~ seq(n))
  if (coeftest(fit)[2,"Pr(>|t|)"] < cval)
    rejections <- rejections + 1
}
100 * rejections / iter
#[1] 88.67

При уровне значимости 5% мы ожидаем отклонить ноль в 95% случаев, однако в этом эксперименте он был отклонен только в ~ 89% случаев из 10000 смоделированных случайных блужданий.

Мы можем применить тесты корневого модуля для проверки наличия корневого модуля. Но мы должны знать, что линейный тренд может, в свою очередь, привести к невозможности отклонить нулевой корень единицы. Чтобы справиться с этим, тест KPSS рассматривает нулевую стационарность вокруг линейного тренда.

2) Другой проблемой является интерпретация детерминированных компонентов в процессе по уровням или первым различиям. Эффект перехвата отличается от модели с линейным трендом от случайного блуждания. Смотрите этот пост для иллюстрации.

yt=μ+yt1+ϵt,ϵtNID(0,σ2).

ytiyt

yt=μ+yt1μ+yt2+ϵt1+ϵt=2μ+yt2μ+yt3+ϵt2+ϵt1+ϵt=3μ+yt3+ϵt2+ϵt1+ϵt...

Мы прибываем в:

yt=y0+μt+i=1tϵi

y0μμμ

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

Следует иметь в виду некоторые предостережения, поскольку анализ, основанный на единичном корне и статистике других тестов, не является надежным. Некоторые из этих тестов могут зависеть от наличия отдаленных наблюдений или сдвигов уровня и требуют выбора порядка запаздывания, который не всегда прост.

В качестве обходного пути к этой загадке, я думаю, что обычная практика состоит в том, чтобы брать различия данных до тех пор, пока ряды не будут выглядеть стационарными (например, смотреть на функцию автокорреляции, которая должна стремиться к нулю быстро), а затем выбирать модель ARMA.

javlacalle
источник
Грета пост - вы явно большой актив для этого сайта! Мне было любопытно посмотреть здесь и другие ваши посты - можно ли использовать тест ADF или KPSS, чтобы определить, является ли то, что похоже на тренд в ряду уровней, детерминированным или стохастическим? Я нашел это: faculty.smu.edu/tfomby/eco6375/BJ%20Notes/ADF%20Notes.pdf, который выглядит так, если вы визуально видите тренд в серии, используйте опцию № 3 теста и если вы не отклоняете Нуль, у вас есть доказательства детерминистической тенденции.
B_Miner
На основании комментария Дэна, я думаю, если вы получите остатки белого шума, все это не имеет значения :)
B_Miner
5

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

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

  1. Имитировал процесс AR
  2. Добавлен детерминированный тренд
  3. Используя ARIMAX, смоделированный с трендом как экзогенная переменная вышеупомянутого ряда без дифференцирования.
  4. Проверены остатки на белый шум и он чисто случайный

Ниже приведен код R и графики:

set.seed(3215)

##Simulate an AR process
x <- arima.sim(n = 63,list(ar = c(0.7)));
plot(x)

## Add Deterministic Trend to AR
t <- seq(1, 63)
beta <- 0.8
t_beta <- ts(t*beta,frequency=1)
ar_det <- x+t_beta
plot(ar_det)

## Check with arima

ar_model <- arima(ar_det,order=c(1,0,0),xreg=t,include.mean=FALSE)

## Check whether residuals of fitted model is random

pacf(ar_model$residuals)

AR (1) Имитация сюжета введите описание изображения здесь

AR (1) с детерминированным трендом введите описание изображения здесь

ARIMAX Остаточный PACF с трендом как экзогенный. Резидулы случайные, без рисунка введите описание изображения здесь

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

Чтобы ответить на ваш второй вопрос, ДА все ARIMA, включая ARIMAX, должны быть стационарными. По крайней мере, так говорят учебники.

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

Редактировать:

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

library(Hmisc)

set.seed(3215)

## ADD Stochastic Trend to simulated Arima this is AR(1) with unit root with non zero mean

y = rep(NA,63)
y[[1]] <- 2


for (i in 2:63)  {
y[i] <-3+1*y[i-1]+ rnorm(1, mean = 0, sd = 1)
} 

plot(y,type="l")

y_ts <- ts(y,frequency=1)

## Lag to create Xreg

y_1 <- Lag(y,shift=1)


## Start from 2 value to avoid NA and make it equal length with xreg

y <- window(y_ts,start =2,end=63)
xreg1 <- y_1[-1]

## Check the values with ARIMA and xreg

g <- arima(y,order=c(0,0,0),xreg=xreg1)

pacf(g$residuals)

## Check the values with ARIM

g1 <- arima(y,order=c(0,1,0))

pacf(g1$residuals)

## 

ARIMA(0,0,0) with non-zero mean 

Coefficients:
      intercept   xreg1
         3.1304  0.9976
s.e.     0.2664  0.0025

Надеюсь это поможет!

предсказатель
источник
Я также заинтересован в других взглядах - я не уверен, соответствует ли остаточный белый шум требованию, чтобы ряд был стационарным - то есть, если вы достигаете белого шума, можете ли вы быть удовлетворены? Или же включение экзогенной переменной фактически действует в «де-тренд» и делает эту серию неподвижной? Интересно, проверяется ли этот вопрос на более позднем этапе, получаете ли вы ту же модель (коэффициент ar1 и т. Д.), Если вы снимаете тренд с линейной регрессии, а затем подходите к ариме (1,0,0) ... Я сделал это и результаты близки. Поэтому, возможно, добавление экзогенной переменной - это то же самое, что и убывание тренда.
B_Miner
Да, то же самое, несколько месяцев назад я столкнулся с этим в статье по прогнозированию нейронной сети. Я предоставлю ссылку, если найду это.
синоптик
Любая идея о случае, когда есть корень единицы или когда есть постоянная в модели?
B_Miner
Я обновил свой ответ статьей, на которую я ссылался.
синоптик
Я думаю, что вы, возможно, не сохранили это.
B_Miner