Статистика Юнга-Бокса для остатков ARIMA в R: запутанные результаты испытаний

15

У меня есть временной ряд, который я пытаюсь прогнозировать, для которого я использовал сезонную модель ARIMA (0,0,0) (0,1,0) [12] (= fit2). Это отличается от того, что R предложил с auto.arima (R-вычисленный ARIMA (0,1,1) (0,1,0) [12] был бы более подходящим, я назвал его fit1). Тем не менее, в последние 12 месяцев моего временного ряда моя модель (fit2) кажется более подходящей при корректировке (она была хронически смещена, я добавил остаточное среднее, и новая подгонка, кажется, более плотно прилегает к исходному временному ряду Вот пример последних 12 месяцев и MAPE за 12 самых последних месяцев для обоих приступов:

fit1, fit2 и исходные данные

Временной ряд выглядит так:

оригинальный временной ряд

Все идет нормально. Я выполнил остаточный анализ для обеих моделей, и здесь есть путаница.

ACF (остаток (fit1)) выглядит отлично, очень белый шум:

акф фит1

Однако тест Льюнга-Бокса не выглядит хорошим, например, для 20 лагов:

    Box.test(resid(fit1),type="Ljung",lag=20,fitdf=1)

Я получаю следующие результаты:

    X-squared = 26.8511, df = 19, p-value = 0.1082

Насколько я понимаю, это подтверждение того, что остатки не являются независимыми (значение р слишком велико, чтобы оставаться в гипотезе независимости).

Однако для лаг 1 все отлично:

    Box.test(resid(fit1),type="Ljung",lag=1,fitdf=1)

дает мне результат:

    X-squared = 0.3512, df = 0, p-value < 2.2e-16

Либо я не понимаю тест, либо это немного противоречит тому, что я вижу на графике acf. Автокорреляция смехотворно низкая.

Затем я проверил fit2. Функция автокорреляции выглядит следующим образом:

акф фит2

Несмотря на такую ​​очевидную автокорреляцию при нескольких первых лагах, тест Льюнга-Бокса дал мне гораздо лучшие результаты при 20 лагах, чем fit1:

    Box.test(resid(fit2),type="Ljung",lag=20,fitdf=0)

результаты в:

    X-squared = 147.4062, df = 20, p-value < 2.2e-16

тогда как только проверка автокорреляции на lag1 также дает мне подтверждение нулевой гипотезы!

    Box.test(resid(arima2.fit),type="Ljung",lag=1,fitdf=0)
    X-squared = 30.8958, df = 1, p-value = 2.723e-08 

Я правильно понимаю тест? Значение p предпочтительно должно быть меньше 0,05, чтобы подтвердить нулевую гипотезу независимости от остатков. Какую посадку лучше использовать для прогнозирования, fit1 или fit2?

Дополнительная информация: остатки fit1 отображают нормальное распределение, а остатки fit2 - нет.

Zima
источник
2
Вы не понимаете p-значения и неправильно их интерпретируете.
Scortchi - Восстановить Монику
Да, это может быть вопросом понимания. Не могли бы вы расширить? Например, что именно означает, если значение р больше 0,5? Я прочитал определение p-значения (вероятность получения статистики, по крайней мере, такой же экстремальной, как и статистика теста, учитывая, что нулевые гипотезы верны). Как это относится к тесту Юнга-Бокса? Означает ли «по крайней мере, как крайность» «больше, чем X в квадрате»? Я был бы благодарен за пример с моими данными, так как тестирование значимости было сложным для меня, чтобы понять.
Зима
6
Статистика теста Льюнга-Бокса ( X-squared) увеличивается по мере того, как выборочные автокорреляции остатков увеличиваются (см. Его определение), а его значение p представляет собой вероятность получения значения, равного или превышающего значение, наблюдаемое при нулевом значении Гипотеза о том, что истинные инновации являются независимыми. Поэтому небольшое значение р свидетельствует против независимости.
Scortchi - Восстановить Монику
@ Scortchi, я думаю, что понял. Но это также делает мой тест на лаг = 1 для неудачи fit1. Как это можно объяснить? Я не вижу никакой автокорреляции при лаге = 1. Есть ли какая-то экстремальность этого теста с небольшим количеством лагов (очень маленькая выборка)?
Зима
3
Box-Ljung - это комплексный тест на независимость, который отстает от указанного вами. Степени свободы, используемые нет. отстает минус нет. Параметры AR & MA ( fitdf), поэтому вы проверяли распределение хи-квадрат с нулевыми степенями свободы.
Scortchi - Восстановить Монику

Ответы:

34

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

m = c(ar, ma)
w = arima.sim(m, 120)
w = ts(w)
plot(w)
Box.test(w, type="Ljung-Box")
Джо Феррелли
источник
3
Краткое и аккуратное объяснение. +1 за пример кода.
Dawny33
1
Ваша интерпретация также не верна. Значение p, равное 0,05, означает, что у вас есть 5% -й шанс сделать ошибку, если вы отклоните нулевую гипотезу об отсутствии автокорреляции до порядка 1 в вашем случае.
DJJ
8

Многие статистические тесты используются, чтобы попытаться отклонить некоторую нулевую гипотезу. В этом конкретном случае тест Льюнга-Бокса пытается отклонить независимость некоторых значений. Что это означает?

  • Если p-значение <0,05 1 : Вы можете отклонить нулевую гипотезу, предполагая 5% -ную вероятность ошибиться. Таким образом, вы можете предположить, что ваши значения показывают зависимость друг от друга.

  • Если p-значение> 0,05 1 : у вас недостаточно статистических данных, чтобы отклонить нулевую гипотезу. Таким образом, вы не можете предполагать, что ваши ценности зависят. Это может означать, что ваши значения в любом случае являются зависимыми, или это может означать, что ваши значения являются независимыми. Но вы не доказываете какую-либо конкретную возможность, на самом деле ваш тест сказал, что вы не можете утверждать зависимость значений, а также вы не можете утверждать независимость значений.

В общем, здесь важно помнить, что значение p <0,05 позволяет отклонить нулевую гипотезу, а значение p> 0,05 не позволяет подтвердить нулевую гипотезу.

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


αзнак равно0,05

Алехандро Хименес Рико
источник
αзнак равно0,05
0

Согласно графикам ACF очевидно, что подгонка 1 лучше, поскольку коэффициент корреляции при лаге k (k> 1) резко падает и приближается к 0.

Tao
источник
0

Если вы судите с ACF, тогда подходит 1 больше. Вместо того, чтобы запутаться в тесте Юнга, вы все равно можете использовать коррелограмму невязок для определения наилучшего соответствия между fit1 и fit2

Винсент
источник
1
Я не понимаю этот ответ.
Майкл Р. Черник
Когда мы просматриваем статистику блока Юнга, нас может заинтересовать диагностическая проверка модели, т. Е. Адекватность модели ..... Если использование, которое вас смущает, есть и другие способы проверить адекватность модели, о которых я говорил выше. Вы можете построить коррелограмму Ie, ACF и PACF остатка данных, а затем проверить границы ряда, если это белый шум ...... Не обязательно использовать блочный тест Льюнга
Винсент