كيفية حساب auc (المساحة تحت المنحنى) في r
الانحدار اللوجستي هو طريقة إحصائية نستخدمها لتناسب نموذج الانحدار عندما يكون متغير الاستجابة ثنائيًا. لتقييم مدى ملاءمة نموذج الانحدار اللوجستي لمجموعة البيانات، يمكننا النظر إلى المقياسين التاليين:
- الحساسية: احتمال أن يتنبأ النموذج بنتيجة إيجابية لملاحظة ما عندما تكون النتيجة إيجابية بالفعل. ويسمى هذا أيضًا “المعدل الإيجابي الحقيقي”.
- الخصوصية: احتمال أن يتنبأ النموذج بنتيجة سلبية لملاحظة ما عندما تكون النتيجة سلبية بالفعل. ويسمى هذا أيضًا “المعدل السلبي الحقيقي”.
إحدى الطرق لتصور هذين القياسين هي إنشاء منحنى ROC ، والذي يرمز إلى منحنى “خاصية تشغيل جهاز الاستقبال”.
هذا رسم بياني يعرض الحساسية على طول المحور y و(1 – الخصوصية) على طول المحور x. إحدى طرق قياس فعالية نموذج الانحدار اللوجستي في تصنيف البيانات هي حساب AUC ، والتي تعني “المنطقة تحت المنحنى”.
كلما اقتربت AUC من 1، كان النموذج أفضل.
يوضح المثال التالي خطوة بخطوة كيفية حساب AUC لنموذج الانحدار اللوجستي في R.
الخطوة 1: تحميل البيانات
أولاً، سنقوم بتحميل مجموعة البيانات الافتراضية من حزمة ISLR ، والتي تحتوي على معلومات حول ما إذا كان العديد من الأشخاص قد تخلفوا عن سداد القرض أم لا.
#load dataset data <- ISLR::Default #view first six rows of dataset head(data) default student balance income 1 No No 729.5265 44361.625 2 No Yes 817.1804 12106.135 3 No No 1073.5492 31767.139 4 No No 529.2506 35704.494 5 No No 785.6559 38463.496 6 No Yes 919.5885 7491.559
الخطوة 2: ملاءمة نموذج الانحدار اللوجستي
بعد ذلك، سنقوم بتركيب نموذج الانحدار اللوجستي للتنبؤ باحتمالية تخلف الفرد عن السداد:
#make this example reproducible set. seeds (1) #Use 70% of dataset as training set and remaining 30% as testing set sample <- sample(c(TRUE, FALSE), nrow(data), replace= TRUE , prob=c(0.7,0.3)) train <- data[sample, ] test <- data[!sample, ] #fit logistic regression model model <- glm(default~student+balance+income, family=" binomial ", data=train)
الخطوة 3: حساب نموذج AUC
بعد ذلك، سوف نستخدم الدالة auc() من حزمة pROC لحساب AUC للنموذج. تستخدم هذه الوظيفة بناء الجملة التالي:
لا شيء (الاستجابة، المتوقعة)
إليك كيفية استخدام هذه الوظيفة في مثالنا:
#calculate probability of default for each individual in test dataset predicted <- predict(model, test, type=" response ") #calculate AUC library (pROC) auc(test$default, predicted) Setting levels: control = No, case = Yes Setting direction: controls < boxes Area under the curve: 0.9437
وتبين أن AUC للنموذج هو 0.9437 .
وبما أن هذه القيمة قريبة من 1، فهذا يشير إلى أن النموذج يقوم بعمل جيد للغاية في التنبؤ بما إذا كان الفرد سوف يتخلف عن سداد قرضه أم لا.