Lorsque j'exécute ce code:
require(nlme)
a <- matrix(c(1,3,5,7,4,5,6,4,7,8,9))
b <- matrix(c(3,5,6,2,4,6,7,8,7,8,9))
res <- lm(a ~ b)
print(summary(res))
res_gls <- gls(a ~ b)
print(summary(res_gls))
J'obtiens les mêmes coefficients et la même signification statistique sur les coefficients:
Loading required package: nlme
Call:
lm(formula = a ~ b)
Residuals:
Min 1Q Median 3Q Max
-2.7361 -1.1348 -0.2955 1.2463 3.8234
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.0576 1.8732 1.098 0.3005
b 0.5595 0.2986 1.874 0.0937 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.088 on 9 degrees of freedom
Multiple R-squared: 0.2807, Adjusted R-squared: 0.2007
F-statistic: 3.512 on 1 and 9 DF, p-value: 0.09371
Generalized least squares fit by REML
Model: a ~ b
Data: NULL
AIC BIC logLik
51.0801 51.67177 -22.54005
Coefficients:
Value Std.Error t-value p-value
(Intercept) 2.0576208 1.8731573 1.098477 0.3005
b 0.5594796 0.2985566 1.873948 0.0937
Correlation:
(Intr)
b -0.942
Standardized residuals:
Min Q1 Med Q3 Max
-1.3104006 -0.5434780 -0.1415446 0.5968911 1.8311781
Residual standard error: 2.087956
Degrees of freedom: 11 total; 9 residual
Pourquoi cela arrive-t-il? Dans quels cas les estimations OLS sont-elles les mêmes que les estimations GLS?
correlation
ouweights
au sein de lagls
fonction, les résultats de GLS sont égaux à ceux delm
.gls
d'agir comme çalm
. Une autre question est de savoir ce que je devrais mettrecorrelation
etweights
.Réponses:
Vous avez obtenu les mêmes résultats car vous n'avez pas spécifié de structure spéciale de variance ou de corrélation dans la
gls
fonction. Sans ces options, un GLS se comporte comme un OLS. L'avantage d'un modèle GLS par rapport à une régression normale est la possibilité de spécifier une structure de corrélation (optioncorrelation
) ou de permettre à la variance résiduelle de différer (optionweights
). Permettez-moi de montrer cela avec un exemple.Le premier modèle GLS (
gls.mod.1
) et le modèle de régression linéaire normal (lm.mod
) donnent exactement les mêmes résultats. Le modèle GLS permettant différents écarts-types résiduels (gls.mod.2
) estime que l'écart-type résiduely2
est environ 3 fois plus grand que l'écart-type résiduel,y1
ce qui est exactement ce que nous avons spécifié lorsque nous avons généré les données. Les coefficients de régression sont pratiquement les mêmes, mais les erreurs standard ont changé. Le test du rapport de vraisemblance (et AIC) suggère que le modèle GLS avec les différentes variances résiduelles (gls.mod.2
) correspond mieux aux données que le modèle normal (lm.mod
ougls.mod.1
).Structures de variance et de corrélation dans
gls
Vous pouvez spécifier plusieurs structures de variance dans la
gls
fonction et l'optionweights
. Voir ici pour une liste. Pour une liste des structures de corrélation pour l'option,correlation
voir ici .la source
et pour être clair, en cas de corrélation sérielle des résidus, vous pouvez simplement utiliser l'estimation OLS de celui-ci, par exemple
gls(..., cor=corAR1(0.6))
, ici le 0.6, ainsi que l'ordre provient d'OLS, vous pouvez les calculer en utilisant laar
fonction pour les résidus d'OLSla source