如何计算r中的auc(曲线下面积)
逻辑回归是一种统计方法,当响应变量是二元时,我们用它来拟合回归模型。为了评估逻辑回归模型对数据集的拟合程度,我们可以查看以下两个指标:
- 敏感性:当结果实际上是积极的时,模型预测观察结果为积极的概率。这也称为“真阳性率”。
- 特异性:当结果实际上为负时,模型预测观察结果为负的概率。这也称为“真负率”。
可视化这两个测量值的一种方法是创建ROC 曲线,它代表“接收器操作特性”曲线。
该图沿 y 轴显示灵敏度,沿 x 轴显示(1 – 特异性)。量化逻辑回归模型在数据分类方面的有效性的一种方法是计算AUC ,它代表“曲线下面积”。
AUC 越接近 1,模型越好。
以下分步示例展示了如何计算 R 中逻辑回归模型的 AUC。
第 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
接下来,我们将使用pROC包中的auc()函数来计算模型的 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,这表明该模型在预测个人是否会拖欠贷款方面做得非常好。