Як обчислити p-значення параметрів для моделі ARIMA в R?


23

Роблячи дослідження часових рядів в R, я виявив, що arima передбачає лише значення коефіцієнтів та їх стандартні похибки встановленої моделі. Однак я також хочу отримати p-значення коефіцієнтів.

Я не знайшов жодної функції, яка б забезпечувала значення кофе.

Тому я хочу сам обчислити його, але я не знаю ступеня свободи в розподілі коефіцієнтів t або chisq. Отже, моє запитання полягає в тому, як отримати р-значення для коефіцієнтів вбудованої моделі аріма в R?


9
Чому ви хочете р-значення? Тести на значущість коефіцієнтів моделі AR не є особливо корисними, оскільки значущість не є хорошим способом вибору порядку замовлення. Використовуйте замість AIC.
Роб Хайндман

1
Часто більш ніж одна модель добре відповідає даних. Тому зазвичай мені приємно провести не одну діагностику. Отже, якщо я вже використовую Pacf / ACF, AIC / BIC (можливо, також точність прогнозування) і все ще не можу вибрати між двома моделями - чи є щось не так у пошуку при значенні коефіцієнта?
hans0l0

Відповіді:


4

Значення "t" - відношення коефіцієнта до стандартної помилки. Ступені свободи (ndf) були б кількістю спостережень мінус максимальний порядок різниці в моделі мінус кількість оцінених коефіцієнтів. "F значення" було б квадратом "t значення". Щоб точно обчислити ймовірність, вам доведеться викликати не центральну функцію chi-квадрата і передавати значення F та ступені свободи (1, ndf) або, можливо, просто викликати пошук функції F.


Велике дякую! Я написав це так ... Але на мій подив, що майже всі параметри незначні ... Але в SAS це говорить про те, що вони значущі ... Тож я сумніваюся, чи є помилка в моїх словах програмування ....
Ліза

var.coef[i,i])t[i]=fit

Використання результатів незаписаної програми SAS навряд чи є свідченням статистичної коректності. SAS - це не оракул. Шкода, що спливаюче вікно SO-AskAnExpert, представлене 1 квітня, настільки кругле в своїй стратегії міркувань, так.
DWin

22

Оскільки arimaдля оцінки використовується максимальна ймовірність, коефіцієнти є асимптотичними нормальними. Отже, розділіть коефіцієнти на їх стандартні помилки, щоб отримати z-статистику, а потім обчислити p-значення. Ось приклад з в R з першим прикладом з arima довідкової сторінки:

> aa <- arima(lh, order = c(1,0,0))
> aa

Call:
arima(x = lh, order = c(1, 0, 0))

Coefficients:
         ar1  intercept
      0.5739     2.4133
s.e.  0.1161     0.1466

sigma^2 estimated as 0.1975:  log likelihood = -29.38,  aic = 64.76
> (1-pnorm(abs(aa$coef)/sqrt(diag(aa$var.coef))))*2
         ar1    intercept 
1.935776e-07 0.000000e+00 

Останній рядок дає p-значення.


H0:coef=0.0H1:coef0.0

Це можна зробити за допомогою коефіцієнта ймовірності журналу, оскільки модель оцінюється з використанням ймовірності журналу.
mpiktas

λ2λχ2nn

10

Ви також можете використовувати coeftestз lmtestпакета:

> aa <- arima(lh, order = c(1,0,0))

> coeftest(aa)

z test of coefficients:

          Estimate Std. Error z value  Pr(>|z|)    
ar1        0.57393    0.11614  4.9417 7.743e-07 ***
intercept  2.41329    0.14661 16.4602 < 2.2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.