كيفية حساب 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، فهذا يشير إلى أن النموذج يقوم بعمل جيد للغاية في التنبؤ بما إذا كان الفرد سوف يتخلف عن سداد قرضه أم لا.

Add a Comment

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