¿Cómo calcular el valor p de los parámetros para el modelo ARIMA en R?

23

Al hacer una investigación de series temporales en R, descubrí que arima solo proporciona los valores de los coeficientes y sus errores estándar del modelo ajustado. Sin embargo, también quiero obtener el valor p de los coeficientes.

No encontré ninguna función que proporcione la importancia de coef.

Así que deseo calcularlo por mí mismo, pero no sé el grado de libertad en la distribución t o chisq de los coeficientes. Entonces, mi pregunta es ¿cómo obtener los valores p para los coeficientes del modelo de arima ajustado en R?

Lisa
fuente
99
¿Por qué quieres el valor p? Las pruebas de significancia para los coeficientes de un modelo AR no son particularmente útiles ya que la significancia no es una buena manera de seleccionar el orden del modelo. Utilice el AIC en su lugar.
Rob Hyndman
1
A menudo, más de un modelo se ajusta bien a los datos. Por lo general, es bueno tener más de un diagnóstico. Entonces, si ya uso pacf / acf, AIC / BIC (tal vez también la precisión del pronóstico) y todavía no puedo elegir entre dos modelos, ¿hay algo de malo en mirar también la importancia del coeficiente?
hans0l0

Respuestas:

4

El "valor t" es la relación del coeficiente al error estándar. Los grados de libertad (ndf) serían el número de observaciones menos el orden máximo de diferencia en el modelo menos el número de coeficientes estimados. El "valor F" sería el cuadrado del "valor t". Para calcular exactamente la probabilidad, tendría que llamar a una función chi-cuadrado no central y pasar el valor F y los grados de libertad (1, ndf) o tal vez simplemente llame a una búsqueda de función F.

IrishStat
fuente
¡Muchas gracias! Lo escribí así ... Pero para mi sorpresa, casi todos los parámetros son insignificantes ... Pero en SAS dice que son significativos ... Así que dudo si hay algún error en mis palabras de programación ...
Lisa
lo que escribí: t = rep (0,5) std = rep (0,5) pvalue = rep (0,5) nobs = 369 npara = 5 para (i en 1: 5) {std [i] = sqrt ( ajuste coef [i] / std [i] pvalue [i] = 1 - pt (t [i], nobs-npara) }vunar.doomiF[yo,yo])t[yo]=Fyot
Lisa
El uso de resultados de un programa SAS no descrito apenas constituye evidencia de corrección estadística. SAS no es un oráculo. Lástima que la ventana emergente SO-AskAnExpert presentada el 1 de abril sea tan circular en su estrategia de razonamiento, eh.
DWin
22

Dado que arimautiliza la máxima probabilidad de estimación, los coeficientes son asintóticamente normales. Por lo tanto, divida los coeficientes por sus errores estándar para obtener las estadísticas z y luego calcule los valores p. Aquí está el ejemplo con en R con el primer ejemplo de la arima página de ayuda:

> 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 

La última línea da los valores p.

mpiktas
fuente
H0 0:doomiF=0.0H1:doomiF0.0
Puede hacerlo a través de la relación de probabilidad de registro, ya que el modelo se estima utilizando la probabilidad de registro.
mpiktas
λ-2λχ2nortenorte
10

También puede usar coeftestdesde el lmtestpaquete:

> 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
fuente