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