Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 具有自定义截止值的程序包?_R_Roc_Proc R Package - Fatal编程技术网

R 具有自定义截止值的程序包?

R 具有自定义截止值的程序包?,r,roc,proc-r-package,R,Roc,Proc R Package,我可以使用一些预先指定的截止值(阈值)用pROC包绘制ROC曲线吗?例如,我可以输入控制/病例值和我自己的阈值点,在那里计算相应的敏感性和特异性吗?请查看?plot.roc 假设你有: my.cutoff <- 0.6 这不再是ROC曲线 为了在我的另一个答案中回应你的评论(但不是回答你的问题,这无法像我上面评论的那样回答),我可以给你一种方法来做你似乎想要的事情。请不要在任何情况下将其称为ROC曲线:它不是!根据本练习的目的(您从未解释过),请自己提出一个描述性名称 通过pROC,您可

我可以使用一些预先指定的截止值(阈值)用
pROC
包绘制ROC曲线吗?例如,我可以输入控制/病例值和我自己的阈值点,在那里计算相应的敏感性和特异性吗?

请查看
?plot.roc

假设你有:

my.cutoff <- 0.6
这不再是ROC曲线 为了在我的另一个答案中回应你的评论(但不是回答你的问题,这无法像我上面评论的那样回答),我可以给你一种方法来做你似乎想要的事情。请不要在任何情况下将其称为ROC曲线:它不是!根据本练习的目的(您从未解释过),请自己提出一个描述性名称

通过
pROC
,您可以间接地做您似乎想要做的事情:计算所有阈值上的ROC,提取您想要的坐标:并使用梯形函数完成

library(pROC)
data(aSAH)
my.cutoff <- c(0.6, 1, 1.5, 1.8)
roc.obj <- roc(aSAH$outcome, aSAH$s100b)
like.coordinates <- coords(roc.obj, c(-Inf, sort(my.cutoff), Inf), input="threshold", ret=c("specificity", "sensitivity"))
并计算
AUC
,例如使用package
caTools
中的
trapz
函数:

library(caTools)
trapz(like.coordinates$specificity, like.coordinates$sensitivity)

再一次,您没有绘制ROC曲线,您计算的AUC不是ROC曲线。

非常感谢您的回答。但我想要的不是这个。我不知道pROC如何选择阈值来计算敏感性和特异性。但是,我想在自己指定的阈值下计算它们。例如,roc(病例=我的病例,对照=我的对照,…);在这里有没有一种方法可以指定我自己的阈值?@Vish我使用了0.6,但是你可以在
my.cutoff
中指定任何你想要的截止值,你也可以传递一个截止值向量。@Vish还有什么我可以帮忙的吗?再次感谢你的关注。但是,我想使用我自己的阈值来生成ROC曲线。例如,roc(病例=mycases,对照=MyControl,阈值=c(0.6,1,1.5,1.8)。然后函数生成ROC曲线和AUC只考虑那些指定的阈值。我想这在pROC软件包中是不可能的。是吗?非常感谢。@Vish你不能生成只有几个阈值的ROC曲线:它不再是ROC了。从你在我的回答中留下的评论来看,你所问的似乎不是ROC曲线。ROC曲线超过所有阈值。如果你限制阈值,你的曲线就不再是ROC了。所以请重新表述你的问题。而且,你为什么要这么做对我来说毫无意义,可能是因为你的问题太具体了。如果你告诉我们更多关于你选择这样做的原因,可能会出现更好的答案。
plot(like.coordinates$specificity, like.coordinates$sensitivity, xlim=c(1, 0), type="l")
library(caTools)
trapz(like.coordinates$specificity, like.coordinates$sensitivity)