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- အကြွင်းအကျန်များ၏ လွတ်လပ်မှု။

Hypothesis # 3- အကြွင်းအကျန်များ၏ Homoscedasticity။

ယူဆချက် နံပါတ် 4- အကြွင်းအကျန်များ၏ ပုံမှန်အခြေအနေ။

ယူဆချက် #5- ကြိုတင်ခန့်မှန်းကိန်းရှင်များကြားတွင် ပေါင်းစပ်မျဥ်းစည်းများ မရှိကြောင်း စစ်ဆေးပါ။

  • ခန့်မှန်းသူကိန်းရှင်တစ်ခုစီ၏ VIF တန်ဖိုးကို တွက်ချက်ခြင်းဖြင့် ဤယူဆချက်ကို အတည်ပြုပါ။

ဤယူဆချက်များနှင့် ကိုက်ညီပါက၊ သင်၏ မျဉ်းဖြောင့်ဆုတ်ယုတ်မှုပုံစံ၏ ရလဒ်များသည် ယုံကြည်စိတ်ချရကြောင်း သင်ယုံကြည်နိုင်ပါသည်။

ဤသင်ခန်းစာတွင်အသုံးပြုထားသော Python ကုဒ်အပြည့်အစုံကို ဤနေရာတွင် ရှာတွေ့နိုင်ပါသည်။

မှတ်ချက်တစ်ခုထည့်ပါ။

သင့် email လိပ်စာကို ဖော်ပြမည် မဟုတ်ပါ။ လိုအပ်သော ကွက်လပ်များကို * ဖြင့်မှတ်သားထားသည်