Cara melakukan tes white dengan python (langkah demi langkah)
Uji White digunakan untuk mengetahui apakah terdapat heteroskedastisitas dalam suatu model regresi.
Heteroskedastisitas mengacu pada penyebaran residu yang tidak merata pada tingkat variabel respons yang berbeda, yang melanggar asumsi bahwa residu tersebar secara merata di setiap tingkat variabel respons.
Contoh langkah demi langkah berikut menunjukkan cara melakukan uji White dengan Python untuk menentukan apakah heteroskedastisitas merupakan masalah dalam model regresi tertentu.
Langkah 1: Muat data
Dalam contoh ini, kita akan menyesuaikan model regresi linier berganda menggunakan dataset mtcars .
Kode berikut menunjukkan cara memuat kumpulan data ini ke dalam DataFrame pandas:
from sklearn. linear_model import LinearRegression from statsmodels. stats . diagnostic import het_white import statsmodels. api as sm import pandas as pd #define URL where dataset is located url = "https://raw.githubusercontent.com/Statorials/Python-Guides/main/mtcars.csv" #read in data data = pd. read_csv (url) #view summary of data data. info () <class 'pandas.core.frame.DataFrame'> RangeIndex: 32 entries, 0 to 31 Data columns (total 12 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 model 32 non-null object 1 mpg 32 non-null float64 2 cyl 32 non-null int64 3 disp 32 non-null float64 4 hp 32 non-null int64 5 drat 32 non-null float64 6 wt 32 non-null float64 7 qsec 32 non-null float64 8 vs 32 non-null int64 9 am 32 non-null int64 10 gear 32 non-null int64 11 carb 32 non-null int64 dtypes: float64(5), int64(6), object(1)
Langkah 2: Sesuaikan model regresi
Selanjutnya, kita akan memasang model regresi menggunakan mpg sebagai variabel respon dan disp dan hp sebagai dua variabel prediktor:
#define response variable y = data[' mpg '] #define predictor variables x = data[[' disp ', ' hp ']] #add constant to predictor variables x = sm. add_constant (x) #fit regression model model = sm. OLS (y,x). fit ()
Langkah 3: Lakukan tes White
Selanjutnya, kita akan menggunakan fungsi het_white() dari paket statsmodels untuk melakukan pengujian White guna menentukan apakah terdapat heteroskedastisitas dalam model regresi:
#perform White's test white_test = het_white(model. resid , model. model . exog ) #define labels to use for output of White's test labels = ['Test Statistic', 'Test Statistic p-value', 'F-Statistic', 'F-Test p-value'] #print results of White's test print (dict(zip(labels, white_test))) {'Test Statistic': 7.076620330416624, 'Test Statistic p-value': 0.21500404394263936, 'F-Statistic': 1.4764621093131864, 'F-Test p-value': 0.23147065943879694}
Berikut cara menafsirkan hasilnya:
- Statistik ujinya adalah X2 = 7.0766 .
- Nilai p yang sesuai adalah 0,215 .
Tes White menggunakan hipotesis nol dan hipotesis alternatif berikut:
- Null (H 0 ) : Terdapat homoskedastisitas (sisanya juga tersebar)
- Alternatif ( HA ): Terdapat heteroskedastisitas (sisa-sisa tidak tersebar secara merata)
Karena nilai p tidak kurang dari 0,05, kita gagal menolak hipotesis nol.
Artinya kita tidak mempunyai cukup bukti untuk menyatakan adanya heteroskedastisitas dalam model regresi.
Apa yang harus dilakukan selanjutnya
Jika Anda gagal menolak hipotesis nol uji White, maka tidak terjadi heteroskedastisitas dan Anda dapat melanjutkan untuk menginterpretasikan hasil regresi awal.
Namun jika hipotesis nol ditolak berarti terjadi heteroskedastisitas. Dalam hal ini, kesalahan standar yang ditampilkan dalam tabel keluaran regresi mungkin tidak dapat diandalkan.
Ada dua cara umum untuk mengatasi masalah ini:
1. Transformasikan variabel respon.
Anda dapat mencoba melakukan transformasi pada variabel respon, misalnya mengambil log, akar kuadrat, atau akar pangkat tiga dari variabel respon. Hal ini seringkali mengakibatkan hilangnya heteroskedastisitas.
2. Gunakan regresi tertimbang.
Regresi tertimbang memberikan bobot pada setiap titik data berdasarkan varians dari nilai yang dipasang. Pada dasarnya, hal ini memberikan bobot rendah pada titik data yang memiliki varian lebih tinggi, sehingga mengurangi kuadrat residunya. Apabila bobot yang digunakan sesuai maka masalah heteroskedastisitas dapat dihilangkan.
Sumber daya tambahan
Tutorial berikut memberikan informasi tambahan tentang regresi linier dengan Python:
Panduan Lengkap Regresi Linier dengan Python
Cara Membuat Plot Sisa dengan Python
Cara menghitung VIF dengan Python