ROC 的 R 编码

标签 r roc

我很难将 ROC 的示例命令转换为我的数据集。这是用于 pROC 包

这是使用数据(aSAH)的例子

roc(aSAH$outcome, aSAH$s100b)
roc(outcome ~ s100b, aSAH)

所以... aSAH 应替换为我的数据集或数据子集的名称。正确吗?

outcome 应替换为我的结果变量名称。正确吗?

s100b 应替换为我的预测变量名称。正确的?如果我没有单个预测变量,而是试图确定树的 ROC,该怎么办?我确实尝试用我的树的名称替换 s100b,但这也没有用。

最佳答案

在 R 的 roc 命令中,第一个参数是实际观察到的响应,第二个参数是模型的分数。为了绘制 ROC 曲线,最简单的方法是应用 roc 曲线并将结果存储在其他变量中 - 让我们称之为分析。然后,需要从变量分析 中提取灵敏度1-特异性,因为这是 ROC 曲线所需要的。这可以在 plot 命令中完成:

plot(1-analysis$specificities,analysis$sensitivities,type="l")

请查看图片以及 R 中的结果。在图片下方,您可以找到此曲线的 R 代码并将其应用于您的问题。请注意,一开始我模拟了数据。

enter image description here

rm(list = ls()) # clear work space
##Simulate Data
set.seed(123456)
n <- 10000
q <- 0.8

#Simulate predictions
Real <- c(sample(c(0,1), n/2, replace = TRUE, prob = c(1-q,q)),
    sample(c(0,1), n/2, replace = TRUE, prob = c(0.7,0.3)))

#Simulate Response
p <- c(rep(seq(0.4,0.9, length=100), 50),
rep(seq(0.2,0.6, length=100), 50))
p <- data.frame(cbind(Real, p))

#install and load package
install.packages("pROC")
library(pROC)

#apply roc function
analysis <- roc(response=p$Real, predictor=p$p)

#Plot ROC Curve
plot(1-analysis$specificities,analysis$sensitivities,type="l",
ylab="Sensitiviy",xlab="1-Specificity",col="black",lwd=2,
main = "ROC Curve for Simulated Data")
abline(a=0,b=1)
abline(v = opt_t) #add optimal t to ROC curve

关于ROC 的 R 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28660837/

相关文章:

重复重采样函数 1000 次 ?使用lapply?

c++ - R 数据框和 c++ 中的 which.min() 等价物

r - 深入研究R分析信息

python - 将 ROC AUC 分数与 Logistic 回归和 Iris 数据集结合使用

使用 multiclass.roc 的 R 多类/多项式分类 ROC(包 ‘pROC’)

r - 从 ROC 曲线获取阈值

r - 比较r中四个ROC曲线的auc

r - 使用R中的dplyr查找一个列字符串在另一列中的行

sql - 从 SQL 转换为 R(连接和内部连接)

machine-learning - 如何解释不平衡数据中的高 AUC-ROC 和平庸的精确度和召回率?