小编xpo*_*ion的帖子

在不使用任何包的情况下在 R 中绘制 ROC 曲线

嗨,我对 R 编程很陌生,我在不使用任何包的情况下绘制 ROC 曲线时遇到了麻烦。

我使用以下方法生成了我的数据:

d=rpearsonIII(100,0.5,360,20)
nd=rnorm(100,450,25)
Run Code Online (Sandbox Code Playgroud)

我需要一个向量,d 的值 <400,nd 的值 >400,所以我做了:

spec = (cumsum(nd[nd>400])/sum(nd))*100
sens = (cumsum(d[d<400])/sum(nd))*100
Run Code Online (Sandbox Code Playgroud)

我是这样绘制的:

plot(1-spec,sens)
Run Code Online (Sandbox Code Playgroud)

但情节与我预期的完全不同

编辑:感谢给出的建议,我的代码现在看起来像这样:

sc2 = c(rnorm(50,450,25),rpearsonIII(50,0.5,360,20))
scF = sc2 < 395

thresholds <- sort(sc2)

pos <- sum(scF);pos
neg <- sum(!scF);neg

tn <- cumsum(!scF);tn
spec <- tn/neg;spec

tp <- pos - cumsum(scF);tp
sens <- tp/pos;sens

plot(1 - spec, sens, type = "l", col = "red", 
     ylab = "Sensitivity", xlab = "1 - Specificity")
abline(c(0,0),c(1,1))
Run Code Online (Sandbox Code Playgroud)

绘制的 roc 曲线如下所示: roc 曲线

我现在的问题是,如果改变生成数据的顺序(rnorm 和 …

r roc

3
推荐指数
1
解决办法
2638
查看次数

标签 统计

r ×1

roc ×1