كيفية التعامل مع تحذير r: glm.fit: الخوارزمية لم تتقارب


التحذير الشائع الذي قد تواجهه في R هو:

 glm.fit: algorithm did not converge

يحدث هذا التحذير غالبًا عند محاولة ملاءمة نموذج الانحدار اللوجستي في R ورؤية الفصل المثالي ، أي أن متغير التوقع قادر على فصل متغير الاستجابة تمامًا إلى 0 و1.

يوضح المثال التالي كيفية التعامل مع هذا التحذير عمليًا.

كيفية إعادة إنتاج التحذير

لنفترض أننا نحاول ملاءمة نموذج الانحدار اللوجستي التالي في R:

 #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 

لاحظ أننا نتلقى رسالة التحذير: glm.fit: الخوارزمية لم تتقارب .

نتلقى هذه الرسالة لأن المتغير المتنبئ x قادر على فصل متغير الاستجابة y بشكل مثالي إلى 0 و1.

لاحظ أنه لكل قيمة x أقل من 1، y تساوي 0. ولكل قيمة x تساوي أو أكبر من 1، y تساوي 1.

يعرض التعليمة البرمجية التالية سيناريو حيث يكون متغير التوقع غير قادر على فصل متغير الاستجابة بشكل مثالي إلى 0 و1:

 #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.

كيفية التعامل مع التحذير

إذا واجهنا سيناريو الانفصال المثالي، فهناك طريقتان للتعامل معه:

الطريقة الأولى: استخدام الانحدار المعاقب.

أحد الخيارات هو استخدام شكل من أشكال الانحدار اللوجستي المعاقب مثل الانحدار اللوجستي اللاسو أو التنظيم الصافي المرن.

ارجع إلى حزمة glmnet للحصول على خيارات حول كيفية تنفيذ الانحدار اللوجستي المعاقب عليه في R.

الطريقة الثانية: استخدم متغير التوقع للتنبؤ بشكل مثالي بمتغير الاستجابة.

إذا كنت تشك في احتمال وجود هذا الفصل المثالي في المجتمع، فيمكنك ببساطة استخدام متغير التوقع هذا للتنبؤ بشكل مثالي بقيمة متغير الاستجابة.

على سبيل المثال، في السيناريو أعلاه، رأينا أن متغير الاستجابة y كان دائمًا يساوي 0 عندما كان متغير التوقع x أقل من 1.

إذا اشتبهنا في أن هذه العلاقة تنطبق على إجمالي عدد السكان، فيمكننا دائمًا التنبؤ بأن قيمة y ستكون 0 عندما تكون x أقل من 1 ولا نقلق بشأن ملاءمة نموذج الانحدار اللوجستي المعاقب.

مصادر إضافية

توفر البرامج التعليمية التالية معلومات إضافية حول استخدام الدالة glm() في R:

الفرق بين glm وlm في R
كيفية استخدام وظيفة التنبؤ مع glm في R
كيفية التعامل مع: glm.fit: حدثت الاحتمالات المعدلة عدديًا 0 أو 1

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *