2

我有一个逻辑回归模型(使用 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,如果可能的话还显示置信区间。

4

1 回答 1

8

您可以使用add = TRUE参数 plot 函数来绘制多条 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')

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

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

于 2014-12-20T21:42:06.893 回答