Статистика Ljung-Box для залишків ARIMA в R: заплутані результати тестів


15

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

fit1, fit2 та оригінальні дані

Часовий ряд виглядає приблизно так:

оригінальний часовий ряд

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

ACF (залишається (fit1)) виглядає чудово, дуже білошумно:

ACF від fit1

Однак тест Ljung-Box не виглядає добре, наприклад, на 20 відстань:

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

Я отримую такі результати:

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

На моє розуміння, це підтвердження того, що залишки не є незалежними (значення p занадто велике, щоб залишатися з гіпотезою незалежності).

Однак для відставання 1 все чудово:

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

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

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

Або я не розумію тесту, або це трохи суперечить тому, що я бачу на сюжеті ACF. Автокореляція смішно низька.

Потім я перевірив fit2. Функція автокореляції виглядає приблизно так:

ACF fit2

Незважаючи на таку очевидну автокореляцію при кількох перших відставаннях, тест Ljung-Box дав мені набагато кращі результати при 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 

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

Додаткова інформація: залишки fit1 відображають нормальний розподіл, а ті, які є у fit2, не мають.


2
Ви не розумієте p-значень і інтерпретуєте їх неправильно.
Scortchi

Так, це може бути питання розуміння. Не могли б ви розширити? Наприклад, що саме означає, якщо р-значення більше 0,5? Я прочитав визначення р-значення (ймовірність отримання статистики принаймні такою ж крайньою, як і тестова статистика, враховуючи, що нульові гіпотези мають місце). Як це стосується тесту Люнг-Бокса? Чи означає "принаймні настільки ж крайній", "більший за квадрат X"? Я буду вдячний за приклад зі своїми даними, оскільки тестування на значимість для мене складно зрозуміти.
zima

6
Статистика тесту Ljung-Box ( X-squared) збільшується, коли вибіркові автокореляції залишків збільшуються (див. Його визначення), а його p-значення - це ймовірність отримання значення, такого ж, як і більше, ніж те, яке спостерігається під нулем гіпотеза про те, що справжні нововведення незалежні. Тому невелике значення р свідчить проти незалежності.
Scortchi

@Scortchi, я думаю, я це отримав. Але це також робить мій тест з відставанням = 1 для fit1 провалу. Як це можна було пояснити? Я не бачу жодної автокореляції при відставанні = 1. Чи є якась крайність цього тесту з невеликою кількістю затримок (дуже невеликий зразок)?
zima

3
Box-Ljung - це всебічний тест незалежності на всі відставання від того, який ви вказали. Ступінь свободи, що використовується, є ні. відставання мінус ні. Параметри AR & MA ( fitdf), тому ви протестували на розподіл chi-квадрата з нульовим ступенем свободи.
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 для прикладу коду.
Світанок33

1
Ваша інтерпретація також неправильна. Значення р 0,05 означає, що у вас є 5% шансу помилитися, якщо ви відкинете нульову гіпотезу про відсутність автоматичної кореляції до порядку 1 у вашому випадку.
DJJ

8

Багато статистичних тестів використовуються для спроби відкинути якусь нульову гіпотезу. У цьому конкретному випадку тест Люнг-Бокса намагається відкинути незалежність деяких цінностей. Що це означає?

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

  • Якщо р-значення> 0,05 1 : Вам не вистачає статистичних доказів, щоб відкинути нульову гіпотезу. Тож ви не можете припустити, що ваші цінності залежать. Це може означати, що ваші значення так чи інакше залежать, або це може означати, що ваші значення незалежні. Але ви не доказуєте жодної конкретної можливості, те, що насправді сказав ваш тест, - це те, що ви не можете стверджувати залежність значень, а також не можете стверджувати незалежність значень.

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

Зокрема, ви не можете довести незалежність значень часових рядів за допомогою тесту Ljung-Box. Можна лише довести залежність.


α=0,05


α=0,05

0

Згідно графіків ACF, очевидно, що відповідність 1 краща, оскільки коефіцієнт кореляції при відставанні k (k> 1) різко падає і близький до 0.


0

Якщо ви судите з ACF, то відповідність 1 є більш доцільною. Замість того, щоб плутати на тесті Люнга, ви все одно можете використовувати корелограму залишків, щоб визначити найкраще прилягання між fit1 та fit2


1
Я не розумію цієї відповіді.
Майкл Р. Черник

Коли ми відвідуємо статистику вікна Ljung, нас може зацікавити перевірка діагностики моделі, тобто адекватність моделі ..... Якщо використання вас бентежить, є інші способи перевірити адекватність моделі, про які я говорив вище. Ви можете побудувати графік Ie, ACF і PACF залишків даних, а потім перевірити межі серії, якщо це білий шум ...... Це не обов'язково використовувати тест "Ljung box"
Вінсент
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.