Ajustement de la régression linéaire multiple dans R: résidus autocorrélés

11

J'essaie d'estimer une régression linéaire multiple dans R avec une équation comme celle-ci:

regr <- lm(rate ~ constant + askings + questions + 0)

les demandes et les questions sont des séries chronologiques de données trimestrielles, construites avec askings <- ts(...).

Le problème est que j'ai obtenu des résidus autocorrélés. Je sais qu'il est possible d'ajuster la régression en utilisant la fonction gls, mais je ne sais pas comment identifier la structure d'erreur AR ou ARMA correcte que je dois implémenter dans la fonction gls.

Je voudrais essayer d'estimer à nouveau maintenant avec,

gls(rate ~ constant + askings + questions + 0, correlation=corARMA(p=?,q=?))

mais je ne suis malheureusement ni un expert R ni un expert statistique en général pour identifier p et q.

Je serais heureux si quelqu'un pouvait me donner un indice utile. Merci beaucoup d'avance!

Jo

Jo Schuster
la source

Réponses:

8

Essayer

library(forecast)
fit <- auto.arima(rate, xreg=cbind(askings,questions))

Cela s'adaptera au modèle linéaire et identifiera automatiquement une structure ARMA pour les erreurs. Il utilise MLE plutôt que GLS, mais ils sont équivalents asymptotiquement.

Rob Hyndman
la source
C'est tellement utile.
Olga Mu
3

Si la prédiction est votre objectif, vous pouvez adapter une gamme de modèles aux paramètres:

expand.grid(p = 1:P, q = 1:Q)

Pet Qsont les termes AR (p) et MA (q) maximaux que vous souhaitez inclure et choisissez le meilleur modèle d'ajustement tel que déterminé par BIC.

auto.arima()dans la prévision de package aidera à cela, mais il peut être codé facilement à la main en utilisant expand.grid()et en boucle et la arima()fonction fournie avec R.

Ce qui précède s'adapte aux résidus d'un gls()sans correlationstructure.

Vous pouvez également faire le tout à la main directement gls()en installant simplement de nombreux modèles pour les combinaisons de pet qet la AIC()fonction intégrée .

Vous pouvez également tracer l'ACF ( acf()) et l'ACF partiel ( pacf()) des résidus d'un modèle linéaire sans structure de corrélation et les utiliser pour suggérer l'ordre du modèle requis.

Réintégrer Monica - G. Simpson
la source