So führen sie einen wald-test in python durch


Mit einem Wald-Test kann getestet werden, ob ein oder mehrere Parameter eines Modells bestimmten Werten entsprechen.

Dieser Test wird häufig verwendet, um zu bestimmen, ob eine oder mehrere Prädiktorvariablen in einem Regressionsmodell gleich Null sind.

Für diesen Test verwenden wir die folgenden Null- und Alternativhypothesen :

  • H 0 : Einige Sätze von Prädiktorvariablen sind alle gleich Null.
  • H A : Nicht alle Prädiktorvariablen im Satz sind gleich Null.

Wenn wir die Nullhypothese nicht ablehnen können, können wir den angegebenen Satz von Prädiktorvariablen aus dem Modell entfernen, da sie keine statistisch signifikante Verbesserung der Modellanpassung bewirken.

Das folgende Beispiel zeigt, wie man einen Wald-Test in Python durchführt

Beispiel: Wald-Test in Python

Für dieses Beispiel verwenden wir den berühmten mtcars -Datensatz, um das folgende multiple lineare Regressionsmodell anzupassen:

mpg = β 0 + β 1 verfügbar + β 2 Kohlenhydrate + β 3 PS + β 4 Zyl

Der folgende Code zeigt, wie dieses Regressionsmodell angepasst und die Modellzusammenfassung angezeigt wird:

 import statsmodels. formula . api as smf
import pandas as pd
import io

#define dataset as string
mtcars_data="""model,mpg,cyl,disp,hp,drat,wt,qsec,vs,am,gear,carb
Mazda RX4,21,6,160,110,3.9,2.62,16.46,0,1,4,4
Mazda RX4 Wag,21.6,160,110,3.9,2.875,17.02,0,1,4,4
Datsun 710,22.8,4,108,93,3.85,2.32,18.61,1,1,4,1
Hornet 4 Drive,21.4,6,258,110,3.08,3.215,19.44,1,0,3,1
Hornet Sportabout,18.7,8,360,175,3.15,3.44,17.02,0,0,3,2
Valiant,18.1,6,225,105,2.76,3.46,20.22,1,0,3,1
Duster 360,14.3,8,360,245,3.21,3.57,15.84,0,0,3,4
Merc 240D,24.4,4,146.7,62,3.69,3.19,20,1,0,4,2
Merc 230,22.8,4,140.8,95,3.92,3.15,22.9,1,0,4,2
Merc 280,19.2,6,167.6,123,3.92,3.44,18.3,1,0,4,4
Merc 280C,17.8,6,167.6,123,3.92,3.44,18.9,1,0,4,4
Merc 450SE,16.4,8,275.8,180,3.07,4.07,17.4,0,0,3,3
Merc 450SL,17.3,8,275.8,180,3.07,3.73,17.6,0,0,3,3
Merc 450SLC,15.2,8,275.8,180,3.07,3.78,18,0,0,3,3
Cadillac Fleetwood,10.4,8,472,205,2.93,5.25,17.98,0,0,3,4
Lincoln Continental,10.4,8,460,215,3,5.424,17.82,0,0,3,4
Chrysler Imperial,14.7,8,440,230,3.23,5.345,17.42,0,0,3,4
Fiat 128,32.4,4,78.7,66,4.08,2.2,19.47,1,1,4,1
Honda Civic,30.4,4,75.7,52,4.93,1.615,18.52,1,1,4,2
Toyota Corolla,33.9,4,71.1,65,4.22,1.835,19.9,1,1,4,1
Toyota Corona,21.5,4,120.1,97,3.7,2.465,20.01,1,0,3,1
Dodge Challenger,15.5,8,318,150,2.76,3.52,16.87,0,0,3,2
AMC Javelin,15.2,8,304,150,3.15,3.435,17.3,0,0,3,2
Camaro Z28,13.3,8,350,245,3.73,3.84,15.41,0,0,3,4
Pontiac Firebird,19.2,8,400,175,3.08,3.845,17.05,0,0,3,2
Fiat X1-9,27.3,4,79,66,4.08,1.935,18.9,1,1,4,1
Porsche 914-2,26,4,120.3,91,4.43,2.14,16.7,0,1,5,2
Lotus Europa,30.4,4,95.1,113,3.77,1.513,16.9,1,1,5,2
Ford Pantera L,15.8,8,351,264,4.22,3.17,14.5,0,1,5,4
Ferrari Dino,19.7,6,145,175,3.62,2.77,15.5,0,1,5,6
Maserati Bora,15.8,301,335,3.54,3.57,14.6,0,1,5,8
Volvo 142E,21.4,4,121,109,4.11,2.78,18.6,1,1,4,2"""

#convert string to DataFrame
df = pd. read_csv ( io.StringIO (mtcars_data), sep=" , ")

#fit multiple linear regression model
results = smf. ols (' mpg~disp+carb+hp+cyl ',df). fit ()

#view regression model summary
results. summary ()

	coef std err t P>|t| [0.025 0.975]
Intercept34.0216 2.523 13.482 0.000 28.844 39.199
available -0.0269 0.011 -2.379 0.025 -0.050 -0.004
carb -0.9269 0.579 -1.601 0.121 -2.115 0.261
hp 0.0093 0.021 0.452 0.655 -0.033 0.052
cyl -1.0485 0.784 -1.338 0.192 -2.657 0.560

Als nächstes können wir die Funktion wald_test() von statsmodels verwenden, um zu testen, ob die Regressionskoeffizienten für die Prädiktorvariablen „hp“ und „cyl“ beide gleich Null sind.

Der folgende Code zeigt, wie man diese Funktion in der Praxis nutzt:

 #perform Wald Test to determine if 'hp' and 'cyl' coefficients are both zero
print ( results.wald_test (' (hp=0, cyl=0) '))

F test: F=array([[0.91125429]]), p=0.41403001184235005, df_denom=27, df_num=2

Aus dem Ergebnis können wir ersehen, dass der p-Wert des Tests 0,414 beträgt.

Da dieser p-Wert nicht kleiner als 0,05 ist, können wir die Nullhypothese des Wald-Tests nicht ablehnen.

Das bedeutet, dass wir davon ausgehen können, dass die Regressionskoeffizienten für die Prädiktorvariablen „hp“ und „cyl“ beide gleich Null sind.

Wir können diese Terme aus dem Modell entfernen, da sie die allgemeine Modellanpassung statistisch nicht signifikant verbessern.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere gängige Vorgänge in Python ausführen:

So führen Sie eine einfache lineare Regression durch
So führen Sie eine Polynomregression in Python durch
So berechnen Sie VIF in Python

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert