R တွင် ကိန်းရှင်အတွက် မမှန်ကန်သော အမျိုးအစား (စာရင်း) ကို ပြင်ဆင်နည်း
R တွင် သင်ကြုံတွေ့ရသော အမှားတစ်ခုမှာ-
Error in model.frame.default(formula = y ~ x, drop.unused.levels = TRUE): invalid type (list) for variable 'x'
ဆုတ်ယုတ်မှုပုံစံ သို့မဟုတ် ANOVA မော်ဒယ်ကို R တွင် အံဝင်ခွင်ကျဖြစ်အောင် သင်ကြိုးစားပြီး vector တစ်ခုအစား ကိန်းရှင်တစ်ခုအတွက် စာရင်း တစ်ခုကို အသုံးပြုသောအခါတွင် ဤအမှားသည် များသောအားဖြင့် ဖြစ်ပေါ်တတ်သည်။
ဤသင်ခန်းစာသည် လက်တွေ့တွင် ဤအမှားကို မည်သို့ပြုပြင်ရမည်ကို ရှင်းပြထားသည်။
အမှားကို ဘယ်လိုပြန်ထုတ်မလဲ။
R တွင် ရိုးရှင်းသော linear regression model ကို အံဝင်ခွင်ကျဖြစ်အောင် ကြိုးစားနေသည် ဆိုပါစို့။
#define variables
x <- list(1, 4, 4, 5, 7, 8, 9, 10, 13, 14)
y <- c(10, 13, 13, 14, 18, 20, 22, 24, 29, 31)
#attempt to fit regression model
model <- lm(y ~ x)
Error in model.frame.default(formula = y ~ x, drop.unused.levels = TRUE):
invalid type (list) for variable 'x'
lm() function သည် vector များကို input အဖြစ်သာယူနိုင်ပြီး variable x သည် လက်ရှိစာရင်းတစ်ခုဖြစ်သောကြောင့် အမှားတစ်ခုရရှိနေပါသည်။
အမှားကို ဘယ်လိုရှောင်မလဲ။
ဤအမှားကို ရှောင်ရှားရန် အလွယ်ဆုံးနည်းလမ်းမှာ စာရင်းမပြောင်းလဲနိုင်သော vector တစ်ခုသို့ ပြောင်းလဲရန် unlist() လုပ်ဆောင်ချက်ကို အသုံးပြုရန်ဖြစ်သည်။
#define variables
x <- list(1, 4, 4, 5, 7, 8, 9, 10, 13, 14)
y <- c(10, 13, 13, 14, 18, 20, 22, 24, 29, 31)
#attempt to fit regression model
model <- lm(y ~ unlist(x))
#view the model output
summary(model)
Call:
lm(formula = y ~ unlist(x))
Residuals:
Min 1Q Median 3Q Max
-1.1282 -0.4194 -0.1087 0.2966 1.7068
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 6.58447 0.55413 11.88 2.31e-06 ***
unlist(x) 1.70874 0.06544 26.11 4.97e-09 ***
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.8134 on 8 degrees of freedom
Multiple R-squared: 0.9884, Adjusted R-squared: 0.987
F-statistic: 681.8 on 1 and 8 DF, p-value: 4.97e-09
variable x ကို vector တစ်ခုသို့ပြောင်းလဲရန် unlist() ကို အသုံးပြုခဲ့သောကြောင့် ယခုတစ်ကြိမ်တွင် အမှားအယွင်းများမရှိဘဲ ရိုးရှင်းသော linear regression model နှင့် အံဝင်ခွင်ကျဖြစ်နိုင်ကြောင်း သတိပြုပါ။
အကယ်၍ သင်သည် များစွာသော မျဉ်းတန်းဆုတ်ယုတ်မှုပုံစံကို အံကိုက်ဖြစ်ပြီး သင့်တွင် လက်ရှိအရာဝတ္တုများစာရင်းရှိနေသည့် ကြိုတင်ခန့်မှန်းကိန်းရှင်များစွာရှိသည်ဆိုပါက၊ ၎င်းတို့တစ်ခုစီအား ဆုတ်ယုတ်မှုပုံစံနှင့်မကိုက်ညီမီ vector များအဖြစ်သို့ ပြောင်းလဲရန် unlist() ကို အသုံးပြုနိုင်ကြောင်း သတိပြုပါ။
#define variables
x1 <- list(1, 4, 4, 5, 7, 8, 9, 10, 13, 14)
x2 <- list(20, 16, 16, 15, 16, 12, 10, 8, 8, 4)
y <- c(10, 13, 13, 14, 18, 20, 22, 24, 29, 31)
#fit multiple linear regression model
model <- lm(y ~ unlist(x1) + unlist(x2))
#view the model output
summary(model)
Call:
lm(formula = y ~ unlist(x1) + unlist(x2))
Residuals:
Min 1Q Median 3Q Max
-1.1579 -0.4211 -0.1386 0.3108 1.7130
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 8.34282 4.44971 1.875 0.102932
unlist(x1) 1.61339 0.24899 6.480 0.000341 ***
unlist(x2) -0.08346 0.20937 -0.399 0.702044
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.8599 on 7 degrees of freedom
Multiple R-squared: 0.9887, Adjusted R-squared: 0.9854
F-statistic: 305.1 on 2 and 7 DF, p-value: 1.553e-07
နောက်တဖန်၊ စာရင်းရှိ အရာဝတ္ထုတစ်ခုစီကို vector များအဖြစ်သို့ ပြောင်းလိုက်သောကြောင့် ကျွန်ုပ်တို့သည် မည်သည့်အမှားအယွင်းမှ မရရှိပါ။
ထပ်လောင်းအရင်းအမြစ်များ
အောက်ဖော်ပြပါ သင်ခန်းစာများသည် R တွင် အခြားသော ဘုံလုပ်ဆောင်ချက်များကို မည်သို့လုပ်ဆောင်ရမည်ကို ရှင်းပြသည်-
R တွင် glm output ကိုမည်သို့အဓိပ္ပာယ်ဖွင့်မည်နည်း။
R တွင် ANOVA ရလဒ်များကိုမည်သို့အဓိပ္ပာယ်ဖွင့်မည်နည်း။
R သတိပေးချက်ကို ကိုင်တွယ်ပုံ- glm.fit: အယ်လဂိုရီသမ် အသွင်မဆောင်ပါ။