比较r中四个ROC曲线的auc
compare the auc of four ROC curves in r
我想比较R中四个roc曲线的auc。
我试过 roc.test
,但是这个函数只能比较两条曲线
roc.test(roc1,roc2)
R有比较4条曲线的功能吗?
我知道在 stata 中我可以通过 roccomp
比较 4 条曲线。有谁知道如何比较 R 中的四条曲线?
谢谢!!
我认为 roc.test 不存在,但您可以使用 library(caTools)
来做到这一点。
使用 'sapply' 和 library(pROC)
比较 AUC 值非常容易,我在这里描述了这两种方法:
两种方法的示例和设置:
在此处构建模型:
lm1 <- lm(am ~ disp + mpg, data= mtcars)
lm2 <- lm(am ~ disp + hp, data= mtcars)
lm3 <- lm(am ~ disp + wt, data= mtcars)
在这里预测模型:
predict1 <- predict(lm1, newdata=mtcars)
predict2 <- predict(lm2, newdata=mtcars)
predict3 <- predict(lm3, newdata=mtcars)
方法一:
library("caTools")
colAUC(cbind(predict1, predict2, predict3), mtcars$am, plotROC = T)
输出:
[,1] [,2] [,3]
0 vs. 1 0.8380567 0.9433198 0.9433198
如果您选择使用 plotROC = T
,那么您将收到 ROC 之间的绘图比较
方法二:
auc.val <- sapply(list(predict1, predict2, predict3),function(x)roc(pred=x,resp=mtcars$am)$auc)
最后在这里使用sapply计算AUC:
library(pROC)
auc.val <- sapply(list(predict1, predict2, predict3),function(x)roc(pred=x,resp=mtcars$am)$auc)
会 return 这个:
> auc.val
[1] 0.8380567 0.9433198 0.9433198
如果您有兴趣打印此名称,请在 sapply
中使用 USE.NAMES
> auc.val <- sapply(list("lm1" = predict1, "lm2" = predict2,"lm3"= predict3),function(x)roc(pred=x,resp=mtcars$am)$auc, USE.NAMES = T)
> auc.val
lm1 lm2 lm3
0.8380567 0.9433198 0.9433198
我想比较R中四个roc曲线的auc。
我试过 roc.test
,但是这个函数只能比较两条曲线
roc.test(roc1,roc2)
R有比较4条曲线的功能吗?
我知道在 stata 中我可以通过 roccomp
比较 4 条曲线。有谁知道如何比较 R 中的四条曲线?
谢谢!!
我认为 roc.test 不存在,但您可以使用 library(caTools)
来做到这一点。
使用 'sapply' 和 library(pROC)
比较 AUC 值非常容易,我在这里描述了这两种方法:
两种方法的示例和设置:
在此处构建模型:
lm1 <- lm(am ~ disp + mpg, data= mtcars)
lm2 <- lm(am ~ disp + hp, data= mtcars)
lm3 <- lm(am ~ disp + wt, data= mtcars)
在这里预测模型:
predict1 <- predict(lm1, newdata=mtcars)
predict2 <- predict(lm2, newdata=mtcars)
predict3 <- predict(lm3, newdata=mtcars)
方法一:
library("caTools")
colAUC(cbind(predict1, predict2, predict3), mtcars$am, plotROC = T)
输出:
[,1] [,2] [,3]
0 vs. 1 0.8380567 0.9433198 0.9433198
如果您选择使用 plotROC = T
,那么您将收到 ROC 之间的绘图比较
方法二:
auc.val <- sapply(list(predict1, predict2, predict3),function(x)roc(pred=x,resp=mtcars$am)$auc)
最后在这里使用sapply计算AUC:
library(pROC)
auc.val <- sapply(list(predict1, predict2, predict3),function(x)roc(pred=x,resp=mtcars$am)$auc)
会 return 这个:
> auc.val
[1] 0.8380567 0.9433198 0.9433198
如果您有兴趣打印此名称,请在 sapply
中使用USE.NAMES
> auc.val <- sapply(list("lm1" = predict1, "lm2" = predict2,"lm3"= predict3),function(x)roc(pred=x,resp=mtcars$am)$auc, USE.NAMES = T)
> auc.val
lm1 lm2 lm3
0.8380567 0.9433198 0.9433198