Python တွင် white's test ကို မည်သို့လုပ်ဆောင်ရမည် (အဆင့်ဆင့်)
White’s test ကို regression model တွင် heteroscedasticity ရှိမရှိ ဆုံးဖြတ်ရန် အသုံးပြုသည်။
Heteroscedasticity ဆိုသည်မှာ တုံ့ပြန်မှုကိန်းရှင် ၏ ကွဲပြားသောအဆင့်တွင် ကျန်ရှိသော အကြွင်းအကျန်များ မညီမညာ ပျံ့နှံ့သွားခြင်းကို ရည်ညွှန်းသည်၊ ကျန်ရှိသော အရာများသည် တုံ့ပြန်မှုကိန်းရှင်အဆင့်တိုင်းတွင် အညီအမျှ ကွဲထွက်သွားသည်ဟူသော ယူဆချက်ကို ချိုးဖောက်သည်။
အောက်ဖော်ပြပါ အဆင့်ဆင့် ဥပမာသည် ပေးထားသော ဆုတ်ယုတ်မှုပုံစံတစ်ခုတွင် ပြဿနာဖြစ်ခြင်း ရှိ၊ မရှိ ဆုံးဖြတ်ရန် Python တွင် White ၏ စမ်းသပ်မှုကို မည်သို့လုပ်ဆောင်ရမည်ကို ပြသထားသည်။
အဆင့် 1: ဒေတာကို တင်ပါ။
ဤဥပမာတွင်၊ ကျွန်ုပ်တို့သည် mtcars dataset ကို အသုံးပြု၍ များစွာသော linear regression model တစ်ခုနှင့် ကိုက်ညီပါမည်။
အောက်ပါကုဒ်သည် ဤဒေတာအတွဲကို ပန်ဒါ DataFrame တွင် မည်သို့တင်ရမည်ကို ပြသသည်-
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)
အဆင့် 2- ဆုတ်ယုတ်မှုပုံစံကို အံကိုက်လုပ်ပါ။
ထို့နောက်၊ ကျွန်ုပ်တို့သည် တုံ့ပြန်မှုကိန်းရှင်နှင့် disp နှင့် hp ကို ခန့်မှန်းသူကိန်းရှင်နှစ်ခုအဖြစ် mpg ကို အသုံးပြု၍ ဆုတ်ယုတ်မှုပုံစံကို ဖြည့်သွင်းပါမည်။
#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 ()
အဆင့် 3: White ၏စမ်းသပ်မှုကိုလုပ်ဆောင်ပါ။
ထို့နောက်၊ ကျွန်ုပ်တို့သည် White’s test ကိုလုပ်ဆောင်ရန် het_white() function ကိုအသုံးပြု၍ regression model တွင် heteroscedasticity ရှိမရှိဆုံးဖြတ်ရန်၊
#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}
ဤသည်မှာ ရလဒ်ကို မည်သို့အဓိပ္ပာယ်ဖွင့်ဆိုနိုင်သည်-
- စမ်းသပ်မှုစာရင်းအင်းသည် X2 = 7.0766 ဖြစ်သည်။
- သက်ဆိုင်ရာ p-value သည် 0.215 ဖြစ်သည်။
White test သည် အောက်ပါ null နှင့် အစားထိုး hypotheses ကို အသုံးပြုသည် ။
- Null (H 0 ) : Homoskedasticity ရှိနေသည် (ကျန်အကြွင်းများသည်လည်း ပြန့်ကျဲနေသည်)၊
- အစားထိုး ( HA ) : Heteroskedasticity ရှိနေသည် (ကျန်အကြွင်းအကျန်များသည် ညီတူညီမျှ မပြန့်ကျဲပါ)
p-value သည် 0.05 ထက်မနည်းသောကြောင့်၊ null hypothesis ကို ငြင်းပယ်ရန် ပျက်ကွက်ပါသည်။
ဆိုလိုသည်မှာ ဆုတ်ယုတ်မှုပုံစံတွင် မျိုးရိုးလိုက်ခြင်းမျိုး ရှိနေကြောင်း အခိုင်အမာဆိုရန် ကျွန်ုပ်တို့တွင် လုံလောက်သော အထောက်အထား မရှိပါ။
ဘာဆက်လုပ်ရမလဲ
အကယ်၍ သင်သည် White’s test ၏ null hypothesis ကို ငြင်းဆိုရန် ပျက်ကွက်ပါက၊ heteroskedasticity သည် ရှိမနေဘဲ မူလဆုတ်ယုတ်မှု၏ ရလဒ်ကို အဓိပ္ပာယ်ဖွင့်ဆိုရန် ဆက်လက်လုပ်ဆောင်နိုင်ပါသည်။
သို့သော်၊ သင်သည် null hypothesis ကို ငြင်းပယ်ပါက၊ ၎င်းသည် heteroskedasticity ရှိနေသည်ဟု ဆိုလိုသည်။ ဤကိစ္စတွင်၊ regression output table တွင်ပြသထားသော standard errors များသည် စိတ်ချရမည်မဟုတ်ပါ။
ဤပြဿနာကိုဖြေရှင်းရန် ဘုံနည်းလမ်းနှစ်ခုရှိသည်။
1. တုံ့ပြန်မှုကိန်းရှင်ကို ပြောင်းလဲပါ။
ဥပမာအားဖြင့် တုံ့ပြန်မှုကိန်းရှင်တွင် အသွင်ပြောင်းခြင်းကို လုပ်ဆောင်နိုင်သည်၊ ဥပမာအားဖြင့် တုံ့ပြန်မှုကိန်းရှင် ၏ မှတ်တမ်း၊ စတုရန်းရတ် သို့မဟုတ် ကုဗတုံးအမြစ်ကို ယူဆောင်သွားနိုင်သည်။ ယင်းသည် မကြာခဏဆိုသလို မျိုးရိုးဗီဇ ပျောက်ကွယ်သွားစေသည်။
2. အလေးချိန် ဆုတ်ယုတ်မှုကို သုံးပါ။
Weighted regression သည် ၎င်း၏ တပ်ဆင်ထားသော တန်ဖိုး၏ ကွဲလွဲမှုအပေါ် အခြေခံ၍ ဒေတာအမှတ်တစ်ခုစီအတွက် အလေးချိန်ကို သတ်မှတ်ပေးသည်။ အခြေခံအားဖြင့်၊ ၎င်းသည် ၎င်းတို့ကျန်ရှိသော စတုရန်းများကို လျှော့ချပြီး ကွဲပြားမှုများ ပိုမိုမြင့်မားသည့် ဒေတာအမှတ်များကို နည်းပါးစေသည်။ သင့်လျော်သောအလေးချိန်ကိုအသုံးပြုသောအခါ၊ ၎င်းသည် မျိုးကွဲခြင်းပြဿနာကို ဖယ်ရှားပေးနိုင်သည်။
ထပ်လောင်းအရင်းအမြစ်များ
အောက်ပါသင်ခန်းစာများသည် Python ရှိ မျဉ်းကြောင်းပြန်ဆုတ်ခြင်းဆိုင်ရာ နောက်ထပ်အချက်အလက်များကို ပေးဆောင်သည်-
Python ရှိ Linear Regression အတွက် ပြီးပြည့်စုံသော လမ်းညွှန်
Python တွင် Residual Plot ဖန်တီးနည်း
Python တွင် VIF တွက်နည်း