全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
10807 8
2010-12-11
悬赏 500 个论坛币 已解决
请问在比较两条ROC曲线面积时有交叉与不交叉两种情况的区分吗?如果有,那么区别在哪里,应该怎样做?——可用任何软件做,只不过请高手示范操作(菜单与程序均可),特别是有交叉的ROC曲线面积的比较!谢谢高手指点!

最佳答案

decisiontree 查看完整内容

客气了,大家互相学习。 "照你上面的例子,如果交叉点在(0.5,0.8),即使两条ROC曲线(设为A1与A2)面积相等,也有可能在X0.5时,A1部分小于A2部分是吗?" --对的,现在的问题就是如何计算两个PART AUC的值了。 我没有具体算过PART AUC,也没见过什么软件包能做这个的。不过根据ROCR的计算方法你还是有可能算出来的。首先我前面提到了曲线的坐标文件。它的格式是: 0,0 0.01,0.2 0.03,0.26 0.07, 0.35 ... 0.99, 0.9 ...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-12-11 15:47:48
客气了,大家互相学习。

"照你上面的例子,如果交叉点在(0.5,0.8),即使两条ROC曲线(设为A1与A2)面积相等,也有可能在X<0.5时,A1部分大于A2部分,而在X>0.5时,A1部分小于A2部分是吗?"
--对的,现在的问题就是如何计算两个PART AUC的值了。

我没有具体算过PART AUC,也没见过什么软件包能做这个的。不过根据ROCR的计算方法你还是有可能算出来的。首先我前面提到了曲线的坐标文件。它的格式是:
0,0
0.01,0.2
0.03,0.26
0.07, 0.35
...
0.99, 0.97
1,1
也就是说他计算的是从(0,0)到(1,1)的面积,即常规的AUC。如果我是你的话,我会把坐标只记录到(0.5,0.8),即交叉点的位置。ROCR因该给出从(0,0),到(0.5, 0.8)的面积。然后用(0,0)到(1,1)的AUC减一下就可以得到剩下部分的面积了。
呵呵,这是我的推测,因为手头现在没有R,也不好帮你验证一下,但我觉得比较可行。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-12-12 07:53:03
我以前用R语言的ROCR软件包算过ROC 曲线的面积(GOOGLE一下 ROCR),R语言和相关软件包都是免费软件。
只要你有X,Y轴的坐标(越多越准确),把两条曲线的坐标写入两个文件,每行两个数字X和Y,然后调用三条命令(只是个例子):
pred <- prediction(predictions, labels)
perf <- performance(pred, measure = "tpr", x.measure = "fpr")
plot(perf, col=rainbow(10))
就能把曲线画出。
PERFORMANCE函数有多个参数,其中一个是AUC, 计算area under the ROC curve. ROCR的网站上有很好的MANUAL你一看就懂了,还是很容易算的。

如果你的目的是比较ROC面积,那不用区分两条曲线是否交叉。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-12-12 10:39:48
二楼谢谢你的回答!如果在多条ROC曲线比较两两ROC曲线的面积时(不交叉),我可以用SAS程序,stata菜单和medcalc菜单以及rockit1.1程序计算,但是我不知道单比较两两交叉的ROC曲线面积时,应该怎样操作。在胡良平编的《医学统计学-运用三型理论分析定量与定性资料》书的255页中说到“当2条ROC曲线交叉时,两诊断试验的比较应比较部分ROC曲线下的面积或固定假阳性率时的灵敏度。”请问二楼,胡良平说的是什么意思?谢谢高手们的指点!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-12-12 13:39:10
由一组实验结果我们可以得到一条ROC 曲线。AUC of ROC curve能比较笼统的比较两组或多组实验的结果的。AUC是越大越好。在不交叉的情况下面积大的曲线是毫无疑问的更好的结果。但是交叉了就稍复杂些,因为ROC曲线的每个点对应的是Y轴(truth positive rate,我们希望这个值越大越好) and X轴(FALSE POSITIVE RATE,我们希望这个值越小越好). 假设两条曲线相交在点(0.5,0.8)并且对应的AUC值相同。一组结果可能在X值小于0.3的时候有比较大的Y值,然后随着X值的增大Y值缓慢增大;而另一组结果是在X值小于0.3的时候Y值也比较小,但是过了0.3以后较快的增大。 胡良平说的意思是如果你用一个OveraLL的AUC是无法准确说明该两组交叉ROC曲线的优劣的,但是你可以通过交叉点向下引一条线,这样对于每条ROC你就有两个AUC值了,对应FALSE POSITIVE RATE在(0-0.5)和(0.5-1)。每个AUC的值说明当FALSE POSITIVE RATE在某个范围的时候你的实验结果如何。当然这时AUC以成为部分AUC,其值也是越大越好,同时两条ROC可能多次交叉,但是同理都可以加以解释。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-12-12 16:51:50
谢谢你decisiontree,我大概为这个问题悬赏了3000论坛币,只有你答得出,交叉与不交叉的ROC曲线面积比较有什么不同,强!!我再想请问一下,照你上面的例子,如果交叉点在(0.5,0.8),即使两条ROC曲线(设为A1与A2)面积相等,也有可能在X<0.5时,A1部分大于A2部分,而在X>0.5时,A1部分小于A2部分是吗?还有一个问题,如果我前面所说的是对的,那么怎样把这两部分分开来比较呢?期待你decisiontree的回答!谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群