Python ရှိ linear regression အတွက် ပြီးပြည့်စုံသော လမ်းညွှန်
Linear regression သည် တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော ကြိုတင်ခန့်မှန်းကိန်းရှင်များနှင့် တုံ့ပြန်မှုကိန်းရှင်အကြား ဆက်နွယ်မှုကို နားလည်ရန် ကျွန်ုပ်တို့အသုံးပြုနိုင်သည့် နည်းလမ်းတစ်ခုဖြစ်သည်။
ဤသင်ခန်းစာတွင် Python တွင် linear regression လုပ်နည်းကို ရှင်းပြထားသည်။
ဥပမာ- Python တွင် linear regression
စာကျက်ချိန်နာရီအရေအတွက်နှင့် စာမေးပွဲဖြေဆိုသည့် အကြိမ်အရေအတွက်သည် ပေးထားသည့် စာမေးပွဲတွင် ကျောင်းသားလက်ခံသည့် အတန်းအပေါ် သက်ရောက်မှုရှိမရှိ သိချင်သည်ဆိုပါစို့။
ဤဆက်နွယ်မှုကို လေ့လာရန်၊ မျဉ်းကြောင်းပြန်ဆုတ်မှုများစွာကို လုပ်ဆောင်ရန် Python တွင် အောက်ပါအဆင့်များကို လုပ်ဆောင်နိုင်ပါသည်။
အဆင့် 1: ဒေတာကိုထည့်ပါ။
ပထမဦးစွာ ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏ဒေတာအတွဲကို ထိန်းသိမ်းရန်အတွက် ပန်ဒါ DataFrame တစ်ခုကို ဖန်တီးပါမည်။
import pandas as pd #create data df = pd.DataFrame({'hours': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4, 3, 6, 5, 3, 4, 6, 2, 1, 2], 'exams': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4, 3, 2, 4, 4, 4, 5, 1, 0, 1], 'score': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90, 75, 96, 90, 82, 85, 99, 83, 62, 76]}) #view data df hours exam score 0 1 1 76 1 2 3 78 2 2 3 85 3 4 5 88 4 2 2 72 5 1 2 69 6 5 1 94 7 4 1 94 8 2 0 88 9 4 3 92 10 4 4 90 11 3 3 75 12 6 2 96 13 5 4 90 14 3 4 82 15 4 4 85 16 6 5 99 17 2 1 83 18 1 0 62 19 2 1 76
အဆင့် 2- linear regression လုပ်ဆောင်ပါ။
ထို့နောက်၊ ကျွန်ုပ်တို့သည် “ နာရီ” နှင့် “ စာမေးပွဲများ” ကို ကြိုတင်ခန့်မှန်းကိန်းရှင်များနှင့် “ ရမှတ်” အဖြစ် တုံ့ပြန်မှုကိန်းရှင်အဖြစ် “ နာရီ” နှင့် “ စာမေးပွဲများ” ကိုအသုံးပြု၍ သာမန်အနည်းဆုံးစတုရန်းဆုတ်ယုတ်မှုလုပ်ဆောင်ရန် statsmodels စာကြည့်တိုက်မှ OLS() လုပ်ဆောင်ချက်ကို အသုံးပြုပါမည်။
import statsmodels.api as sm #define response variable y = df['score'] #define predictor variables x = df[['hours', 'exams']] #add constant to predictor variables x = sm.add_constant(x) #fit linear regression model model = sm.OLS(y, x).fit() #view model summary print(model.summary()) OLS Regression Results ==================================================== ============================ Dept. Variable: R-squared score: 0.734 Model: OLS Adj. R-squared: 0.703 Method: Least Squares F-statistic: 23.46 Date: Fri, 24 Jul 2020 Prob (F-statistic): 1.29e-05 Time: 13:20:31 Log-Likelihood: -60.354 No. Observations: 20 AIC: 126.7 Df Residuals: 17 BIC: 129.7 Df Model: 2 Covariance Type: non-robust ==================================================== ============================ coef std err t P>|t| [0.025 0.975] -------------------------------------------------- ---------------------------- const 67.6735 2.816 24.033 0.000 61.733 73.614 hours 5.5557 0.899 6.179 0.000 3.659 7.453 exams -0.6017 0.914 -0.658 0.519 -2.531 1.327 ==================================================== ============================ Omnibus: 0.341 Durbin-Watson: 1.506 Prob(Omnibus): 0.843 Jarque-Bera (JB): 0.196 Skew: -0.216 Prob(JB): 0.907 Kurtosis: 2,782 Cond. No. 10.8 ==================================================== ============================
အဆင့် 3- ရလဒ်များကို ဘာသာပြန်ပါ။
ရလဒ်တွင် အသက်ဆိုင်ဆုံး ဂဏန်းများကို မည်သို့အဓိပ္ပာယ်ဖွင့်ဆိုရမည်ကို ဤတွင် ဖော်ပြပါရှိသည်။
R နှစ်ထပ်ကိန်း- 0.734 ။ ဒါကို coefficient of determination လို့ခေါ်တယ်။ ဤသည်မှာ ခန့်မှန်းသူကိန်းရှင်များဖြင့် ရှင်းပြနိုင်သော တုံ့ပြန်မှုကိန်းရှင်ရှိ ကွဲလွဲမှု၏ အချိုးအစားဖြစ်သည်။ ဤဥပမာတွင်၊ စာမေးပွဲရမှတ်များ ကွဲလွဲမှု၏ 73.4% ကို လေ့လာသည့် နာရီအရေအတွက်နှင့် ကြိုတင်ပြင်ဆင်ထားသော စာမေးပွဲအရေအတွက်ဖြင့် ရှင်းပြထားသည်။
F-စာရင်းအင်း- ၂၃.၄၆ ။ ဤသည်မှာ ဆုတ်ယုတ်မှုပုံစံ၏ အလုံးစုံ F ကိန်းဂဏန်းဖြစ်သည်။
Prob (F စာရင်းအင်း): 1.29e-05။ ၎င်းသည် အလုံးစုံ F ကိန်းဂဏန်းနှင့် ဆက်စပ်နေသည့် p-တန်ဖိုးဖြစ်သည်။ ၎င်းသည် ဆုတ်ယုတ်မှုပုံစံတစ်ခုလုံးအား ကိန်းဂဏန်းအချက်အလတ်အရ သိသာထင်ရှားမှုရှိ၊ မရှိ ကျွန်ုပ်တို့အား ပြောပြသည်။ တစ်နည်းဆိုရသော်၊ ခန့်မှန်းသူကိန်းရှင်နှစ်ခု ပေါင်းစပ်ထားသော တုံ့ပြန်မှုကိန်းရှင်နှင့် ကိန်းဂဏန်းအရ သိသာထင်ရှားသော ဆက်စပ်မှုရှိမရှိကို ၎င်းက ပြောပြသည်။ ဤကိစ္စတွင်၊ p-value သည် 0.05 ထက်နည်းပြီး၊ ခန့်မှန်းသူကိန်းရှင်များသည် “ စာသင်ချိန်” နှင့် “ ကြိုတင်စာမေးပွဲများ” ပေါင်းစပ်ထားသော စာမေးပွဲရမှတ်များနှင့် စာရင်းအင်းအရ သိသာထင်ရှားသော ဆက်စပ်မှုရှိသည်ကို ညွှန်ပြပါသည်။
coef- ခန့်မှန်းသူကိန်းရှင်တစ်ခုစီ၏ ကိန်းဂဏန်းများသည် ကျွန်ုပ်တို့အား တုံ့ပြန်မှုကိန်းရှင်၏ ပျမ်းမျှပြောင်းလဲမှုအား ပြောပြသည်၊၊ အခြားခန့်မှန်းသူကိန်းရှင်သည် စဉ်ဆက်မပြတ်ရှိနေသည်ဟု ယူဆပါသည်။ ဥပမာအားဖြင့်၊ လေ့လာဆည်းပူးခဲ့သော နောက်ထပ်နာရီတိုင်းအတွက်၊ ပျမ်းမျှစာမေးပွဲရမှတ်သည် 5.56 ဖြင့် တိုးလာမည်ဟု မျှော်လင့်ရပြီး၊ ဖြေဆိုခဲ့သော အလေ့အကျင့်စာမေးပွဲများသည် စဉ်ဆက်မပြတ်ရှိနေမည်ဟု ယူဆပါသည်။
အဲဒါကိုကြည့်ဖို့ နောက်ထပ်နည်းလမ်းတစ်ခုကတော့ ကျောင်းသား A နဲ့ ကျောင်းသား B နှစ်ခုလုံးက ကြိုတင်ပြင်ဆင်တဲ့ စာမေးပွဲအရေအတွက် တူညီပေမယ့် ကျောင်းသား A က တစ်နာရီကြာအောင် စာသင်ရင် ကျောင်းသား A က ကျောင်းသား B ထက် ရမှတ် 5.56 မှတ် ပိုမြင့်သင့်တယ်။
နာရီမလေ့လာဘဲ ကြိုတင်ပြင်ဆင်သည့်စာမေးပွဲမဖြေဆိုသော ကျောင်းသားအတွက် မျှော်မှန်းထားသော စာမေးပွဲရမှတ်သည် 67.67 ဖြစ်သည်ဟု ဆိုလိုရန် ကြားဖြတ်ဖော်ကိန်းကို ဘာသာပြန်ဆိုပါသည်။
P>|t|။ တစ်ဦးချင်း p-values သည် ခန့်မှန်းသူ variable တစ်ခုစီသည် ကိန်းဂဏန်းအရ သိသာထင်ရှားသည်ဖြစ်စေ မရှိ၊ “နာရီများ” သည် ကိန်းဂဏန်းအရ သိသာထင်ရှားသည် (p = 0.00) “စာမေးပွဲများ” နေစဉ်၊ (p = 0.52) သည် α = 0.05 တွင် စာရင်းအင်းအရ သိသာထင်ရှားသည် မဟုတ်ပါ။ “ စာမေးပွဲများ” ဟူသော အသုံးအနှုန်းသည် ကိန်းဂဏန်းအရ သိသာထင်ရှားခြင်းမရှိသောကြောင့်၊ ကျွန်ုပ်တို့သည် ၎င်းကို မော်ဒယ်မှ ဖယ်ရှားရန် ဆုံးဖြတ်လိုက်ခြင်းဖြစ်နိုင်သည်။
ခန့်မှန်းခြေဆုတ်ယုတ်မှုညီမျှခြင်း- အောက်ဖော်ပြပါ ခန့်မှန်းခြေဆုတ်ယုတ်မှုညီမျှခြင်းကို ဖန်တီးရန် မော်ဒယ်အထွက်မှ ကိန်းများကို ကျွန်ုပ်တို့အသုံးပြုနိုင်သည်-
စာမေးပွဲရမှတ် = 67.67 + 5.56*(နာရီ) – 0.60*(အကြိုစာမေးပွဲများ)
ကျောင်းသားတစ်ဦးအတွက် မျှော်မှန်းထားသော စာမေးပွဲရမှတ်ကို တွက်ချက်ရန် ဤခန့်မှန်းခြေဆုတ်ခြင်းညီမျှခြင်းကို အသုံးပြု၍ စာသင်ချိန်နာရီအရေအတွက်နှင့် ၎င်းတို့ဖြေဆိုသော အလေ့အကျင့် စာမေးပွဲအရေအတွက်အပေါ် အခြေခံ၍ ကျွန်ုပ်တို့ အသုံးပြုနိုင်ပါသည်။ ဥပမာအားဖြင့်၊ သုံးနာရီကြာလေ့လာပြီး ကြိုတင်စာမေးပွဲဖြေဆိုသော ကျောင်းသားတစ်ဦးသည် 83.75 အဆင့်ကို ရသင့်သည်-
ယခင်အကြိုပြင်ဆင်မှုစာမေးပွဲများသည် စာရင်းအင်းအရ သိသာထင်ရှားခြင်းမရှိသောကြောင့် (p = 0.52)၊ ၎င်းတို့သည် အလုံးစုံမော်ဒယ်အတွက် တိုးတက်မှုတစ်စုံတစ်ရာမရှိပါက ၎င်းတို့အား ဖယ်ရှားရန် ဆုံးဖြတ်နိုင်သည်ကို သတိရပါ။ ဤအခြေအနေတွင်၊ ခန့်မှန်းကိန်းရှင်ကိန်းရှင်အဖြစ် လေ့လာထားသော နာရီများကိုသာ အသုံးပြု၍ ရိုးရှင်းသောမျဉ်းကြောင်းဆုတ်ယုတ်မှုကို လုပ်ဆောင်နိုင်သည်။
အဆင့် 4- မော်ဒယ်ယူဆချက်များကို အတည်ပြုပါ။
linear regression ကို လုပ်ဆောင်ပြီးသည်နှင့်၊ regression model ၏ ရလဒ်များသည် ယုံကြည်စိတ်ချရကြောင်း သေချာစေရန်အတွက် ယူဆချက်များစွာကို စစ်ဆေးလိုပေမည်။ ဤယူဆချက်များပါဝင်သည်-
ယူဆချက် #1- ကြိုတင်ခန့်မှန်းကိန်းရှင်များနှင့် တုံ့ပြန်မှုကိန်းရှင်များကြားတွင် မျဉ်းသားသော ဆက်နွယ်မှုရှိသည်။
- ဆုတ်ယုတ်မှုပုံစံအတွက် အကြွင်းအကျန်များနှင့် အံဝင်ခွင်ကျတန်ဖိုးများကိုပြသသည့် အကြွင်းအကျန်ကွက်ကွက် တစ်ခုကို ဖန်တီးခြင်းဖြင့် ဤယူဆချက်ကို အတည်ပြုပါ။
Hypothesis #2- အကြွင်းအကျန်များ၏ လွတ်လပ်မှု။
- Durbin-Watson စမ်းသပ်မှု ပြုလုပ်ခြင်းဖြင့် ဤယူဆချက်ကို အတည်ပြုပါ။
Hypothesis # 3- အကြွင်းအကျန်များ၏ Homoscedasticity။
- Breusch-Pagan စမ်းသပ်မှု ပြုလုပ်ခြင်းဖြင့် ဤယူဆချက်ကို အတည်ပြုပါ။
ယူဆချက် နံပါတ် 4- အကြွင်းအကျန်များ၏ ပုံမှန်အခြေအနေ။
- QQ ကွက်ကွက်ကို အသုံးပြု၍ ဤယူဆချက်ကို အမြင်အာရုံဖြင့် စစ်ဆေးပါ။
- Jarque-Bera စမ်းသပ်မှု သို့မဟုတ် Anderson-Darling စမ်းသပ်မှု ကဲ့သို့ တရားဝင်စမ်းသပ်မှုများဖြင့် ဤယူဆချက်ကို အတည်ပြုပါ။
ယူဆချက် #5- ကြိုတင်ခန့်မှန်းကိန်းရှင်များကြားတွင် ပေါင်းစပ်မျဥ်းစည်းများ မရှိကြောင်း စစ်ဆေးပါ။
- ခန့်မှန်းသူကိန်းရှင်တစ်ခုစီ၏ VIF တန်ဖိုးကို တွက်ချက်ခြင်းဖြင့် ဤယူဆချက်ကို အတည်ပြုပါ။
ဤယူဆချက်များနှင့် ကိုက်ညီပါက၊ သင်၏ မျဉ်းဖြောင့်ဆုတ်ယုတ်မှုပုံစံ၏ ရလဒ်များသည် ယုံကြည်စိတ်ချရကြောင်း သင်ယုံကြည်နိုင်ပါသည်။
ဤသင်ခန်းစာတွင်အသုံးပြုထားသော Python ကုဒ်အပြည့်အစုံကို ဤနေရာတွင် ရှာတွေ့နိုင်ပါသည်။