R သတိပေးချက်- glm.fit: အယ်လဂိုရီသမ်ကို ကိုင်တွယ်ပုံမတူညီပါ။


R တွင် သင်ကြုံတွေ့ရနိုင်သည့် ဘုံသတိပေးချက်မှာ-

 glm.fit: algorithm did not converge

R တွင် logistic regression model ကို အံဝင်ခွင်ကျဖြစ်အောင် ကြိုးစားပြီး ပြီး ပြည့်စုံသော ပိုင်းခြားမှုကို မြင်သောအခါ၊ ခန့်မှန်းသူကိန်းရှင်သည် တုံ့ပြန်မှုကိန်းရှင်ကို 0 နှင့် 1 တွင် အပြည့်အ၀ ခွဲခြားနိုင်သောအခါတွင် ဤသတိပေးချက်သည် မကြာခဏ ဖြစ်ပေါ်ပါသည်။

အောက်ဖော်ပြပါ ဥပမာသည် ဤသတိပေးချက်ကို လက်တွေ့တွင် မည်သို့ကိုင်တွယ်ရမည်ကို ပြသထားသည်။

သတိပေးချက်ကို ဘယ်လိုမျိုးပွားမလဲ။

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

 #create data frame
df <- data. frame (x=c(.1, .2, .3, .4, .5, .6, .7, .8, .9, 1, 1, 1.1, 1.3, 1.5, 1.7),
                 y=c(0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1))

#attempt to fit logistic regression model
glm(y~x, data=df, family=" binomial ")

Call: glm(formula = y ~ x, family = "binomial", data = df)

Coefficients:
(Intercept)x  
     -409.1 431.1  

Degrees of Freedom: 14 Total (ie Null); 13 Residual
Null Deviance: 20.19 
Residual Deviance: 2.468e-09 AIC: 4
Warning messages:
1: glm.fit: algorithm did not converge 
2: glm.fit: fitted probabilities numerically 0 or 1 occurred 

သတိပေးချက် မက်ဆေ့ချ်ကို လက်ခံရရှိကြောင်း သတိပြုပါ။

ကြိုတင်ခန့်မှန်းကိန်းရှင် x သည် တုံ့ပြန်မှုကိန်းရှင် y ကို 0 နှင့် 1 အဖြစ် အပြည့်အ၀ ခွဲခြားနိုင်သောကြောင့် ဤစာကို လက်ခံရရှိခြင်းဖြစ်သည်။

1 ထက်နည်းသော x တန်ဖိုးတိုင်းအတွက် y သည် 0 နှင့် ညီမျှကြောင်း သတိပြုပါ။ x တန်ဖိုးတိုင်းနှင့် 1 ထက်ကြီးပါက y သည် 1 နှင့် ညီမျှသည်။

အောက်ပါကုဒ်သည် ကြိုတင်ခန့်မှန်းကိန်းရှင်သည် တုံ့ပြန်မှုကိန်းရှင်ကို 0s နှင့် 1s ဟူ၍ စုံလင်စွာမခွဲခြားနိုင်သည့် မြင်ကွင်းတစ်ခုကို ပြသသည်-

 #create data frame
df <- data. frame (x=c(.1, .2, .3, .4, .5, .6, .7, .8, .9, 1, 1, 1.1, 1.3, 1.5, 1.7),
                 y=c(0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1))

#fit logistic regression model
glm(y~x, data=df, family=" binomial ")

Call: glm(formula = y ~ x, family = "binomial", data = df)

Coefficients:
(Intercept) x  
     -2.112 2.886  

Degrees of Freedom: 14 Total (ie Null); 13 Residual
Null Deviance: 20.73 
Residual Deviance: 16.31 AIC: 20.31

ကြိုတင်ခန့်မှန်းကိန်းရှင်သည် တုံ့ပြန်မှုကိန်းရှင်ကို 0 နှင့် 1 ဟူ၍ စုံလင်စွာမခွဲခြားနိုင်သောကြောင့် ကျွန်ုပ်တို့သည် မည်သည့်သတိပေးစာများကိုမျှ မရရှိပါ။

သတိပေးချက်ကို ဘယ်လိုကိုင်တွယ်မလဲ။

ပြီးပြည့်စုံသော ခွဲခွာခြင်း မြင်ကွင်းတစ်ခုကို ကျွန်ုပ်တို့ ကြုံတွေ့ရပါက၊ ၎င်းကို ကိုင်တွယ်ရန် နည်းလမ်းနှစ်ခု ရှိပါသည်။

နည်းလမ်း 1- အပြစ်ပေးထားသော ဆုတ်ယုတ်မှုကို သုံးပါ။

ရွေးချယ်စရာတစ်ခုမှာ lasso logistic regression သို့မဟုတ် elastic net ပုံမှန်ပြုလုပ်ခြင်းကဲ့သို့ အပြစ်ပေးသော ထောက်ပံ့ပို့ဆောင်ရေးဆုတ်ယုတ်မှုပုံစံကို အသုံးပြုရန်ဖြစ်သည်။

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

နည်းလမ်း 2- တုံ့ပြန်မှုကိန်းရှင်ကို ပြီးပြည့်စုံစွာ ခန့်မှန်းရန် ကြိုတင်ခန့်မှန်းကိန်းရှင်ကို အသုံးပြုပါ။

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

ဥပမာအားဖြင့်၊ အထက်ဖော်ပြပါအခြေအနေတွင်၊ ခန့်မှန်းသူကိန်းရှင် x သည် 1 ထက်နည်းသည့်အခါ တုံ့ပြန်မှုကိန်းရှင် y သည် 0 နှင့် အမြဲတန်းတူညီကြောင်း ကျွန်ုပ်တို့တွေ့မြင်ရပါသည်။

ဤဆက်ဆံရေးသည် စုစုပေါင်းလူဦးရေတွင် ရှိနေသည်ဟု ကျွန်ုပ်တို့သံသယရှိပါက x သည် 1 ထက်နည်းသောအခါတွင် y ၏တန်ဖိုးသည် 0 ဖြစ်မည်ဖြစ်ပြီး အပြစ်ပေးထားသော ထောက်ပံ့ပို့ဆောင်ရေးဆုတ်ယုတ်မှုပုံစံကို လိုက်လျောညီထွေဖြစ်စေရန် စိတ်မပူပါနှင့်။

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

အောက်ဖော်ပြပါ သင်ခန်းစာများသည် R တွင် glm() လုပ်ဆောင်ချက်ကို အသုံးပြုခြင်းနှင့်ပတ်သက်သည့် နောက်ထပ်အချက်အလက်များကို ပေးဆောင်သည်-

R တွင် glm နှင့် lm ကွာခြားချက်
R တွင် glm ဖြင့် ခန့်မှန်းသည့်လုပ်ဆောင်ချက်ကို မည်သို့အသုံးပြုရမည်နည်း။
ကိုင်တွယ်နည်း- glm.fit- ကိန်းဂဏန်းအလိုက် ချိန်ညှိထားသော ဖြစ်နိုင်ခြေ 0 သို့မဟုတ် 1 ဖြစ်သွားသည်။

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

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