Como instituição financeira, frequentemente analisamos dados de séries temporais. Muitas vezes acabamos fazendo regressão usando variáveis de séries temporais. Quando isso acontece, geralmente encontramos resíduos com a estrutura de séries temporais que viola a suposição básica de erros independentes na regressão do OLS. Recentemente, estamos construindo outro modelo no qual acredito ter regressão com erros autocorrelacionados. Os resíduos do modelo linear têm lm(object)
claramente uma estrutura AR (1), como é evidente no ACF e PACF. Eu tomei duas abordagens diferentes, a primeira obviamente foi para ajustar o modelo usando mínimos quadrados generalizados gls()
em R. Minha expectativa era que os resíduos de gls (objeto) fossem um ruído branco (erros independentes). Mas os resíduos degls(object)
ainda tem a mesma estrutura ARIMA que na regressão comum. Infelizmente, há algo errado no que estou fazendo que não consegui descobrir. Por isso, decidi ajustar manualmente os coeficientes de regressão a partir do modelo linear (estimativas OLS). Surpreendentemente, isso parece estar funcionando quando eu plotei os resíduos da regressão ajustada (os resíduos são ruído branco). Eu realmente quero usar gls()
no nlme
pacote para que a codificação seja muito mais simples e fácil. Qual seria a abordagem que eu deveria adotar aqui? Eu devo usar REML? ou a minha expectativa de resíduos não correlacionados (ruído branco) do objeto gls () está errada?
gls.bk_ai <- gls(PRNP_BK_actINV ~ PRM_BK_INV_ENDING + NPRM_BK_INV_ENDING,
correlation=corARMA(p=1), method='ML', data = fit.cap01A)
gls2.bk_ai <- update(gls.bk_ai, correlation = corARMA(p=2))
gls3.bk_ai <- update(gls.bk_ai, correlation = corARMA(p=3))
gls0.bk_ai <- update(gls.bk_ai, correlation = NULL)
anova(gls.bk_ai, gls2.bk_ai, gls3.bk_ai, gls0.bk_ai)
## looking at the AIC value, gls model with AR(1) will be the best bet
acf2(residuals(gls.bk_ai)) # residuals are not white noise
Existe algo errado com o que estou fazendo ???????
predict.arima()
fornecerão uma previsão melhor do quepredict.gls()
.Você deseja os resíduos normalizados. Veja
?residuals.lme
.fonte