Wie berechnet man den p-Wert von Parametern für das ARIMA-Modell in R?

23

Bei der Zeitreihenrecherche in R stellte ich fest, dass arima nur die Koeffizientenwerte und ihre Standardfehler des angepassten Modells angegeben werden. Ich möchte aber auch den p-Wert der Koeffizienten erhalten.

Ich habe keine Funktion gefunden, die die Bedeutung von coef liefert.

Ich möchte es also selbst berechnen, kenne aber den Freiheitsgrad in der t- oder chisq-Verteilung der Koeffizienten nicht. Meine Frage ist also, wie man die p-Werte für die Koeffizienten des angepassten Arima-Modells in R erhält.

Lisa
quelle
9
Warum willst du den p-Wert? Signifikanztests für die Koeffizienten eines AR-Modells sind nicht besonders hilfreich, da die Signifikanz keine gute Methode zur Auswahl der Modellreihenfolge ist. Verwenden Sie stattdessen den AIC.
Rob Hyndman
1
Oft passt mehr als ein Modell gut zu den Daten. Normalerweise ist es schön, mehr als eine Diagnose zu haben. Wenn ich also bereits pacf / acf, AIC / BIC (möglicherweise auch Prognosegenauigkeit) verwende und immer noch nicht zwischen zwei Modellen wählen kann - stimmt etwas nicht, wenn ich auch die Koeffizientensignifikanz betrachte?
hans0l0

Antworten:

4

Der "t-Wert" ist das Verhältnis des Koeffizienten zum Standardfehler. Die Freiheitsgrade (ndf) sind die Anzahl der Beobachtungen abzüglich der maximalen Differenzordnung im Modell abzüglich der Anzahl der geschätzten Koeffizienten. Der "F-Wert" wäre das Quadrat des "t-Wertes". Um die Wahrscheinlichkeit genau zu berechnen, müssten Sie eine nicht-zentrale Chi-Quadrat-Funktion aufrufen und den F-Wert und die Freiheitsgrade (1, ndf) eingeben. oder rufen Sie einfach eine F-Funktionssuche auf.

IrishStat
quelle
Danke vielmals! Ich habe es so geschrieben ... Aber zu meiner Überraschung, dass fast alle Parameter unbedeutend sind ... Aber in SAS heißt es, dass sie bedeutend sind ... Also bezweifle ich, dass es einen Fehler in meinen Programmierwörtern gibt ...
Lisa
veinr.cOef[ich,ich])t[ich]=ficht
Die Verwendung von Ergebnissen aus einem nicht beschriebenen SAS-Programm ist kaum ein Beweis für die statistische Richtigkeit. SAS ist kein Orakel. Schade, dass das am 1. April eingeführte SO-AskAnExpert-Popup in seiner Argumentationsstrategie so zirkulär ist, nicht wahr?
DWin
22

Da arimafür die Schätzung die maximale Wahrscheinlichkeit verwendet wird, sind die Koeffizienten assymptotisch normal. Teilen Sie daher die Koeffizienten durch ihre Standardfehler, um die z-Statistik zu erhalten und dann die p-Werte zu berechnen. Hier ist das Beispiel mit in R mit dem ersten Beispiel von der arima Hilfeseite:

> 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 

Die letzte Zeile gibt die p-Werte an.

mpiktas
quelle
H0:cOef=0.0H1:cOef0.0
Sie können dies über das Log-Likelihood-Verhältnis tun, da das Modell anhand der Log-Likelihood geschätzt wird.
mpiktas
λ-2λχ2nn
10

Sie könnten auch coeftestvon lmtestPaket verwenden:

> 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
Robert
quelle