Вопрос

Я пытаюсь объяснить себе прогнозировать результат в результате применения модели ARIMA на набор данных серии Time. Данные из M1-конкурса, серия - MNB65. Я пытаюсь установить данные в модели ARIMA (1,0,0) и получить прогнозы. Я использую R. Вот некоторые выходные фрагменты:

> arima(x, order = c(1,0,0))
Series: x 
ARIMA(1,0,0) with non-zero mean 
Call: arima(x = x, order = c(1, 0, 0)) 
Coefficients:
         ar1  intercept
      0.9421  12260.298
s.e.  0.0474    202.717

> predict(arima(x, order = c(1,0,0)), n.ahead=12)
$pred
Time Series:
Start = 53 
End = 64 
Frequency = 1 
[1] 11757.39 11786.50 11813.92 11839.75 11864.09 11887.02 11908.62 11928.97 11948.15 11966.21 11983.23 11999.27

У меня есть несколько вопросов:

(1) Как объяснить, что, хотя набор данных показывает четкую нисходящую тенденцию, прогноз от этой модели направляет вверх? Это также происходит для Arima (2,0,0), что является лучшим аримом, подходящим для данных, использующих auto.arima (Пакет прогноза) и для модели ARIMA (1,0,1).

(2) Значение перехвата для модели ARIMA (1,0,0) составляет 12260,298. Разве перехват не удовлетворит уравнение: C = mean * (1 - sum(AR coeffs)), в этом случае значение должно быть 715.52. Отказ Я должен пропустить что-то простое здесь.

(3) Это явно серия с нестационарным средним значением. Почему модель AR (2) все еще выбрана как лучшая модель auto.arima? Может ли быть интуитивное объяснение?

Спасибо.

Это было полезно?

Решение

  1. Модель ARIMA (P, 0, Q) не позволит тенденцию, потому что модель стационарная. Если вы действительно хотите включить тенденцию, используйте ARIMA (P, 1, Q) с семестрам дрейфа или ARIMA (P, 2, Q). Тот факт, что AUTO.ARIMA () предлагает 0 различий, обычно указывает, что нет четкого тренда.

  2. Файл справки для ARIMA () показывает, что перехват на самом деле среднее значение. То есть модель Ar (1) (Y_t-c) = ϕ(Y_{t-1} - c) + e_t скорее, чем Y_t = c + ϕY_{t-1} + e_t Как вы могли ожидать.

  3. auto.arima() Использует корневой тест на единицу для определения необходимого количества различий. Так что проверьте результаты из корневого теста устройства, чтобы увидеть, что происходит. Вы всегда можете указать необходимое количество различий в auto.arima() Если вы думаете, что корневые тесты единицы не ведут к разумной модели.

Вот результаты двух тестов для ваших данных:

R> adf.test(x)

        Augmented Dickey-Fuller Test

data:  x 
Dickey-Fuller = -1.031, Lag order = 3, p-value = 0.9249
alternative hypothesis: stationary 

R> kpss.test(x)

        KPSS Test for Level Stationarity

data:  x 
KPSS Level = 0.3491, Truncation lag parameter = 1, p-value = 0.09909

Таким образом, ADF говорит сильно нестационарно (нулевая гипотеза в этом случае), в то время как KPSs не совсем отвергает канцелярность (нулевая гипотеза для этого теста). auto.arima() использует последнее по умолчанию. Вы могли бы использовать auto.arima(x,test="adf") Если вы хотели первого теста. В этом случае он предлагает модель ARIMA (0,2,1), которая имеет тенденцию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top