Python တွင် bic တွက်ချက်နည်း
Bayesian Information Criterion ၊ မကြာခဏ အတိုကောက် BIC သည် မတူညီသော ဆုတ်ယုတ်မှုပုံစံများ၏ အံဝင်ခွင်ကျရှိမှုကို နှိုင်းယှဉ်ရန် အသုံးပြုသည့် အတိုင်းအတာတစ်ခုဖြစ်သည်။
လက်တွေ့တွင်၊ ကျွန်ုပ်တို့သည် တူညီသောဒေတာအတွဲတွင် ဆုတ်ယုတ်မှုပုံစံများစွာကို ဖြည့်သွင်းပြီး ဒေတာနှင့်အကိုက်ညီဆုံးမော်ဒယ်အဖြစ် အနိမ့်ဆုံး BIC တန်ဖိုးရှိသော မော်ဒယ်ကို ရွေးချယ်ပါ။
ကျွန်ုပ်တို့သည် BIC ကိုတွက်ချက်ရန် အောက်ပါဖော်မြူလာကို အသုံးပြုပါသည်။
BIC- (RSS+log(n)dσ̂ 2 ) / n
ရွှေ-
- d- ခန့်မှန်းသူအရေအတွက်
- n- စုစုပေါင်းလေ့လာတွေ့ရှိချက်
- σ̂- ဆုတ်ယုတ်မှုပုံစံတစ်ခုရှိ တုံ့ပြန်မှုတိုင်းတာမှုတစ်ခုစီနှင့် ဆက်စပ်နေသော အမှားအယွင်းကွဲလွဲမှု ခန့်မှန်းချက်
- RSS- ဆုတ်ယုတ်မှုပုံစံမှ အကြွင်းနှစ်ထပ်ကိန်းများ
- TSS- ဆုတ်ယုတ်မှုပုံစံ၏ နှစ်ထပ်ကိန်းစုစုပေါင်း
Python ရှိ များစွာသော ဆုတ်ယုတ်မှုပုံစံများ၏ BIC ကို တွက်ချက်ရန်၊ ပေးထားသော မော်ဒယ်တစ်ခုအတွက် BIC တန်ဖိုးကို ပြောပြသည့် statsmodels.regression.linear_model.OLS() လုပ်ဆောင်ချက်ကို အသုံးပြုနိုင်ပါသည်။
အောက်ပါဥပမာသည် Python ရှိ အမျိုးမျိုးသော ဆုတ်ယုတ်မှုပုံစံများအတွက် BIC ကို တွက်ချက်ပြီး အဓိပ္ပာယ်ပြန်ဆိုရန် ဤလုပ်ဆောင်ချက်ကို အသုံးပြုနည်းကို ပြသထားသည်။
ဥပမာ- Python ရှိ ဆုတ်ယုတ်မှုပုံစံများ၏ BIC ကို တွက်ချက်ပါ။
mtcars dataset မှ variable များကို အသုံးပြု၍ မတူညီသော multiple linear regression model နှစ်ခုကို ကိုက်ညီလိုသည်ဆိုပါစို့။
ဦးစွာ၊ ဤဒေတာအတွဲကို ကျွန်ုပ်တို့ တင်ပါမည်-
from sklearn. linear_model import LinearRegression 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 head of data data. head () model mpg cyl disp hp drat wt qsec vs am gear carb 0 Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 1 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 2 Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 3 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1 4 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
ထို့နောက်၊ ကျွန်ုပ်တို့သည် အောက်ဖော်ပြပါ ဆုတ်ယုတ်မှုပုံစံနှစ်ခုနှင့် ကိုက်ညီပါမည်-
- မော်ဒယ် 1 : mpg = β 0 + β 1 (disp) + β 2 (qsec)
- မော်ဒယ် 2 : mpg = β 0 + β 1 (ရရှိနိုင်သည်) + β 2 (wt)
အောက်ဖော်ပြပါ ကုဒ်သည် ပထမပုံစံနှင့် အံဝင်ခွင်ကျဖြစ်မည့် BIC ကို တွက်ချက်နည်းကို ပြသည်-
#define response variable
y = data['mpg']
#define predictor variables
x = data[['disp', 'qsec']]
#add constant to predictor variables
x = sm. add_constant (x)
#fit regression model
model = sm. OLS (y,x). fit ()
#view BIC of model
print (model. bic )
174.23905634994506
ဤမော်ဒယ်၏ BIC သည် 174.239 ဖြစ်လာသည်။
ထို့နောက်၊ ကျွန်ုပ်တို့သည် ဒုတိယပုံစံနှင့် ကိုက်ညီပြီး BIC ကို တွက်ချက်ပါမည်-
#define response variable
y = data['mpg']
#define predictor variables
x = data[['disp', 'wt']]
#add constant to predictor variables
x = sm. add_constant (x)
#fit regression model
model = sm. OLS (y,x). fit ()
#view BIC of model
print (model. bic )
166.56499196301334
ဤမော်ဒယ်၏ BIC သည် 166.565 ဖြစ်လာသည်။
ဒုတိယမော်ဒယ်သည် BIC တန်ဖိုးနိမ့်သောကြောင့်၊ ၎င်းသည် အသင့်လျော်ဆုံးမော်ဒယ်ဖြစ်သည်။
ကျွန်ုပ်တို့သည် ဤမော်ဒယ်ကို အကောင်းဆုံးအဖြစ် သတ်မှတ်ပြီးသည်နှင့်၊ ကျွန်ုပ်တို့သည် ကြိုတင်ခန့်မှန်းကိန်းရှင်အစုများနှင့် တုံ့ပြန်မှုကိန်းရှင် ၏ တိကျသောဆက်နွယ်မှုကို ဆုံးဖြတ်ရန် R-squared တန်ဖိုးနှင့် beta coefficients အပါအဝင် ရလဒ်များကို ခွဲခြမ်းစိတ်ဖြာနိုင်သည်။
ထပ်လောင်းအရင်းအမြစ်များ
ဆုတ်ယုတ်မှုပုံစံများ၏ အံဝင်ခွင်ကျ နှိုင်းယှဉ်ရန် အခြားအသုံးများသည့် မက်ထရစ်နှစ်ခုမှာ AIC နှင့် ချိန်ညှိထားသော R-squared ဖြစ်သည်။
အောက်ပါသင်ခန်းစာများသည် Python ရှိ ဆုတ်ယုတ်မှုပုံစံများအတွက် ဤမက်ထရစ်တစ်ခုစီကို တွက်ချက်နည်းကို ရှင်းပြသည်-
Python ရှိ regression မော်ဒယ်များ၏ AIC တွက်ချက်နည်း
Python တွင် ချိန်ညှိထားသော R-squared တွက်ချက်နည်း