楼主: lnlhckao123
10855 8

[问答] 请问在比较两条ROC曲线面积时有交叉与不交叉两种情况的区分吗 [推广有奖]

  • 0关注
  • 3粉丝

副教授

62%

还不是VIP/贵宾

-

威望
0
论坛币
14810 个
通用积分
10.6125
学术水平
7 点
热心指数
4 点
信用等级
4 点
经验
12566 点
帖子
754
精华
0
在线时间
405 小时
注册时间
2010-8-21
最后登录
2025-6-7

楼主
lnlhckao123 发表于 2010-12-11 15:47:47 |AI写论文
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 ...
关键词:ROC曲线 ROC 高手指点 曲线 交叉 ROC 面积 时有

本帖被以下文库推荐

即使在人大经济论坛这个网络世界,我仍以真诚为基础与我的好友进行交往!

沙发
decisiontree 发表于 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,也不好帮你验证一下,但我觉得比较可行。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
lnlhckao123 + 1 + 1 + 1 好的意见建议

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

藤椅
decisiontree 发表于 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面积,那不用区分两条曲线是否交叉。

板凳
lnlhckao123 发表于 2010-12-12 10:39:48
二楼谢谢你的回答!如果在多条ROC曲线比较两两ROC曲线的面积时(不交叉),我可以用SAS程序,stata菜单和medcalc菜单以及rockit1.1程序计算,但是我不知道单比较两两交叉的ROC曲线面积时,应该怎样操作。在胡良平编的《医学统计学-运用三型理论分析定量与定性资料》书的255页中说到“当2条ROC曲线交叉时,两诊断试验的比较应比较部分ROC曲线下的面积或固定假阳性率时的灵敏度。”请问二楼,胡良平说的是什么意思?谢谢高手们的指点!
即使在人大经济论坛这个网络世界,我仍以真诚为基础与我的好友进行交往!

报纸
decisiontree 发表于 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可能多次交叉,但是同理都可以加以解释。

地板
lnlhckao123 发表于 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的回答!谢谢!
即使在人大经济论坛这个网络世界,我仍以真诚为基础与我的好友进行交往!

7
lnlhckao123 发表于 2010-12-12 19:42:17
谢谢decisiontree!不过你只是回答了我的第一个问题,我还想请教一下,两条曲线交叉点的各自两部分应该怎样两两比较!还有再想请教你怎样知道两条ROC曲线是否相交以及它的交叉点!谢谢!
即使在人大经济论坛这个网络世界,我仍以真诚为基础与我的好友进行交往!

8
linana201 发表于 2014-4-5 10:10:15
请问您最后找到方法了吗?

9
linyu6 发表于 2019-4-22 11:11:58 来自手机
可使用R中pAUC包中的roc.test,可设置参数partial.auc

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-5 20:44