Python တွင် durbin-watson စမ်းသပ်မှုပြုလုပ်နည်း
linear regression ၏ ယူဆချက် တစ်ခုမှာ အကြွင်းအကျန်များကြား ဆက်စပ်မှု မရှိခြင်းပင်ဖြစ်သည်။ တစ်နည်းဆိုရသော် အကြွင်းအကျန်များကို လွတ်လပ်သည်ဟု ယူဆသည်။
ဤယူဆချက်နှင့် ကိုက်ညီခြင်း ရှိ၊ မရှိ ဆုံးဖြတ်ရန် နည်းလမ်းတစ်ခုမှာ ဆုတ်ယုတ်မှု ၏ အကြွင်းအကျန်များတွင် အလိုအလျောက်ဆက်စပ်ဆက်နွှယ်မှုရှိကြောင်း သိရှိရန် အသုံးပြုသည့် Durbin-Watson စမ်းသပ်မှုကို လုပ်ဆောင်ရန်ဖြစ်သည်။ ဤစမ်းသပ်မှုသည် အောက်ပါယူဆချက်များကို အသုံးပြုသည်-
H 0 (null hypothesis): အကြွင်းအကျန်များကြား ဆက်စပ်မှုမရှိပါ။
H A (အခြားသောယူဆချက်)- ကျန်ရှိသောအရာများသည် အလိုအလျောက်ဆက်စပ်နေသည်။
စမ်းသပ်စာရင်းအင်းသည် 2*(1-r) နှင့် ညီမျှပြီး r သည် အကြွင်းအကျန်များ၏ နမူနာ အလိုအလျောက်ဆက်စပ်မှုဖြစ်သည်။ ထို့ကြောင့်၊ စမ်းသပ်မှုစာရင်းအင်းသည် အောက်ပါအနက်ဖွင့်ဆိုချက်ဖြင့် အမြဲတမ်း 0 နှင့် 4 အကြားရှိလိမ့်မည်-
- 2 ၏ စမ်းသပ်မှု ကိန်းဂဏန်းသည် အမှတ်စဉ်ဆက်နွှယ်မှုမရှိကြောင်း ညွှန်ပြသည်။
- စစ်ဆေးမှုကိန်းဂဏန်းများသည် 0 သို့ ပိုမိုနီးကပ်လေလေ၊ အပြုသဘောဆောင်သော အမှတ်စဉ်ဆက်နွှယ်မှုဆိုင်ရာ အထောက်အထားများ ပိုများလေဖြစ်သည်။
- စာမေးပွဲကိန်းဂဏန်း 4 နှင့် ပိုနီးစပ်လေ၊ အနုတ်အမှတ်စဉ်ဆက်နွှယ်မှုဆိုင်ရာ အထောက်အထားများ ပိုများလေဖြစ်သည်။
ပုံမှန်အားဖြင့် 1.5 နှင့် 2.5 အကြား စစ်ဆေးမှု ကိန်းဂဏန်းတန်ဖိုးများကို ပုံမှန်ဟု ယူဆပါသည်။ သို့သော်၊ ဤအကွာအဝေး၏အပြင်ဘက်ရှိ တန်ဖိုးများသည် autocorrelation သည် ပြဿနာတစ်ခုဖြစ်ကြောင်း ညွှန်ပြနိုင်သည်။
Python တွင် Durbin-Watson စမ်းသပ်နည်းကို ဤသင်ခန်းစာတွင် ရှင်းပြထားသည်။
ဥပမာ- Python တွင် Durbin-Watson စမ်းသပ်မှု
ကျွန်ုပ်တို့တွင် ဘတ်စကက်ဘောကစားသမား 10 ဦး၏ အရည်အချင်းများကို ဖော်ပြသည့် အောက်ပါဒေတာအတွဲရှိသည်ဆိုပါစို့။
import numpy as np import pandas as pd #create dataset df = pd.DataFrame({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86], 'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19], 'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5], 'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]}) #view dataset df rating points assists rebounds 0 90 25 5 11 1 85 20 7 8 2 82 14 7 10 3 88 16 8 6 4 94 27 5 6 5 90 20 7 9 6 76 12 6 6 7 75 15 9 10 8 87 14 9 10 9 86 19 5 7
ကျွန်ုပ်တို့သည် တုံ့ပြန်မှုကိန်းရှင်အဖြစ် အဆင့်သတ်မှတ်ချက်ကို အသုံးပြုကာ အမျိုးမျိုးသောမျဉ်းကြောင်းဆုတ်ယုတ်မှုပုံစံတစ်ခုကို တုံ့ပြန်မှုကိန်းရှင်နှင့် အခြားကိန်းရှင်သုံးမျိုးအား ကြိုတင်ခန့်မှန်းကိန်းရှင်များအဖြစ် ကိုက်ညီသည်ဆိုပါစို့-
from statsmodels.formula.api import ols #fit multiple linear regression model model = ols('rating ~ points + assists + rebounds', data=df). fit () #view model summary print(model.summary())
ဆုတ်ယုတ်မှုမော်ဒယ်အကြွင်းအကျန်များသည် အလိုအလျောက်ဆက်စပ်မှုရှိမရှိကို ဆုံးဖြတ်ရန် statsmodels စာကြည့်တိုက်မှ durbin_watson() လုပ်ဆောင်ချက်ကို အသုံးပြု၍ Watson Durbin ကို လုပ်ဆောင်နိုင်သည်-
from statsmodels.stats.stattools import durbin_watson #perform Durbin-Watson test durbin_watson(model.resid) 2,392
စမ်းသပ်မှုစာရင်းအင်းသည် 2.392 ဖြစ်သည်။ ဤတန်ဖိုးသည် 1.5 နှင့် 2.5 ကြားဖြစ်သောကြောင့်၊ autocorrelation သည် ဤဆုတ်ယုတ်မှုပုံစံတွင် ပြဿနာမဟုတ်ဟု ကျွန်ုပ်တို့ယူဆပါသည်။
autocorrelation ကို ဘယ်လိုဖြေရှင်းမလဲ။
အကယ်၍ သင်သည် null hypothesis ကို ငြင်းပယ်ပြီး ကျန်ရှိသော autocorrelation တွင် autocorrelation ရှိနေကြောင်း ကောက်ချက်ချပါက၊ ၎င်းကို လုံလောက်သည်ဟု သင်ယူဆပါက ဤပြဿနာကို ပြင်ရန် ရွေးချယ်စရာများစွာရှိသည်။
1. အပြုသဘောဆောင်သော အမှတ်စဉ်ဆက်နွယ်မှုအတွက်၊ မော်ဒယ်သို့ မှီခိုမှုနှင့်/သို့မဟုတ် အမှီအခိုကင်းသော ကိန်းရှင်၏ နောက်ကျကျန်နေမှုများကို ထည့်သွင်းစဉ်းစားပါ။
2. အနုတ်လက္ခဏာ အမှတ်စဉ်ဆက်နွယ်မှုအတွက်၊ သင့် variable များထဲမှ တစ်ခုမျှ နှောင့်နှေးနေမည်မဟုတ်ကြောင်း သေချာပါစေ။
3. ရာသီအလိုက်ဆက်စပ်မှုအတွက်၊ မော်ဒယ်သို့ ရာသီအလိုက်အရုပ်များကို ထည့်စဉ်းစားပါ။