科研星球

Stata教程:ROC曲线下面积的比较

一、相同人群不同诊断方法的ROC比较

假设某医生要比较两种诊断方法的总体准确性大小,该医生使用两种诊断方法分别对同一群患者进行了测量。患者的真实状态已知。


640.png


mod1代表诊断方法1测量结果,mod2代表诊断方法2测量结果,取值越大说明得病的可能性越大(本例中为有序多分类变量,赋值1-6。实际情况也可以是连续变量)。status代表患者真实的状态,0为正常,1为异常。


在stata中输入命令:

roccomp status mod1 mod2, graph summary


命令roccomp(比较ROC曲线下面积)后第一个变量应该代表患者的真实状态,后面的变量为待评价的诊断方法,可以为多个。


结果如下:


下载 (2).jpeg

图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图:


下载.jpeg

图2. 相同样本不同诊断方法的ROC

二、不同人群不同诊断方法的ROC比较

假设上例中,诊断方法1测量结果来自样本1,诊断方法2测量结果来自样本2,测量结果与上例相同。


下载 (1).jpeg


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]省略。


结果如下:


640 (1).png

图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的不同取值代表不同的诊断方法。


相关推荐:
没有账号?