White-Test in R durchführen - so geht's

Von Fabian
Kategorie: R
Tags: Regression
Lesezeit: 3 Minuten

Der White-Test wird verwendet, um festzustellen, ob in einem Regressionsmodell Heteroskedastizität vorliegt.

Heteroskedastizität bezieht sich auf die ungleiche Streuung von Residuen auf verschiedenen Ebenen einer Antwortvariablen in einem Regressionsmodell, was gegen eine der Schlüsselannahmen der linearen Regression verstößt, dass die Residuen auf jeder Ebene der Antwortvariablen gleichmäßig gestreut sind.

In diesem Tutorial wird erklärt, wie der White-Test in R durchgeführt wird, um festzustellen, ob Heteroskedastizität in einem bestimmten Regressionsmodell ein Problem darstellt.

Beispiel: White-Test in R

In diesem Beispiel werden wir ein Modell mit mehreren linearen Regressionen unter Verwendung des integrierten R-Datensatzes mtcars anpassen.

Sobald wir das Modell angepasst haben verwenden wir die bptest-Funktion aus der lmtest-Bibliothek, um den White-Test durchzuführen und festzustellen, ob Heteroskedastizität vorliegt.

Schritt 1: Passen Sie ein Regressionsmodell an.

Zunächst werden wir ein Regressionsmodell anpassen, das mpg als Antwortvariable und disp und hp als die beiden erklärenden Variablen verwendet.

#Laden Sie den Datensatz
data(mtcars)

#ein Regressionsmodell anpassen
model <- lm(mpg~disp+hp, data=mtcars)

#Modellzusammenfassung anzeigen
summary(model)

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 30.735904   1.331566  23.083  < 2e-16 ***
disp        -0.030346   0.007405  -4.098 0.000306 ***
hp          -0.024840   0.013385  -1.856 0.073679 .  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.127 on 29 degrees of freedom
Multiple R-squared:  0.7482,    Adjusted R-squared:  0.7309 
F-statistic: 43.09 on 2 and 29 DF,  p-value: 2.062e-09

Schritt 2: Führen Sie den White-Test durch.

Als nächstes werden wir die folgende Syntax verwenden, um den White-Test durchzuführen, um festzustellen, ob Heteroskedastizität vorliegt:

#lmtest Bibliothek laden
library(lmtest)

# White's Test durchführen
bptest(model, ~ disp*hp + I(disp^2) + I(hp^2), data = mtcars)

    studentized Breusch-Pagan test

data:  model
BP = 7.0766, df = 5, p-value = 0.215

So interpretieren Sie die Ausgabe:

  • Die Teststatistik ist X 2 = 7,0766.
  • Der Freiheitsgrad beträgt 5.
  • Der entsprechende p-Wert beträgt 0,215.

Der White-Test verwendet die folgenden Null- und Alternativhypothesen:

  • Null (H 0 ): Homoskedastizität ist vorhanden.
  • Alternative (H A ): Heteroskedastizität ist vorhanden.

Da der p-Wert nicht kleiner als 0,05 ist, können wir die Nullhypothese nicht ablehnen. Wir haben nicht genügend Beweise, um zu sagen, dass das Regressionsmodell Heteroskedastizität aufweist.

Was macht man als nächstes?

Wenn Sie die Nullhypothese des White-Tests nicht ablehnen, liegt keine Heteroskedastizität vor, und Sie können mit der Interpretation der Ausgabe der ursprünglichen Regression fortfahren.

Wenn Sie jedoch die Nullhypothese ablehnen, bedeutet dies, dass die Daten heteroskedastisch sind. In diesem Fall können die Standardfehler, die in der Ausgabetabelle der Regression angezeigt werden, unzuverlässig sein.

Es gibt einige gängige Möglichkeiten, um dieses Problem zu beheben, darunter:

1. Transformieren Sie die Antwortvariable.

Sie können versuchen, eine Transformation für die Antwortvariable durchzuführen, z. B. das Protokoll, die Quadratwurzel oder die Kubikwurzel der Antwortvariablen. In der Regel kann dies dazu führen, dass die Heteroskedastizität verschwindet.

2. Verwenden Sie die gewichtete Regression.

Die gewichtete Regression weist jedem Datenpunkt eine Gewichtung basierend auf der Varianz seines angepassten Werts zu. Dies gibt Datenpunkten mit höheren Varianzen im Wesentlichen kleine Gewichte, wodurch ihre quadratischen Residuen verkleinert werden. Wenn die richtigen Gewichte verwendet werden, kann dies das Problem der Heteroskedastizität beseitigen.

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: