R တွင် linear regression အများအပြားလုပ်ဆောင်နည်း


ဤလမ်းညွှန်ချက်တွင် R တွင် မျဉ်းကြောင်းပြန်ဆုတ်ခြင်းကို မည်သို့လုပ်ဆောင်ရမည်ကို ဥပမာတစ်ခုပြသည်၊၊

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

သွားကြရအောင်!

ဂေဟာ

ဤဥပမာအတွက်၊ ကျွန်ုပ်တို့သည် မတူညီသောကား ၃၂ စီး၏ အမျိုးမျိုးသော attribute များဆိုင်ရာ အချက်အလက်များပါရှိသော built-in R dataset mtcars ကို အသုံးပြုပါမည်-

 #view first six lines 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

ဤဥပမာတွင်၊ ကျွန်ုပ်တို့သည် တုံ့ပြန်မှုကိန်းရှင်အဖြစ် mpg နှင့် disphp နှင့် drat ကို ကြိုတင်ခန့်မှန်းကိန်းရှင်များအဖြစ် အသုံးပြုသည့် မျဉ်းကြောင်းပြန်ဆုတ်မှုပုံစံကို တည်ဆောက်ပါမည်။

 #create new data frame that contains only the variables we would like to use to
data <- mtcars[, c("mpg", "disp", "hp", "drat")]

#view first six rows of new data frame
head(data)

# mpg disp hp drat
#Mazda RX4 21.0 160 110 3.90
#Mazda RX4 Wag 21.0 160 110 3.90
#Datsun 710 22.8 108 93 3.85
#Hornet 4 Drive 21.4 258 110 3.08
#Hornet Sportabout 18.7 360 175 3.15
#Valiant 18.1 225 105 2.76

ဒေတာသုံးသပ်ချက်

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

အထူးသဖြင့်၊ ကြိုတင်ခန့်မှန်းကိန်းရှင်များတွင် တုံ့ပြန်မှုကိန်းရှင်နှင့် မျဉ်းဖြောင့် ဆက်စပ်မှုရှိမရှိ စစ်ဆေးရန် လိုအပ်ပြီး၊ ၎င်းသည် များစွာသောမျဉ်းကြောင်းဆုတ်ယုတ်မှုပုံစံသည် သင့်လျော်ကြောင်းညွှန်ပြမည့်အရာဖြစ်သည်။

ဒါကိုလုပ်ဖို့၊ ဖြစ်နိုင်တဲ့ ကိန်းရှင်အတွဲတစ်ခုစီရဲ့ ကွဲလွဲချက်တစ်ခုကို ဖန်တီးဖို့အတွက် pairs() လုပ်ဆောင်ချက်ကို အသုံးပြုနိုင်ပါတယ်။

 pairs(data, pch = 18, col = "steelblue")

ဤအတွဲဂရပ်မှ အောက်ပါတို့ကို ကျွန်ုပ်တို့ တွေ့မြင်နိုင်သည်-

  • စိုင်းစိုင်းခမ်းလှိုင် နှင့် ရရှိနိုင်မှုတို့သည် ပြင်းထန်သော အနုတ်လက္ခဏာ မျဉ်းကြောင်းဆက်စပ်မှုရှိပုံပေါ်သည်။
  • mpg နှင့် hp တို့သည် ခိုင်မာသော အပြုသဘောဆောင်သော လိုင်းနားဆက်စပ်မှု ရှိနေပုံပေါ်သည်။
  • mpg နှင့် drat တို့သည် အနည်းငယ်မျှသော အနုတ်လက္ခဏာ မျဉ်းကြောင်းဆက်စပ်မှုရှိပုံပေါ်သည်။

ကိန်းရှင်အတွဲတစ်ခုစီအတွက် အမှန်တကယ် linear ဆက်စပ်ကိန်းများ ပါရှိသော အလားတူကွက်ကွက်ကိုဖန်တီးရန် GGally စာကြည့်တိုက်မှ ggpair() လုပ်ဆောင်ချက်ကို အသုံးပြုနိုင်ကြောင်း သတိပြုပါ။

 #install and load the GGally library
install.packages("GGally")
library(GGally)

#generate the pairs plot
ggpairs(data)

ကြိုတင်ခန့်မှန်းသည့်ကိန်းရှင်တစ်ခုစီတွင် တုံ့ပြန်မှုမပြောင်းလဲနိုင်သော mpg နှင့် ထင်ရှားသော linear ဆက်စပ်မှုရှိပုံပေါ်သည်၊ ထို့ကြောင့် ကျွန်ုပ်တို့သည် linear regression model ကို data နှင့် အံဝင်ခွင်ကျဖြစ်အောင် ဆက်လက်လုပ်ဆောင်ပါမည်။

မော်ဒယ်တွေများတော့

R တွင် multiple linear regression model ကို လိုက်လျောညီထွေဖြစ်စေရန်အတွက် အခြေခံ syntax သည်-

 lm(response_variable ~ predictor_variable1 + predictor_variable2 + ..., data = data)

ကျွန်ုပ်တို့၏ဒေတာကို အသုံးပြု၍ အောက်ပါကုဒ်ကို အသုံးပြု၍ မော်ဒယ်ကို အံကိုက်လုပ်နိုင်ပါသည်။

 model <- lm(mpg ~ disp + hp + drat, data = data)

မော်ဒယ်ယူဆချက်များကို စစ်ဆေးခြင်း။

မော်ဒယ်ရလဒ်များကို စစ်ဆေးအတည်ပြုခြင်းမပြုမီ၊ ကျွန်ုပ်တို့သည် မော်ဒယ်ယူဆချက်များနှင့်ကိုက်ညီကြောင်း ဦးစွာစစ်ဆေးရပါမည်။ ဆိုလိုသည်မှာ၊ ကျွန်ုပ်တို့သည် အောက်ပါတို့ကို စစ်ဆေးရန် လိုအပ်ပါသည်။

1. မော်ဒယ်အကြွင်းအကျန်များ ဖြန့်ဖြူးမှုသည် ခန့်မှန်းခြေအားဖြင့် ပုံမှန်ဖြစ်သင့်သည်။

အကြွင်းအကျန်များ၏ ရိုးရှင်းသော ဟစ်စတိုဂရမ်ကို ဖန်တီးခြင်းဖြင့် ဤယူဆချက်နှင့် ကိုက်ညီမှုရှိမရှိ စစ်ဆေးနိုင်သည်-

 hist(residuals(model), col = "steelblue")

ဖြန့်ဝေမှုမှာ အနည်းငယ် ညာဘက်စောင်း နေသော်လည်း ကြီးကြီးမားမား စိုးရိမ်စရာ ဖြစ်စေလောက်အောင် ပုံမှန်မဟုတ်ပေ။

2. အကြွင်းအကျန်များ၏ကွဲလွဲမှုသည် လေ့လာတွေ့ရှိချက်အားလုံးအတွက် တသမတ်တည်းဖြစ်ရမည်။

ဤနှစ်ခြိုက်သောအခြေအနေအား homoscedasticity ဟုခေါ်သည်။ ဤယူဆချက်ကို ဖောက်ဖျက်ခြင်းကို heteroscedasticity ဟုခေါ်သည်။

ဤယူဆချက်နှင့် ကိုက်ညီမှုရှိမရှိ စစ်ဆေးရန်၊ ချိန်ညှိထားသော/ကျန်ရှိတန်ဖိုးဂရပ်ဖစ်ကို ဖန်တီးနိုင်သည်-

 #create fitted value vs residual plot
plot(fitted(model), residuals(model))

#add horizontal line at 0
abline(h = 0, lty = 2)

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

မော်ဒယ်အထွက်ကို စကားပြန်

မော်ဒယ်ယူဆချက် လုံလောက်စွာ ပြည့်မီကြောင်း စစ်ဆေးအတည်ပြုပြီးသည်နှင့်၊ summary() လုပ်ဆောင်ချက်ကို အသုံးပြု၍ မော်ဒယ်အထွက်အား စစ်ဆေးနိုင်သည်-

 summary(model)

#Call:
#lm(formula = mpg ~ disp + hp + drat, data = data)
#
#Residuals:
# Min 1Q Median 3Q Max 
#-5.1225 -1.8454 -0.4456 1.1342 6.4958 
#
#Coefficients:
#Estimate Std. Error t value Pr(>|t|)   
#(Intercept) 19.344293 6.370882 3.036 0.00513 **
#disp -0.019232 0.009371 -2.052 0.04960 * 
#hp -0.031229 0.013345 -2.340 0.02663 * 
#drat 2.714975 1.487366 1.825 0.07863 . 
#---
#Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
#Residual standard error: 3.008 on 28 degrees of freedom
#Multiple R-squared: 0.775, Adjusted R-squared: 0.7509 
#F-statistic: 32.15 on 3 and 28 DF, p-value: 3.28e-09

ရလဒ်မှ အောက်ပါတို့ကို ကျွန်ုပ်တို့ မြင်နိုင်သည်-

  • မော်ဒယ်၏ စုစုပေါင်း F-statistic သည် 32.15 ဖြစ်ပြီး သက်ဆိုင်ရာ p-value မှာ 3.28e-09 ဖြစ်သည်။ ၎င်းသည် အလုံးစုံ မော်ဒယ်သည် စာရင်းအင်းအရ သိသာထင်ရှားကြောင်း ဖော်ပြသည်။ တစ်နည်းအားဖြင့် ဆုတ်ယုတ်မှုပုံစံတစ်ခုလုံးအတွက် အသုံးဝင်သည်။
  • disp သည် 0.10 အရေးပါမှုအဆင့်တွင် ကိန်းဂဏန်းအရ သိသာထင်ရှားပါသည်။ အထူးသဖြင့်၊ မော်ဒယ်ရလဒ်များမှ ကိန်းဂဏန်းသည် တစ်ယူနစ် ရရှိနိုင်မှု တိုးလာမှုသည် မြင်းကောင်ရေ နှင့် လောင်စာဆီသုံးစွဲမှု ကိန်း သေရှိနေသည်ဟု ယူဆကာ ပျမ်းမျှ အား ဖြင့် -0.019 ယူနစ် ကျဆင်းခြင်းနှင့် ဆက်စပ်နေကြောင်း ညွှန်ပြနေသည်။ .
  • hp သည် 0.10 အရေးပါမှုအဆင့်တွင် ကိန်းဂဏန်းအရ သိသာထင်ရှားပါသည်။ အထူးသဖြင့်၊ မော်ဒယ်ရလဒ်များမှ ကိန်းဂဏန်းသည် မြင်းကောင်ရေအား တစ်ယူနစ်တိုးလာခြင်းသည် ပျမ်းမျှအားဖြင့် mpg တွင် -0.031 ယူနစ် ကျဆင်းခြင်းနှင့် ဆက်စပ်နေကြောင်း၊ disp နှင့် drat သည် အမြဲမပြတ်ရှိနေသည်ဟု ညွှန်ပြနေသည်။
  • drat သည် 0.10 အရေးပါမှုအဆင့်တွင် ကိန်းဂဏန်းအရ သိသာထင်ရှားပါသည်။ အထူးသဖြင့်၊ မော်ဒယ်ရလဒ်များမှ ကိန်းဂဏန်းများသည် ဓာတ်ဆီသုံးစွဲမှု တစ်ယူနစ် တိုးလာခြင်းသည် ပျမ်းမျှ စိုင်းစိုင်းခမ်းလှိုင် ယူနစ် ၂၇၁၅ ယူနစ် တိုးလာခြင်းနှင့် ဆက်စပ်နေကြောင်း၊ စီးဆင်းနှုန်း နှင့် မြင်းကောင်ရေအား မပြတ်မသား ရှိနေသည်ဟု ယူဆပါသည်။

မော်ဒယ်၏ ကြံ့ခိုင်မှုကို အကဲဖြတ်ခြင်း။

ဆုတ်ယုတ်မှုပုံစံသည် ဒေတာနှင့် မည်မျှကိုက်ညီကြောင်း အကဲဖြတ်ရန်၊ မတူညီသော တိုင်းတာမှုအချို့ကို ကြည့်ရှုနိုင်သည်-

1. R-စတုရန်းများစွာ

၎င်းသည် ကြိုတင်ခန့်မှန်းကိန်းရှင်များနှင့် တုံ့ပြန်မှုကိန်းရှင်များကြား မျဉ်းဖြောင့်ဆက်နွယ်မှု၏ ခွန်အားကို တိုင်းတာသည်။ R-squared multiple 1 ၏ R-squared multiple သည် ပြီးပြည့်စုံသော linear ဆက်ဆံရေးကို ညွှန်ပြနေသော်လည်း 0 ၏ R-squared multiple သည် linear ဆက်နွယ်မှုမရှိကြောင်း ညွှန်ပြသည်။

Multiple R သည် ခန့်မှန်းသူကိန်းရှင်များဖြင့် ရှင်းပြနိုင်သော တုံ့ပြန်မှုကိန်းရှင်၏ ကွဲလွဲမှုအချိုးအစားဖြစ်သည့် R နှစ်ထပ်ကိန်း၏ နှစ်ထပ်ကိန်း၏ နှစ်ထပ်ကိန်းလည်းဖြစ်သည်။ ဤဥပမာတွင်၊ R-squared multiple သည် 0.775 ဖြစ်သည်။ ထို့ကြောင့် R နှစ်ထပ်ကိန်းသည် 0.775 2 = 0.601 ဖြစ်သည်။ ၎င်းသည် စိုင်းစိုင်းခမ်းလှိုင်60.1% ကွဲပြားမှုကို မော်ဒယ်ခန့်မှန်းသူများက ရှင်းပြနိုင်သည်ကို ညွှန်ပြသည်။

ဆက်စပ်မှု- ကောင်းသော R-squared တန်ဖိုးဆိုသည်မှာ အဘယ်နည်း။

2. ကျန်နေသောစံအမှား

၎င်းသည် သတိပြုမိသော တန်ဖိုးများနှင့် ဆုတ်ယုတ်မှုမျဉ်းကြား ပျမ်းမျှအကွာအဝေးကို တိုင်းတာသည်။ ဤဥပမာတွင်၊ လေ့လာထားသောတန်ဖိုးများသည် ဆုတ်ယုတ်မှုမျဉ်းမှ ပျမ်းမျှ ယူနစ် 3.008 ဖြင့် သွေဖည်သွားသည်

ဆက်စပ်-   Regression ၏ Standard Error ကို နားလည်ခြင်း။

ခန့်မှန်းချက်များကို ပြုလုပ်ရန် မော်ဒယ်ကို အသုံးပြုပါ။

မော်ဒယ်ရလဒ်များမှ၊ တပ်ဆင်ထားသော multiple linear regression equation သည်-

ဦးထုပ် mpg = -19.343 – 0.019*disp – 0.031*hp + 2.715*drat

လေ့လာတွေ့ရှိချက် အသစ်များအတွက် စိုင်းစိုင်းခမ်းလှိုင် သည် မည်သို့ဖြစ်မည်ကို ခန့်မှန်းရန် ဤညီမျှခြင်းအား ကျွန်ုပ်တို့အသုံးပြုနိုင်ပါသည်။ ဥပမာအားဖြင့်၊ အောက်ပါအရည်အချင်းများရှိသော ကားတစ်စီးအတွက် ခန့်မှန်းထားသော mpg တန်ဖိုးကို ကျွန်ုပ်တို့ ရှာဖွေနိုင်သည်-

  • ပြသမှု = ၂၂၀
  • ch =150
  • drat = ၃
 #define the coefficients from the model output
intercept <- coef(summary(model))["(Intercept)", "Estimate"]
disp <- coef(summary(model))["disp", "Estimate"]
hp <- coef(summary(model))["hp", "Estimate"]
drat <- coef(summary(model))["drat", "Estimate"]

#use the model coefficients to predict the value for mpg
intercept + disp*220 + hp*150 + drat*3

#[1] 18.57373

disp = 220၊ hp = 150 နှင့် drat = 3 ရှိသော ကားအတွက် မော်ဒယ်သည် 18.57373 mpg ရရှိမည်ဟု ခန့်မှန်းထားသည်။

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

ထပ်လောင်းအရင်းအမြစ်များ

အောက်ဖော်ပြပါ သင်ခန်းစာများသည် R တွင် အခြားသော ဆုတ်ယုတ်မှုပုံစံများနှင့် အံဝင်ခွင်ကျဖြစ်ပုံကို ရှင်းပြထားသည်။

R တွင် လေးပုံတပုံ ဆုတ်ယုတ်မှုကို မည်သို့လုပ်ဆောင်ရမည်နည်း
R တွင် polynomial regression ကို မည်သို့လုပ်ဆောင်ရမည်နည်း
R တွင် exponential regression လုပ်ဆောင်နည်း

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

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