كيفية رسم منحنى roc باستخدام ggplot2 (مع أمثلة)
الانحدار اللوجستي هو طريقة إحصائية نستخدمها لتناسب نموذج الانحدار عندما يكون متغير الاستجابة ثنائيًا. لتقييم مدى ملاءمة نموذج الانحدار اللوجستي لمجموعة البيانات، يمكننا النظر إلى المقياسين التاليين:
- الحساسية: احتمال أن يتنبأ النموذج بنتيجة إيجابية لملاحظة ما عندما تكون النتيجة إيجابية بالفعل.
- الخصوصية: احتمال أن يتنبأ النموذج بنتيجة سلبية لملاحظة ما عندما تكون النتيجة سلبية بالفعل.
إحدى الطرق البسيطة لتصور هذين المقياسين هي إنشاء منحنى ROC ، وهو رسم بياني يعرض حساسية وخصوصية نموذج الانحدار اللوجستي.
يشرح هذا البرنامج التعليمي كيفية إنشاء وتفسير منحنى ROC في R باستخدام حزمة التصور ggplot2.
مثال: منحنى ROC باستخدام ggplot2
لنفترض أننا نلائم نموذج الانحدار اللوجستي التالي في R:
#load Default dataset from ISLR book data <- ISLR::Default #divide dataset into training and test set set.seed(1) 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 to training set model <- glm(default~student+balance+income, family=" binomial ", data=train) #use model to make predictions on test set predicted <- predict(model, test, type=" response ")
لتصور أداء نموذج الانحدار اللوجستي في مجموعة الاختبار، يمكننا إنشاء مخطط ROC باستخدام الدالة ggroc() من حزمة pROC :
#load necessary packages library (ggplot2) library (pROC) #define object to plot rocobj <- roc(test$default, predicted) #create ROC plot ggroc(rocobj)
يعرض المحور y الحساسية (المعدل الإيجابي الحقيقي) للنموذج ويعرض المحور x خصوصية النموذج (المعدل السلبي الحقيقي).
لاحظ أنه يمكننا إضافة تصميم إلى قطعة الأرض وتوفير عنوان يحتوي أيضًا على AUC (المساحة الموجودة أسفل المنحنى) للقطعة:
#load necessary packages library (ggplot2) library (pROC) #define object to plot and calculate AUC rocobj <- roc(test$default, predicted) auc <- round (auc(test$default, predicted), 4 ) #create ROC plot ggroc(rocobj, color = ' steelblue ', size = 2 ) + ggtitle( paste0 (' ROC Curve ', ' (AUC = ', auc, ' ) '))
لاحظ أنه يمكنك أيضًا تعديل موضوع الحبكة:
#create ROC plot with minimal theme ggroc(rocobj, color = ' steelblue ', size = 2 ) + ggtitle( paste0 (' ROC Curve ', ' (AUC = ', auc, ' ) ')) + theme_minimal()
ارجع إلى هذه المقالة للحصول على دليل لأفضل سمات ggplot2.