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

rk5*_*567 2 r roc logistic-regression auc

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

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

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

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

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

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

Tad*_*las 7

您可以使用add = TRUE绘图函数的参数来绘制多个ROC曲线.

弥补一些假数据

library(pROC)
a=rbinom(100, 1, 0.25)
b=runif(100)
c=rnorm(100)
Run Code Online (Sandbox Code Playgroud)

获得模型拟合

fit1=glm(a~b+c, family='binomial')
fit2=glm(a~c, family='binomial')
Run Code Online (Sandbox Code Playgroud)

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

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

preds2=predict(fit2)
roc2=roc(a ~ preds2)
Run Code Online (Sandbox Code Playgroud)

绘制它.

plot(roc1)
plot(roc2, add=TRUE, col='red')
Run Code Online (Sandbox Code Playgroud)

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

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

  • 您可以使用`lines(roc2,col ='red')`与`plot`使用`add = TRUE'相同的效果. (2认同)