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


23

Выполняя исследование временных рядов в R, я обнаружил, что он arima предоставляет только значения коэффициентов и их стандартные ошибки для подобранной модели. Тем не менее, я также хочу получить р-значение коэффициентов.

Я не нашел ни одной функции, обеспечивающей значение coef.

Поэтому я хочу рассчитать его самостоятельно, но я не знаю степень свободы в распределении коэффициентов t или chisq. Поэтому мой вопрос заключается в том, как получить p-значения для коэффициентов модели подогнанной аримы в R?


9
Почему вы хотите р-значение? Критерии значимости для коэффициентов модели AR не особенно полезны, так как значимость не является хорошим способом выбора порядка модели. Вместо этого используйте AIC.
Роб Хиндман,

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

Ответы:


4

«Значение t» - это отношение коэффициента к стандартной ошибке. Степени свободы (ndf) - это число наблюдений минус максимальный порядок различий в модели минус количество оценочных коэффициентов. Значение «F» будет квадратом значения «t». Для точного вычисления вероятности вам нужно будет вызвать нецентральную функцию хи-квадрат и передать значение F и степени свободы (1, ndf). или, возможно, просто вызвать поиск F-функции.


Большое спасибо! Я написал это так ... Но, к моему удивлению, почти все параметры незначительны ... Но в SAS говорится, что они значительны ... Поэтому я сомневаюсь, что есть какие-то ошибки в моих словах программирования ....
Лиза

что я написал: t = rep (0,5) std = rep (0,5) pvalue = rep (0,5) nobs = 369 npara = 5 for (i in 1: 5) {std [i] = sqrt ( fit coef [i] / std [i] pvalue [i] = 1 - pt (t [i], nobs-npara) }vaр,соее[я,я])T[я]знак равноеяT
Лиза

Использование результатов неописанной программы 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-значения.


ЧАС0:соеезнак равно0.0ЧАС1:соее0.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.