Stata教程:ROC曲线下面积的比较
一、相同人群不同诊断方法的ROC比较
假设某医生要比较两种诊断方法的总体准确性大小,该医生使用两种诊断方法分别对同一群患者进行了测量。患者的真实状态已知。
mod1代表诊断方法1测量结果,mod2代表诊断方法2测量结果,取值越大说明得病的可能性越大(本例中为有序多分类变量,赋值1-6。实际情况也可以是连续变量)。status代表患者真实的状态,0为正常,1为异常。
在stata中输入命令:
roccomp status mod1 mod2, graph summary
命令roccomp(比较ROC曲线下面积)后第一个变量应该代表患者的真实状态,后面的变量为待评价的诊断方法,可以为多个。
结果如下:
图1. 相同样本不同诊断方法的ROC面积检验
其中诊断方法1 ROC面积为0.8828,95%CI为(0.8207-0.9450),诊断方法2的ROC面积为0.9302,95%CI为(0.8801-0.9804),二者差异性检验P=0.1282,无统计学差异。
另外stata还给出ROC图:
图2. 相同样本不同诊断方法的ROC
二、不同人群不同诊断方法的ROC比较
假设上例中,诊断方法1测量结果来自样本1,诊断方法2测量结果来自样本2,测量结果与上例相同。
mod代表诊断方法,取值1/2分别代表诊断方法1和诊断方法2,该两种诊断方法分别应用于不同的样本。status代表真实患病状态,1代表异常,0代表正常。rating代表两个诊断方法的评分,评分越高患病的可能性越高(本例中为有序多分类变量,赋值1-6。实际情况也可以是连续变量)。pop代表人数,对于第一行,表示诊断方法1评分为1且患者真实状态为正常的人数共有12人。
stata中输入以下命令:
roccomp status rating [fw=pop], by(mod) graph summary
fw=pop告诉软件pop变量代表的是人数。代表诊断方法的变量要放入by后的括号中。如果数据类型并没有pop变量,即一行代表一个人,那么可以将[fw=pop]省略。
结果如下:
图3. 不同样本不同诊断方法的ROC面积检验
诊断方法1的ROC面积为0.8828,95%CI为(0.8207-0.9450),诊断方法2的ROC面积为0.9302,95%CI为(0.8801-0.9804),二者差异性检验P=0.2447,无统计学差异。由于该例子的数据与上面例子一样,因此两个ROC的面积和95%CI相同,不同的是该例中P值变大了,这是因为独立样本的变异比同一个样本的变异要大。
图与上例中一致。
以上两个例子的区别主要在于数据格式。若诊断方法的测量结果来自同一样本,那么测量数据应该平行排列,分别用mod1和mod2两个变量表示,如果测量数据来自不同的样本,那么数据应该垂直排列,用mod的不同取值代表不同的诊断方法。
(如果你想使用文中数据进行练习,请随时给小咖(微信:xys2016ykf)发消息,小咖将原始数据发给你。)
ROC曲线相关阅读
赶快关注医咖会吧!
有临床研究设计或统计学方面的难题?快加小咖个人微信(xys2016ykf),加入医咖会统计讨论群,和小伙伴们一起交流学习吧。我们诚邀各位小伙伴加入我们,一起创作有价值的内容,将知识共享给更多人!
点击左下角“阅读原文”,看看医咖会既往推送了哪些研究设计或统计学文章。还可以到医咖会公众号下方的自定义菜单,点击“直接搜索”,查找你想了解的内容。