使用plotROC包和geom_roc()将ROC曲线转换为“ M1标记”

时间:2018-11-22 03:56:11

标签: r ggplot2 roc

我正在尝试使用ggplot2的{​​{3}}包绘制ROC曲线,但是我不确定如何将我拥有的数据转换为M1标记格式。该文档提供了以下示例:

# plotROC documentation example
library(plotROC)
library(ggplot2)
D.ex <- rbinom(200, size = 1, prob = .5)
M1 <- rnorm(200, mean = D.ex, sd = .65)
M2 <- rnorm(200, mean = D.ex, sd = 1.5)

D         M1         M2
1  1.4995932  0.5508204
1  0.4181619  1.6339181
0 -0.3620614 -1.0428972
1  0.7991132 -1.6396751
0  0.9574047  2.1159753
1  1.3440595  1.3026485

test <- data.frame(D = D.ex, D.str = c("Healthy", "Ill")[D.ex + 1], 
               M1 = M1, M2 = M2, stringsAsFactors = FALSE)

ggplot(test, aes(d = D, m = M1)) + 
   geom_roc()

plotROC

我的数据是测试子集的逻辑回归得分:

# Example starting point
test <- rbinom(200, size = 1, prob = 0.2)
scores.prob <- runif(200, min = 0 , max = 1)
scores.class <- ifelse(scores.prob > 0.5, 1, 0)

# Example generated data
test scores.prob scores.class
 0   0.7323306            1
 0   0.7860687            1
 0   0.9535123            1
 1   0.3082551            0
 0   0.5762784            1
 1   0.4613730            0

我想知道M1是什么,以及如何转换数据以获取该字段。

1 个答案:

答案 0 :(得分:1)

poupulateData(data) {
        //lets assume variable data is an array of objects with more 400 data
        let arr = [];       
        if (data && data.length) {
          for (let i = 0; i < data.length; i++) {
            let obj=  data[i];
            arr.push(obj.features);        
          }
        }
      }

您的标记/预测器是您的glm模型的拟合值。 ROC将为您提供模型工作方式(通过AUC)的概念,以及将人员分配给班级的最佳概率阈值(ROC临界值)。 如果要可视化不同的多元/单变量方法的附加值,这是一种有用的方法。 这里是mtcars数据集的完整示例。希望对您有所帮助。

library(plotROC) 
library(ggplot2) 
test <- rbinom(200, size = 1, prob = 0.2)
scores.prob <- runif(200, min = 0 , max = 1) 
test <- data.frame(D = test,
           M1 = scores.prob, stringsAsFactors = FALSE)
ggplot(test, aes(d = D, m = M1)) + 
geom_roc()