【问题标题】:plot multiple ROC curves for logistic regression model in R为 R 中的逻辑回归模型绘制多条 ROC 曲线
【发布时间】:2015-02-19 10:55:13
【问题描述】:

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

【问题讨论】:

    标签: r logistic-regression roc auc


    【解决方案1】:

    您可以使用 plot 函数的 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 曲线做的事情。其他人将不得不填写该详细信息。对不起。希望其余的帮助。

    【讨论】:

    • 您可以使用lines(roc2, col='red') 获得与plotadd=TRUE 相同的效果。
    猜你喜欢
    • 1970-01-01
    • 2018-10-13
    • 2016-08-09
    • 1970-01-01
    • 2019-02-27
    • 2018-06-02
    • 1970-01-01
    • 2021-04-11
    • 2013-06-26
    相关资源
    最近更新 更多