Statistical models များကို အသုံးပြု၍ logistic regression ကို မည်သို့လုပ်ဆောင်မည်နည်း။
Python ၏ statsmodels module သည် သင့်အား အမျိုးမျိုးသော ကိန်းဂဏန်းဆိုင်ရာ မော်ဒယ်များကို လိုက်လျောညီထွေဖြစ်အောင် လုပ်ဆောင်နိုင်သည့် လုပ်ဆောင်ချက်များနှင့် အတန်းများကို ပံ့ပိုးပေးပါသည်။
အောက်ဖော်ပြပါ အဆင့်ဆင့် ဥပမာသည် statsmodels လုပ်ဆောင်ချက်များကို အသုံးပြု၍ ထောက်ပံ့ပို့ဆောင်ရေးဆုတ်ယုတ်မှုကို မည်သို့လုပ်ဆောင်ရမည်ကို ပြသထားသည်။
အဆင့် 1: ဒေတာကိုဖန်တီးပါ။
ပထမဦးစွာ၊ variable သုံးခုပါရှိသော pandas DataFrame ကိုဖန်တီးကြပါစို့။
- လေ့လာထားသော နာရီများ (တန်ဖိုးတစ်ခုလုံး)
- လေ့လာမှုနည်းလမ်း (နည်းလမ်း A သို့မဟုတ် B)
- စာမေးပွဲရလဒ် (အောင်သည်ဖြစ်စေ ကျရှုံးသည်)
ကျောင်းသားတစ်ဦးသည် ပေးထားသော စာမေးပွဲကို အောင်နိုင်ခြင်း ရှိ၊မရှိ ခန့်မှန်းရန် နာရီနှင့် လေ့လာမှုနည်းလမ်းကို အသုံးပြု၍ ထောက်ပံ့ပို့ဆောင်ရေး ဆုတ်ယုတ်မှုပုံစံကို ကျွန်ုပ်တို့ ဖြည့်ဆည်းပေးပါမည်။
အောက်ပါကုဒ်သည် pandas DataFrame ဖန်တီးနည်းကို ပြသသည် ။
import pandas as pd #createDataFrame df = pd. DataFrame ({' result ': [0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1], ' hours ': [1, 2, 2, 2, 3, 2, 5, 4, 3, 6, 5, 8, 8, 7, 6, 7, 5, 4, 8, 9], ' method ': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'B', 'A', 'B', 'A', 'B', 'B', 'A', 'A', 'B', 'A', 'B', 'A']}) #view first five rows of DataFrame df. head () result hours method 0 0 1 A 1 1 2 A 2 0 2 A 3 0 2 B 4 0 3 B
အဆင့် 2- ထောက်ပံ့ပို့ဆောင်ရေး ဆုတ်ယုတ်မှုပုံစံကို အံကိုက်လုပ်ပါ။
ထို့နောက်၊ ကျွန်ုပ်တို့သည် logit() လုပ်ဆောင်ချက်ကို အသုံးပြု၍ ထောက်ပံ့ပို့ဆောင်ရေးဆိုင်ရာ ဆုတ်ယုတ်မှုပုံစံနှင့် ကိုက်ညီပါမည်-
import statsmodels. formula . api as smf
#fit logistic regression model
model = smf. logit (' result~hours+method ', data=df). fit ()
#view model summary
print ( model.summary ())
Optimization completed successfully.
Current function value: 0.557786
Iterations 5
Logit Regression Results
==================================================== ============================
Dept. Variable: result No. Observations: 20
Model: Logit Df Residuals: 17
Method: MLE Df Model: 2
Date: Mon, 22 Aug 2022 Pseudo R-squ.: 0.1894
Time: 09:53:35 Log-Likelihood: -11.156
converged: True LL-Null: -13.763
Covariance Type: nonrobust LLR p-value: 0.07375
==================================================== ============================
coef std err z P>|z| [0.025 0.975]
-------------------------------------------------- -----------------------------
Intercept -2.1569 1.416 -1.523 0.128 -4.932 0.618
method[TB] 0.0875 1.051 0.083 0.934 -1.973 2.148
hours 0.4909 0.245 2.002 0.045 0.010 0.972
==================================================== ============================
output ၏ coef ကော်လံရှိ တန်ဖိုးများသည် စာမေးပွဲအောင်သည့် မှတ်တမ်း၏ ပျမ်းမျှပြောင်းလဲမှုကို ပြောပြသည်။
ဥပမာအားဖြင့်:
- လေ့လာမှုနည်းလမ်း B ကိုအသုံးပြုခြင်းသည် လေ့လာမှုနည်းလမ်း A ကိုအသုံးပြုခြင်းနှင့် နှိုင်းယှဉ်ပါက စာမေးပွဲဖြေဆိုမှုမှတ်တမ်းတွင် ပျမ်းမျှ 0.0875 တိုးခြင်းနှင့် ဆက်စပ်နေသည်။
- အပိုဆောင်းလေ့လာထားသောနာရီတိုင်းသည် စာမေးပွဲဖြေဆိုမှုမှတ်တမ်းတွင် ပျမ်းမျှ 0.4909 တိုးခြင်းနှင့် ဆက်စပ်နေသည်။
P>|z| ရှိ တန်ဖိုးများ ကော်လံသည် coefficient တစ်ခုစီအတွက် p-တန်ဖိုးများကို ကိုယ်စားပြုသည်။
ဥပမာအားဖြင့်:
- လေ့လာမှုနည်းလမ်းတွင် p-value သည် 0.934 ရှိသည်။ ဤတန်ဖိုးသည် 0.05 ထက်မနည်းသောကြောင့်၊ ကျောင်းသားသည် စာမေးပွဲအောင်သည်ဖြစ်စေ ကျောင်းသားသည် စာမေးပွဲအောင်သည်ဖြစ်စေ မလေ့လာသည့်နာရီများကြားတွင် ကိန်းဂဏန်းဆိုင်ရာ သိသာထင်ရှားသော ဆက်နွယ်မှု မရှိဟု ဆိုလိုသည်။
- လေ့လာသောနာရီများသည် p-value 0.045 ရှိသည်။ ဤတန်ဖိုးသည် 0.05 ထက်နည်းသောကြောင့်၊ ကျောင်းသားသည် စာမေးပွဲအောင်သည်ဖြစ်စေ ကျောင်းသားသည် စာမေးပွဲအောင်သည်ဖြစ်စေ မလေ့လာသည့်နာရီကြားတွင် ကိန်းဂဏန်းဆိုင်ရာ သိသာထင်ရှားသော ဆက်နွယ်မှုရှိကြောင်း ဆိုလိုသည်။
အဆင့် 3- မော်ဒယ်စွမ်းဆောင်ရည်ကို အကဲဖြတ်ပါ။
logistic regression model ၏ အရည်အသွေးကို အကဲဖြတ်ရန်၊ output တွင် metrics နှစ်ခုကို ကြည့်နိုင်သည်-
1. နာမည်ပြောင် R-squared
ဤတန်ဖိုးသည် မျဉ်းကြောင်းဆုတ်ယုတ်မှုပုံစံအတွက် R-squared တန်ဖိုးကို အစားထိုးသည်ဟု ယူဆနိုင်သည်။
၎င်းကို null model မှ full model သို့ maximized log-likelihood function ၏အချိုးအဖြစ် တွက်ချက်သည်။
ပိုမိုကောင်းမွန်သော မော်ဒယ်ကိုက်ညီမှုကို ညွှန်ပြသော မြင့်မားသောတန်ဖိုးများဖြင့် ဤတန်ဖိုးသည် 0 မှ 1 အထိ ကွာဟနိုင်သည်။
ဤဥပမာတွင်၊ pseudo R-squared တန်ဖိုးသည် 0.1894 ဖြစ်ပြီး၊ အလွန်နိမ့်ပါသည်။ ၎င်းသည် မော်ဒယ်၏ ကြိုတင်ခန့်မှန်းကိန်းရှင်များသည် တုံ့ပြန်မှုကိန်းရှင်၏တန်ဖိုးကို ခန့်မှန်းခြင်းအတွက် အလွန်ကောင်းမွန်သောအလုပ်မဟုတ်ကြောင်း ကျွန်ုပ်တို့ကိုပြောပြသည်။
2. LLR p-တန်ဖိုး
ဤတန်ဖိုးသည် မျဉ်းကြောင်းဆုတ်ယုတ်မှုပုံစံ၏ အလုံးစုံ F-တန်ဖိုး အတွက် p-တန်ဖိုးကို အစားထိုးသည်ဟု ယူဆနိုင်သည်။
အကယ်၍ ဤတန်ဖိုးသည် သတ်မှတ်ထားသော အတိုင်းအတာတစ်ခုအောက်၌ ရှိနေပါက (ဥပမာ α = 0.05)၊ ထို့နောက် မော်ဒယ်တစ်ခုလုံးသည် “ အသုံးဝင်သည်” ဟု ကောက်ချက်ချနိုင်ပြီး ကြိုတင်ခန့်မှန်းကိန်းရှင်များမပါဘဲ မော်ဒယ်နှင့် နှိုင်းယှဉ်ပါက တုံ့ပြန်မှုကိန်းရှင်၏ တန်ဖိုးများကို ပိုမိုကောင်းမွန်စွာ ခန့်မှန်းနိုင်မည်ဖြစ်သည်။
ဤဥပမာတွင်၊ LLR ၏ p-value သည် 0.07375 ဖြစ်သည်။ ကျွန်ုပ်တို့ရွေးချယ်သော အရေးပါမှုအဆင့်ပေါ် မူတည်၍ (ဥပမာ 0.01၊ 0.05၊ 0.1)၊ မော်ဒယ်တစ်ခုလုံးသည် အသုံးဝင်သည်ဟု ကျွန်ုပ်တို့ ကောက်ချက်ချနိုင်သည် သို့မဟုတ် မပြုလုပ်နိုင်ပါ။
ထပ်လောင်းအရင်းအမြစ်များ
အောက်ဖော်ပြပါ သင်ခန်းစာများသည် Python တွင် အခြားသော အသုံးများသော အလုပ်များကို မည်သို့လုပ်ဆောင်ရမည်ကို ရှင်းပြသည်-
Python တွင် linear regression လုပ်နည်း
Python တွင် logarithmic regression ကို မည်သို့လုပ်ဆောင်ရမည်နည်း
Python တွင် quantile regression လုပ်နည်း