R-使用二元预测创建ROC曲线

R-使用二元预测创建ROC曲线,r,data-visualization,roc,R,Data Visualization,Roc,我有可能是“正常”或“有问题”的情况。我有一个算法,当一个情况出现问题时,应该使用情况的特征尽可能快地检测(因此,二元预测,没有连续概率)。我想评估“尽可能快”:当将可用数据减少到一个越来越短的窗口时(关于时间),该算法是保持了大约其性能还是有显著的下降?当窗口变得越来越短时,大多数情况是否分类错误 我使用一个循环来计算算法性能,使用1、10、20等窗口。对于每个窗口,我仅使用给定窗口中可用的数据将每个情况的“真值”与算法的输出进行比较。使用插入符号软件包I计算灵敏度和特异性。到目前为止还不错

我有可能是“正常”或“有问题”的情况。我有一个算法,当一个情况出现问题时,应该使用情况的特征尽可能快地检测(因此,二元预测,没有连续概率)。我想评估“尽可能快”:当将可用数据减少到一个越来越短的窗口时(关于时间),该算法是保持了大约其性能还是有显著的下降?当窗口变得越来越短时,大多数情况是否分类错误

我使用一个循环来计算算法性能,使用1、10、20等窗口。对于每个窗口,我仅使用给定窗口中可用的数据将每个情况的“真值”与算法的输出进行比较。使用
插入符号
软件包I计算灵敏度和特异性。到目前为止还不错

但我想使用ROC曲线,因为它便于说明算法的性能。然而,我正在努力理解这个概念。我首先在R中使用了我自己的脚本,它在ROC图上创建点。但是我想要一个类似于ROC曲线的东西,用垂直/水平线连接点。我尝试使用包
ROCR
绘制ROC曲线,但是我不知道如何让它理解我有一个变量(窗口的长度)


在这一点上,我不知道1/我是否理解ROC曲线的概念(我可以使用它进行二进制预测)和2/我可以用ROCR包来做吗?(和3/如果没有,怎么做?)

我不知道ROCR,但是如果你已经计算了灵敏度和特异性,你可以用base:
plot(1-特异性,灵敏度,type=“l”)
或ggplot2:
ggplot(数据帧)+geom线(aes(x=1-特异性,y=灵敏度))
谢谢你的回答。正如你所说的,我可以用点和线来绘图,我做到了。然而,从我所看到的ROC曲线只显示垂直线和水平线(它们只相互垂直,就像小步),我希望有相同的曲线。不幸的是,使用
geom_line
时,直线是从一点到另一点的直线,因此可以是对角线。或者有没有其他选择呢?哦,对不起,我误解了这个问题。您可以尝试使用
geom_step()
,否则我不知道。谢谢,它可以工作!或者至少我只需要手动绘制最后一点和右上角之间的最后一条线。对于一些未知的情况,它不能与
ggplotly
一起工作,但通过
geom\u步骤
,我仍然大致得到了我想要的,尽管我仍然不理解ROCR>