ပြုပြင်နည်း- အဆင့် 2 သို့မဟုတ် ထို့ထက်ပိုသောအချက်များတွင် ဆန့်ကျင်ဘက်များကိုသာ အသုံးချနိုင်သည်။
R တွင် သင်ကြုံတွေ့ရလေ့ရှိသော အမှားတစ်ခုမှာ-
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]): contrasts can be applied only to factors with 2 or more levels
ကိန်းဂဏန်းတစ်ခု သို့မဟုတ် စရိုက်လက္ခဏာတစ်ခုဖြစ်ပြီး ထူးခြားသောတန်ဖိုးတစ်ခုသာရှိသည့် ခန့်မှန်းကိန်းရှင်ကိန်းရှင်ကို အသုံးပြု၍ ဆုတ်ယုတ်မှုပုံစံတစ်ခုကို အံကိုက်ပြုလုပ်ရန် ကြိုးပမ်းသည့်အခါ ဤအမှားသည် ဖြစ်ပေါ်လာသည်။
ဤသင်ခန်းစာသည် ဤအမှားအယွင်းကို ဖြေရှင်းရန် သင်အသုံးပြုနိုင်သည့် တိကျသောအဆင့်များကို မျှဝေပါသည်။
ဥပမာ- “ ဆန့်ကျင်ဘက်များကို အဆင့် 2 သို့မဟုတ် ထို့ထက်ပိုသော အဆင့်များရှိသည့် အကြောင်းရင်းများတွင်သာ ယှဉ်တွဲနိုင်သည်” ကို ပြင်ဆင်နည်း
R တွင် အောက်ပါ data frame ရှိသည်ဆိုပါစို့။
#create data frame df <- data. frame (var1=c(1, 3, 3, 4, 5), var2=as. factor (4), var3=c(7, 7, 8, 3, 2), var4=c(1, 1, 2, 8, 9)) #view data frame df var1 var2 var3 var4 1 1 4 7 1 2 3 4 7 1 3 3 4 8 2 4 4 4 3 8 5 5 4 2 9
ကြိုတင်ခန့်မှန်းကိန်းရှင် var2 သည် ကိန်းဂဏန်းတစ်ခုဖြစ်ပြီး ထူးခြားသောတန်ဖိုးတစ်ခုသာရှိကြောင်း သတိပြုပါ။
ကြိုတင်ခန့်မှန်းကိန်းရှင်အဖြစ် var2 ကိုအသုံးပြု၍ များစွာသောမျဉ်းကြောင်းဆုတ်ယုတ်မှုပုံစံကို အံဝင်ခွင်ကျဖြစ်အောင် ကျွန်ုပ်တို့ကြိုးစားပါက၊ ကျွန်ုပ်တို့သည် အောက်ပါအမှားကို ရရှိလိမ့်မည်-
#attempt to fit regression model
model <- lm(var4 ~ var1 + var2 + var3, data=df)
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]):
contrasts can be applied only to factors with 2 or more levels
var2 တွင် ထူးခြားသောတန်ဖိုးတစ်ခုသာရှိသည်- 4. ဤကြိုတင်ခန့်မှန်းကိန်းရှင်တွင် ကွဲလွဲမှုမရှိသောကြောင့် R သည် ဆုတ်ယုတ်မှုပုံစံကို ထိထိရောက်ရောက် အံမဝင်နိုင်ပါ။
ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏ဒေတာဘောင်ရှိ ကိန်းရှင်တစ်ခုစီအတွက် ထူးခြားသောတန်ဖိုးများအရေအတွက်ကိုရေတွက်ရန် အောက်ပါ syntax ကို အမှန်တကယ်အသုံးပြုနိုင်သည်-
#count unique values for each variable sapply( lapply (df, unique), length) var1 var2 var3 var4 4 1 4 4
ပြီးတော့ variable တစ်ခုစီရဲ့ ထူးခြားတဲ့တန်ဖိုးတွေကို ပြသဖို့အတွက် lapply() လုပ်ဆောင်ချက်ကို အသုံးပြုနိုင်ပါတယ်။
#display unique values for each variable
lapply(df[c('var1', 'var2', 'var3')], unique)
$var1
[1] 1 3 4 5
$var2
[1] 4
Levels: 4
$var3
[1] 7 8 3 2
var2 သည် ထူးခြားသောတန်ဖိုးရှိသော တစ်ခုတည်းသောကိန်းရှင်ဖြစ်ကြောင်း ကျွန်ုပ်တို့တွေ့မြင်နိုင်ပါသည်။ ထို့ကြောင့်၊ ကျွန်ုပ်တို့သည် var2 ကို regression model မှဖယ်ရှားရုံဖြင့် ဤအမှားကိုပြင်နိုင်သည်-
#fit regression model without using var2 as a predictor variable model <- lm(var4 ~ var1 + var3, data=df) #view model summary summary(model) Call: lm(formula = var4 ~ var1 + var3, data = df) Residuals: 1 2 3 4 5 0.02326 -1.23256 0.91860 0.53488 -0.24419 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 8.4070 3.6317 2.315 0.1466 var1 0.6279 0.6191 1.014 0.4172 var3 -1.1512 0.3399 -3.387 0.0772 . --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 1.164 on 2 degrees of freedom Multiple R-squared: 0.9569, Adjusted R-squared: 0.9137 F-statistic: 22.18 on 2 and 2 DF, p-value: 0.04314
regression model မှ var2 ကို ဖယ်ရှားခြင်းဖြင့်၊ ယခင် error ကို ကျွန်ုပ်တို့ မကြုံတွေ့ရတော့ပါ။
ထပ်လောင်းအရင်းအမြစ်များ
R တွင် ရိုးရှင်းသော linear regression လုပ်နည်း
R တွင် linear regression အများအပြားလုပ်ဆောင်နည်း
R တွင် logistic regression ကို မည်သို့လုပ်ဆောင်ရမည်နည်း