绘制R中逻辑回归模型的多个ROC曲线

时间:2014-12-20 20:34:37

标签: r logistic-regression roc auc

我有一个逻辑回归模型(使用R)作为

fit6 <- glm(formula = survived ~ ascore + gini + failed, data=records, family = binomial)
summary(fit6)

我正在使用pROC包来绘制ROC曲线并计算6个模型fit1到fit6的AUC。

我已经采用这种方式来绘制一个ROC。

prob6=predict(fit6,type=c("response"))
records$prob6 = prob6
g6 <- roc(survived~prob6, data=records)
plot(g6)

但有没有办法可以在一个图中为所有6条曲线组合ROC并显示所有这些曲线的AUC,如果可能的话还可以显示置信区间。

1 个答案:

答案 0 :(得分:7)

您可以使用绘图函数的add = TRUE参数绘制多条ROC曲线。

制作一些假数据

library(pROC)
a=rbinom(100, 1, 0.25)
b=runif(100)
c=rnorm(100)

获取模型

fit1=glm(a~b+c, family='binomial')
fit2=glm(a~c, family='binomial')

预测您训练模型的相同数据(或者根据需要保留一些以进行测试)

preds=predict(fit1)
roc1=roc(a ~ preds)

preds2=predict(fit2)
roc2=roc(a ~ preds2)

绘制它。

plot(roc1)
plot(roc2, add=TRUE, col='red')

这会在同一个图上产生不同的拟合。你可以通过roc1$auc获得ROC曲线的AUC,并且可以使用基础R绘图中的text()函数添加它,或者可以只将它放在图例中。

我不知道如何量化置信区间...或者如果这甚至是你可以用ROC曲线做的事情。其他人将不得不填写那个细节。抱歉。希望其余的帮助。