Como calcular o valor-p dos parâmetros para o modelo ARIMA em R?

23

Ao pesquisar séries temporais em R, descobri que arima fornece apenas os valores do coeficiente e seus erros padrão do modelo ajustado. No entanto, também quero obter o valor p dos coeficientes.

Não encontrei nenhuma função que forneça o significado do coef.

Então, eu quero calcular isso sozinho, mas não sei o grau de liberdade na distribuição t ou chisq dos coeficientes. Então, minha pergunta é como obter os valores de p para os coeficientes do modelo de arima ajustado em R?

Lisa
fonte
9
Por que você quer o valor p? Testes de significância para os coeficientes de um modelo de RA não são particularmente úteis, pois a significância não é uma boa maneira de selecionar a ordem do modelo. Use o AIC.
Rob Hyndman 28/03
1
Geralmente, mais de um modelo se ajusta bem aos dados. Normalmente, é bom ter mais de um diagnóstico. Portanto, se eu já uso pacf / acf, AIC / BIC (talvez também precisão de previsão) e ainda não consiga escolher entre dois modelos - há algo errado em procurar também significância do coeficiente?
precisa saber é o seguinte

Respostas:

4

O "valor t" é a razão do coeficiente para o erro padrão. Os graus de liberdade (ndf) seriam o número de observações menos a ordem máxima de diferença no modelo menos o número de coeficientes estimados. O "valor F" seria o quadrado do "valor t". Para calcular exatamente a probabilidade, você teria que chamar uma função qui-quadrado não central e passar o valor F e os graus de liberdade (1, ndf) ou talvez simplesmente chame uma pesquisa de função F.

IrishStat
fonte
Muito Obrigado! Eu escrevi assim ... Mas, para minha surpresa, quase todos os parâmetros são insignificantes ... Mas, no SAS, ele diz que são significativos ... Por isso, duvido que haja algum erro nas minhas palavras de programação ....
28511 Lisa
o que eu escrevi: t = rep (0,5) std = rep (0,5) pvalor = rep (0,5) nobs = 369 npara = 5 para (i em 1: 5) {std [i] = sqrt ( fit coef [i] / std [i] pvalor [i] = 1 - pt (t [i], nobs-npara) }vumar.coef[Eu,Eu])t[Eu]=fEut
Lisa
O uso de resultados de um programa SAS não descrito dificilmente constitui evidência de correção estatística. SAS não é um oráculo. Pena que o pop-up SO-AskAnExpert apresentado em 1º de abril é tão circular em sua estratégia de raciocínio, hein.
Dwin
22

Como arimausa a probabilidade máxima de estimação, os coeficientes são assintoticamente normais. Portanto, divida os coeficientes pelos seus erros padrão para obter as estatísticas z e depois calcular os valores de p. Aqui está o exemplo com em R com o primeiro exemplo da arima página de ajuda:

> 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 

A última linha fornece os valores p.

mpiktas
fonte
H0 0:coef=0,0H1:coef0,0
Você pode fazer isso por meio da razão de probabilidade do log, uma vez que o modelo é estimado usando a probabilidade do log.
Mvctas # 21/16
λ-2λχ2nn
10

Você também pode usar coeftestdo lmtestpacote:

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