So berechnen sie robuste standardfehler in r
Eine der Annahmen der linearen Regression besteht darin, dass die Modellresiduen auf jeder Ebene der Prädiktorvariablen gleichmäßig verteilt sind.
Wenn diese Annahme nicht erfüllt ist, spricht man von Heteroskedastizität in einem Regressionsmodell.
Wenn dies geschieht, werden die Standardfehler der Regressionskoeffizienten des Modells unzuverlässig.
Um dies zu berücksichtigen, können wir robuste Standardfehler berechnen, die „robust“ gegenüber Heteroskedastizität sind und uns eine bessere Vorstellung von den wahren Standardfehlerwerten für die Regressionskoeffizienten geben können.
Das folgende Beispiel zeigt, wie robuste Standardfehler für ein Regressionsmodell in R berechnet werden.
Beispiel: Berechnung robuster Standardfehler in R
Angenommen, wir haben den folgenden Datenrahmen in R, der Informationen über die gelernten Stunden und Prüfungsergebnisse von 20 Schülern einer Klasse enthält:
#create data frame df <- data. frame (hours=c(1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7, 7, 8), score=c(67, 68, 74, 70, 71, 75, 80, 70, 84, 72, 88, 75, 95, 75, 99, 78, 99, 65, 96, 70)) #view head of data frame head(df) hours score 1 1 67 2 1 68 3 1 74 4 1 70 5 2 71 6 2 75
Wir können die Funktion lm() verwenden, um ein Regressionsmodell in R anzupassen, das Stunden als Prädiktorvariable und Score als Antwortvariable verwendet:
#fit regression model fit <- lm(score ~ hours, data=df) #view summary of model summary(fit) Call: lm(formula = score ~ hours, data = df) Residuals: Min 1Q Median 3Q Max -19,775 -5,298 -3,521 7,520 18,116 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 71.158 4.708 15.11 1.14e-11 *** hours 1.945 1.075 1.81 0.087 . --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 10.48 on 18 degrees of freedom Multiple R-squared: 0.154, Adjusted R-squared: 0.107 F-statistic: 3.278 on 1 and 18 DF, p-value: 0.08696
Der einfachste Weg, visuell zu überprüfen, ob Heteroskedastizität ein Problem im Regressionsmodell darstellt, besteht darin, ein Residuendiagramm zu erstellen:
#create residual vs. fitted plot plot(fitted(fit), reside(fit)) #add a horizontal line at y=0 abline(0,0)
Die x-Achse zeigt die angepassten Werte der Antwortvariablen und die y-Achse zeigt die entsprechenden Residuen.
Aus der Grafik können wir ersehen, dass die Varianz der Residuen mit zunehmenden angepassten Werten zunimmt.
Dies weist darauf hin, dass Heteroskedastizität wahrscheinlich ein Problem im Regressionsmodell darstellt und dass die Standardfehler der Modellzusammenfassung unzuverlässig sind.
Um robuste Standardfehler zu berechnen, können wir die Funktion coeftest() aus dem Paket lmtest und die Funktion vcovHC() aus dem Paket Sandwich wie folgt verwenden:
library (lmtest) library (sandwich) #calculate robust standard errors for model coefficients coeftest(fit, vcov = vcovHC(fit, type = ' HC0 ')) t test of coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 71.1576 3.3072 21.5160 2.719e-14 *** hours 1.9454 1.2072 1.6115 0.1245 --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Beachten Sie, dass der Standardfehler für die Stundenprädiktorvariable von 1,075 in der vorherigen Modellzusammenfassung auf 1,2072 in dieser Modellzusammenfassung gestiegen ist.
Da im ursprünglichen Regressionsmodell Heteroskedastizität vorhanden ist, ist diese Standardfehlerschätzung zuverlässiger und sollte bei der Berechnung eines Konfidenzintervalls für die Prädiktorvariable „Stunden“ verwendet werden.
Hinweis : Der in der vcovHC() -Funktion am häufigsten zu berechnende Schätzungstyp ist „HC0“. Weitere Schätzungstypen finden Sie jedoch in der Dokumentation .
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in R ausführen:
So führen Sie den White-Test für Heteroskedastizität in R durch
So interpretieren Sie die lineare Regressionsausgabe in R
So erstellen Sie ein Residuendiagramm in R