R တွင် အဆင့်ဆင့် ဆုတ်ယုတ်မှုဆိုင်ရာ လမ်းညွှန်ချက်အပြည့်အစုံ
Stepwise regression သည် ကြိုတင်ခန့်မှန်းသူ variable အစုတစ်ခုမှ ဆုတ်ယုတ်မှုပုံစံ တစ်ခုကို တည်ဆောက်ရန် အသုံးပြုနိုင်သည့် လုပ်ငန်းစဉ်တစ်ခုဖြစ်ပြီး မော်ဒယ်အတွင်း ကြိုတင်ခန့်မှန်းသူများကို အဆင့်ဆင့်ထည့်သွင်းကာ ဖယ်ရှားခြင်းဖြင့် ၎င်းသို့ဝင်ရောက်ရန် ကိန်းဂဏန်းဆိုင်ရာ ခိုင်လုံသောအကြောင်းပြချက်မရှိတော့ပါ သို့မဟုတ်၊ နောက်ထပ်ဖျက်ပါ။
stepwise regression ၏ ပန်းတိုင်သည် တုံ့ပြန်မှုကိန်းရှင် နှင့် ကိန်းဂဏန်းအရ သိသာထင်ရှားစွာ ဆက်စပ်နေသည့် ကြိုတင်ခန့်မှန်းကိန်းရှင်များ အားလုံးပါဝင်သည့် ဆုတ်ယုတ်မှုပုံစံကို ဖန်တီးရန်ဖြစ်သည်။
ဤသင်ခန်းစာတွင် R တွင် အောက်ပါ အဆင့်ဆင့် ဆုတ်ယုတ်မှု လုပ်ငန်းစဉ်များကို မည်သို့လုပ်ဆောင်ရမည်ကို ရှင်းပြထားသည်။
- တစ်ဆင့်ပြီးတစ်ဆင့် ရှေ့သို့ရွေးချယ်ပါ။
- တစ်ဆင့်ပြီးတစ်ဆင့် နောက်ပြန်ရွေးချယ်ခြင်း။
- လမ်းကြောင်းနှစ်ခုစလုံးတွင် အဆင့်ဆင့်ရွေးချယ်ပါ။
ဥပမာတစ်ခုစီအတွက်၊ ကျွန်ုပ်တို့သည် built-in mtcars ဒေတာအတွဲကို အသုံးပြုပါမည်-
#view first six rows of mtcars
head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3,460 20.22 1 0 3 1
တုံ့ပြန်မှုကိန်းရှင်နှင့် ဖြစ်နိုင်ချေရှိသော ခန့်မှန်းကိန်းရှင်များအဖြစ် ဒေတာသတ်မှတ်ထားသည့် အခြားကိန်းရှင် 10 ခုကို တုံ့ပြန်မှုကိန်းရှင်အဖြစ် mpg (တစ်ဂါလံလျှင် မိုင်) ကို အသုံးပြု၍ မျိုးစုံမျဉ်းကြောင်းဆုတ်ယုတ်မှုပုံစံကို ကျွန်ုပ်တို့ ဖြည့်ဆည်းပေးပါမည်။
ဥပမာတစ်ခုစီအတွက်၊ အောက်ပါ syntax ကိုအသုံးပြုသည့် stepwise ရွေးချယ်မှုလုပ်ဆောင်ရန် ကျွန်ုပ်တို့သည် stats package ၏ built-in step() လုပ်ဆောင်ချက်ကို အသုံးပြုပါမည်။
အဆင့် (ကြားဖြတ်ပုံစံ၊ ဦးတည်ချက်၊ အပိုင်းအခြား)
ရွှေ-
- original model only : မူရင်းမော်ဒယ်၏ ဖော်မြူလာသာ
- ဦးတည်ချက်- ခြေလှမ်းရှာဖွေမှုမုဒ်သည် “နှစ်ခုလုံး”၊ “နောက်ပြန်” သို့မဟုတ် “ရှေ့သို့” ဖြစ်နိုင်ပါသည်။
- နယ်ပယ်- ကျွန်ုပ်တို့ မော်ဒယ်သို့ ထည့်သွင်းရန် ကြိုးစားလိုသော ကြိုတင်ခန့်မှန်းသူများကို သတ်မှတ်သည့် ဖော်မြူလာတစ်ခု
ဥပမာ 1- တစ်ဆင့်ပြီးတစ်ဆင့် ရှေ့သို့ ရွေးချယ်မှု
အောက်ပါကုဒ်သည် ရွေးချယ်မှုတစ်ခုကို အဆင့်ဆင့်လုပ်ဆောင်ပုံကို ပြသသည်-
#define intercept-only model intercept_only <- lm(mpg ~ 1, data=mtcars) #define model with all predictors all <- lm(mpg ~ ., data=mtcars) #perform forward stepwise regression forward <- step(intercept_only, direction=' forward ', scope= formula (all), trace=0) #view results of forward stepwise regression forward$anova Step Df Deviance Resid. Df Resid. Dev AIC 1 NA NA 31 1126.0472 115.94345 2 + wt -1 847.72525 30 278.3219 73.21736 3 + cyl -1 87.14997 29 191.1720 63.19800 4 + hp -1 14.55145 28 176.6205 62.66456 #view final model forward$coefficients (Intercept) wt cyl hp 38.7517874 -3.1669731 -0.9416168 -0.0180381
မှတ်ချက်- trace=0 အကြောင်းပြချက်သည် R သည် အဆင့်ဆင့်ရွေးချယ်မှု၏ ရလဒ်အပြည့်အစုံကို မပြသရန် ပြောထားသည်။ ကြိုတင်ခန့်မှန်းနိုင်သော ကိန်းရှင်များ အများအပြားရှိနေပါက ၎င်းသည် နေရာများစွာယူနိုင်သည်။
ဤသည်မှာ ရလဒ်များကို မည်သို့အဓိပ္ပာယ်ဖွင့်ဆိုနိုင်သည်-
- ပထမဦးစွာ၊ ကျွန်ုပ်တို့သည် ကြားဖြတ်တစ်ခုတည်းသော မော်ဒယ်နှင့် ကိုက်ညီပါသည်။ ဤမော်ဒယ်တွင် AIC 115.94345 ရှိသည်။
- ထို့နောက် ကျွန်ုပ်တို့သည် ဖြစ်နိုင်ချေရှိသော မော်ဒယ်များအားလုံးကို ကြိုတင်ခန့်မှန်းသူအဖြစ် တပ်ဆင်ပေးသည်။ အ နိမ့်ဆုံး AIC ကို ထုတ်လုပ်သည့် မော်ဒယ်နှင့် AIC တွင် ကိန်းဂဏန်း သိသိသာသာ လျော့ကျမှု ရှိသည် ဤမော်ဒယ်တွင် AIC 73.21736 ရှိသည်။
- နောက်တစ်ခု၊ ကျွန်ုပ်တို့သည် ကြိုတင်တွက်ဆမှုနှစ်ခုဖြင့် ဖြစ်နိုင်သည့် မော်ဒယ်အားလုံးကို ဖြည့်ဆည်းပေးသည်။ အနိမ့်ဆုံး AIC ကို ထုတ်လုပ်သည့် မော်ဒယ်နှင့် AIC တွင် ကိန်းဂဏန်း သိသိသာသာ လျော့ကျမှု ရှိသည် ၊ single-predictor model နှင့် နှိုင်းယှဉ်ပါက cyl predictor ကို ထည့်သွင်းထားသည်။ ဤမော်ဒယ်တွင် AIC 63.19800 ရှိသည်။
- ထို့နောက်၊ ကျွန်ုပ်တို့သည် ဖြစ်နိုင်ချေရှိသော မော်ဒယ်အားလုံးကို ကြိုတင်ခန့်မှန်းသူ သုံးဦးထံ ဖြည့်သွင်းသည်။ အနိမ့်ဆုံး AIC ကို ထုတ်လုပ်သည့် မော်ဒယ်နှင့် AIC တွင် ကိန်းဂဏန်း အချက်အလက် သိသိသာသာ လျော့ကျမှု ရှိသော မော်ဒယ်သည် ကောင်ရေ အား ခန့်မှန်းပေးသူအား ထည့်သွင်းထားသည်။ ဤမော်ဒယ်တွင် AIC သည် 62.66456 ရှိသည်။
- ထို့နောက်၊ ကျွန်ုပ်တို့သည် ဖြစ်နိုင်ချေရှိသော မော်ဒယ်အားလုံးကို ကြိုတင်ခန့်မှန်းသူ လေးဦးအတွက် ဖြည့်ဆည်းပေးသည်။ ဤမော်ဒယ်များထဲမှ တစ်ခုမှ AIC တွင် သိသာထင်ရှားစွာ လျော့ကျသွားခြင်း မရှိသောကြောင့် လုပ်ငန်းစဉ်ကို ရပ်တန့်လိုက်ပါသည်။
နောက်ဆုံးပုံစံသည်-
mpg ~ 38.75 – 3.17*weight – 0.94*cyl – 0.02*hyp
ဥပမာ 2- တစ်ဆင့်ပြီးတစ်ဆင့် နောက်ပြန်ရွေးချယ်ခြင်း။
အောက်ဖော်ပြပါ ကုဒ်သည် နောက်ပြန်ဆုတ်နည်းကို ပြသသည်-
#define intercept-only model intercept_only <- lm(mpg ~ 1, data=mtcars) #define model with all predictors all <- lm(mpg ~ ., data=mtcars) #perform backward stepwise regression backward <- step(all, direction=' backward ', scope= formula (all), trace=0) #view results of backward stepwise regression backward$anova Step Df Deviance Resid. Df Resid. Dev AIC 1 NA NA 21 147.4944 70.89774 2 - cyl 1 0.07987121 22 147.5743 68.91507 3 - vs 1 0.26852280 23 147.8428 66.97324 4 - carb 1 0.68546077 24 148.5283 65.12126 5 - gear 1 1.56497053 25 150.0933 63.45667 6 - drat 1 3.34455117 26 153.4378 62.16190 7 - available 1 6.62865369 27 160.0665 61.51530 8 - hp 1 9.21946935 28 169.2859 61.30730 #view final model backward$coefficients (Intercept) wt qsec am 9.617781 -3.916504 1.225886 2.935837
ဤသည်မှာ ရလဒ်များကို မည်သို့အဓိပ္ပာယ်ဖွင့်ဆိုနိုင်သည်-
- ပထမဦးစွာ p ကြိုတင်တွက်ဆမှုအားလုံးကို အသုံးပြု၍ မော်ဒယ်တစ်ခုနှင့် ကိုက်ညီပါသည်။ ဒါကို M p အဖြစ် သတ်မှတ်ပါ။
- ထို့နောက်၊ k = p၊ p-1၊…1 အတွက်၊ ကျွန်ုပ်တို့သည် M k တွင် ခန့်မှန်းချက်တစ်ခုမှလွဲ၍ k-1 ကိန်းရှင်များ စုစုပေါင်း k-1 ခန့်မှန်းသူကိန်းရှင်များပါရှိသော k မော်ဒယ်များအားလုံးနှင့် ကိုက်ညီပါသည်။ ပြီးရင် ဒီ k မော်ဒယ်တွေထဲမှာ အကောင်းဆုံးကို ရွေးပြီး M k-1 လို့ ခေါ်ပါတယ်။
- နောက်ဆုံးတွင်၊ ကျွန်ုပ်တို့သည် AIC ကို အသုံးပြု၍ M 0 … M p မှ အကောင်းဆုံးမော်ဒယ်ကို ရွေးချယ်သည်။
နောက်ဆုံးပုံစံသည်-
mpg ~ 9.62 – 3.92*weight + 1.23*qsec + 2.94*am
ဥပမာ 3- လမ်းကြောင်းနှစ်ခုစလုံးအတွက် အဆင့်ဆင့်ရွေးချယ်ခြင်း။
အောက်ဖော်ပြပါ ကုဒ်သည် လမ်းကြောင်းနှစ်ခုစလုံးတွင် အဆင့်ဆင့်ရွေးချယ်မှုကို မည်သို့လုပ်ဆောင်ရမည်ကို ပြသသည်-
#define intercept-only model intercept_only <- lm(mpg ~ 1, data=mtcars) #define model with all predictors all <- lm(mpg ~ ., data=mtcars) #perform backward stepwise regression both <- step(intercept_only, direction=' both ', scope= formula (all), trace=0) #view results of backward stepwise regression both$anova Step Df Deviance Resid. Df Resid. Dev AIC 1 NA NA 31 1126.0472 115.94345 2 + wt -1 847.72525 30 278.3219 73.21736 3 + cyl -1 87.14997 29 191.1720 63.19800 4 + hp -1 14.55145 28 176.6205 62.66456 #view final model both$coefficients (Intercept) wt cyl hp 38.7517874 -3.1669731 -0.9416168 -0.0180381
ဤသည်မှာ ရလဒ်များကို မည်သို့အဓိပ္ပာယ်ဖွင့်ဆိုနိုင်သည်-
- ပထမဦးစွာ၊ ကျွန်ုပ်တို့သည် ကြားဖြတ်တစ်ခုတည်းသော မော်ဒယ်နှင့် ကိုက်ညီပါသည်။
- ထို့နောက်၊ ကျွန်ုပ်တို့သည် အဆင့်ဆင့်ရွေးချယ်မှုအတွက် လုပ်ဆောင်သကဲ့သို့ မော်ဒယ်သို့ ကြိုတင်ခန့်မှန်းသူများကို ဆက်တိုက်ထည့်ပါသည်။ သို့သော်လည်း၊ ကြိုတင်ခန့်မှန်းသူတိုင်းကို ပေါင်းထည့်ပြီးနောက်၊ ကျွန်ုပ်တို့သည် မော်ဒယ်ကိုက်ညီမှုတွင် တိုးတက်မှုကို မပေးတော့သည့် ကြိုတင်ခန့်မှန်းမှုများကို ဖယ်ရှားခဲ့သည်။
- နောက်ဆုံးပုံစံတစ်ခုမပြီးမချင်း ဒီလုပ်ငန်းစဉ်ကို ထပ်ခါတလဲလဲလုပ်တယ်။
နောက်ဆုံးပုံစံသည်-
mpg ~ 9.62 – 3.92*weight + 1.23*qsec + 2.94*am
ရှေ့သို့ ခြေလှမ်းရွေးချယ်ခြင်းနှင့် ခြေလှမ်းရွေးချယ်ခြင်းတို့သည် လမ်းကြောင်းနှစ်ခုလုံးတွင် တူညီသော နောက်ဆုံးပုံစံကို ဖြစ်ပေါ်စေပြီး နောက်သို့ ခြေလှမ်းရွေးချယ်မှုသည် မတူညီသောပုံစံကို ဖြစ်ပေါ်စေသည်ကို သတိပြုပါ။
ထပ်လောင်းအရင်းအမြစ်များ
Regression Slope ၏ အရေးပါပုံကို စမ်းသပ်နည်း
Regression Table ကို ဘယ်လိုဖတ်ပြီး အဓိပါယ်ရမလဲ
Regression တွင် Multicollinearity အတွက်လမ်းညွှန်