Cara melakukan tes wald dengan python
Uji Wald dapat digunakan untuk menguji apakah satu atau lebih parameter suatu model sama dengan nilai tertentu.
Pengujian ini sering digunakan untuk menentukan apakah satu atau lebih variabel prediktor dalam suatu model regresi sama dengan nol.
Kami menggunakan hipotesis nol dan hipotesis alternatif berikut untuk pengujian ini:
- H 0 : Beberapa himpunan variabel prediktor semuanya sama dengan nol.
- H A : Tidak semua variabel prediktor dalam himpunan sama dengan nol.
Jika kita gagal menolak hipotesis nol, maka kita dapat menghapus kumpulan variabel prediktor tertentu dari model, karena variabel tersebut tidak memberikan peningkatan yang signifikan secara statistik dalam kesesuaian model.
Contoh berikut menunjukkan cara melakukan tes Wald dengan Python
Contoh: Tes Wald dengan Python
Untuk contoh ini, kita akan menggunakan kumpulan data mtcars yang terkenal agar sesuai dengan model regresi linier berganda berikut:
mpg = β 0 + β 1 tersedia + β 2 karbohidrat + β 3 hp + β 4 silinder
Kode berikut menunjukkan cara menyesuaikan model regresi ini dan menampilkan ringkasan model:
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
Selanjutnya, kita dapat menggunakan fungsi statsmodels wald_test() untuk menguji apakah koefisien regresi untuk variabel prediktor “hp” dan “cyl” keduanya sama dengan nol.
Kode berikut menunjukkan cara menggunakan fungsi ini dalam praktiknya:
#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
Dari hasil tersebut terlihat bahwa p-value pengujian tersebut adalah 0,414 .
Karena nilai p ini tidak kurang dari 0,05, kita gagal menolak hipotesis nol uji Wald.
Artinya kita dapat berasumsi bahwa koefisien regresi untuk variabel prediktor “hp” dan “cyl” keduanya sama dengan nol.
Kami dapat menghapus istilah-istilah ini dari model karena secara statistik istilah-istilah tersebut tidak meningkatkan kesesuaian model secara keseluruhan secara signifikan.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan operasi umum lainnya dengan Python:
Cara melakukan regresi linier sederhana
Cara melakukan regresi polinomial dengan Python
Cara menghitung VIF dengan Python