如何计算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,这表明该模型在预测个人是否会拖欠贷款方面做得非常好。

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注