كيفية حساب r-squared لـ glm في r


في كثير من الأحيان عندما نلائم نموذج الانحدار الخطي، نستخدم R-squared لتقييم مدى ملاءمة النموذج للبيانات.

يمثل مربع R نسبة التباين في متغير الاستجابة الذي يمكن تفسيره بواسطة المتغيرات المتوقعة في نموذج الانحدار.

ويتراوح هذا الرقم من 0 إلى 1، وتشير القيم الأعلى إلى ملاءمة أفضل للنموذج.

ومع ذلك، لا توجد قيمة R-squared للنماذج الخطية العامة مثل نماذج الانحدار اللوجستي ونماذج انحدار بواسون .

بدلاً من ذلك، يمكننا حساب مقياس يُعرف باسم McFadden’s R-Squared ، والذي يتراوح من 0 إلى أقل بقليل من 1، مع القيم الأعلى التي تشير إلى ملاءمة أفضل للنموذج.

نستخدم الصيغة التالية لحساب مربع R لـ McFadden:

McFadden’s R-Squared = 1 – ( نموذج احتمال السجل / احتمال السجل الصفري )

ذهب:

  • نموذج احتمالية السجل : سجل قيمة احتمالية النموذج المجهز الحالي
  • احتمالية السجل الصفرية : قيمة احتمالية السجل للنموذج الفارغ (النموذج مع التقاطع فقط)

من الناحية العملية، تشير القيم الأعلى من 0.40 إلى أن النموذج يناسب البيانات بشكل جيد للغاية.

يوضح المثال التالي كيفية حساب مربع R لـ McFadden لنموذج الانحدار اللوجستي في R.

مثال: حساب مربع R لـ McFadden في R

في هذا المثال، سوف نستخدم مجموعة البيانات الافتراضية من حزمة ISLR. يمكننا استخدام الكود التالي لتحميل وعرض ملخص لمجموعة البيانات:

 #install and load ISLR package
install. packages (' ISLR ')
library (ISLR)

#define dataset
data <- ISLR::Default

#view summary of dataset
summary(data)

 default student balance income     
 No:9667 No:7056 Min. : 0.0 Min. : 772  
 Yes: 333 Yes:2944 1st Qu.: 481.7 1st Qu.:21340  
                       Median: 823.6 Median: 34553  
                       Mean: 835.4 Mean: 33517  
                       3rd Qu.:1166.3 3rd Qu.:43808  
                       Max. :2654.3 Max. :73554  

#find total observations in dataset
nrow(data)

[1] 10000

تحتوي مجموعة البيانات هذه على المعلومات التالية عن 10000 فرد:

  • الافتراضي: يشير إلى ما إذا كان الفرد قد تخلف أم لا.
  • الطالب: يشير إلى ما إذا كان الفرد طالبًا أم لا.
  • الرصيد: متوسط الرصيد الذي يحمله الفرد.
  • الدخل: دخل الفرد.

سوف نستخدم حالة الطالب والرصيد البنكي والدخل لبناء نموذج الانحدار اللوجستي الذي يتنبأ باحتمالية تخلف فرد معين عن السداد:

 #fit logistic regression model
model <- glm(default~student+balance+income, family=' binomial ', data=data)

#view model summary
summary(model)

Call:
glm(formula = default ~ balance + student + income, family = "binomial", 
    data = data)

Deviance Residuals: 
    Min 1Q Median 3Q Max  
-2.4691 -0.1418 -0.0557 -0.0203 3.7383  

Coefficients:
              Estimate Std. Error z value Pr(>|z|)    
(Intercept) -1.087e+01 4.923e-01 -22.080 < 2e-16 ***
balance 5.737e-03 2.319e-04 24.738 < 2e-16 ***
studentYes -6.468e-01 2.363e-01 -2.738 0.00619 ** 
income 3.033e-06 8.203e-06 0.370 0.71152    
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 2920.6 on 9999 degrees of freedom
Residual deviance: 1571.5 on 9996 degrees of freedom
AIC: 1579.5

Number of Fisher Scoring iterations: 8

بعد ذلك، سوف نستخدم الصيغة التالية لحساب قيمة مربع R لـ McFadden لهذا النموذج:

 #calculate McFadden's R-squared for model
with(summary(model), 1 - deviance/null. deviance )

[1] 0.4619194

تبين أن قيمة McFadden’s R-squared هي 0.4619194 . هذه القيمة عالية جدًا، مما يشير إلى أن نموذجنا يناسب البيانات جيدًا ويتمتع بقدرة تنبؤية عالية.

لاحظ أيضًا أنه يمكننا أيضًا استخدام الدالة pR2() من الحزمة pscl لحساب قيمة McFadden R-squared للنموذج:

 #install and load pscl package
install. packages (' pscl ')
library (pscl)

#calculate McFadden's R-squared for model
pR2(model)[' McFadden ']

 McFadden 
0.4619194

لاحظ أن هذه القيمة تتوافق مع القيمة المحسوبة مسبقًا.

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:

كيفية حساب R-squared في R
كيفية حساب R-squared المعدل في R
ما هي قيمة R-squared الجيدة؟

Add a Comment

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