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 အတွက်လမ်းညွှန်

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

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