本文介绍基于SPSS软件实现两指标联合诊断的ROC分析,操作较为简单。
1. 背景知识
诊断试验统是临床研究的重要类别,对于诊断指标是连续型变量的诊断效能评价需要采用ROC分析。使用ROC分析评价单个连续型诊断指标实现较为方便。比如,我们现在评估类风湿因子(RF)用于诊断系统性红斑狼疮(SLE),把类风湿因子做为待评价诊断指标,把SLE的确诊结果作为参考标准或金标准(SLE的诊断往往是临床诊断,此处的金标准即是当前国际公认的SLE最权威诊断标准即可),即可做ROC分析,找到最佳Cut-off值,并可以在此Cut-off值下计算敏感度特异度等统计指标。
在临床工作中,我们遇到的问题往往比这要复杂,大多数疾病的诊断并非依靠单一诊断指标,我们往往需要检测不同指标后才能做出诊断。比如,对于SLE的诊断,我们需要检测多个生化或免疫指标,并结合影像学检查与临床症状和体征做出最终诊断。在临床实践中,联合诊断的情况更为常见。所谓联合诊断,是一种串联形式的诊断试验设计,即多个诊断指标阳性,患者患病的可能性更高。
下面笔者提几个问题供大家思考:
1. 什么情况下才需要联合不同的诊断指标?
2. 如何确定联合多个诊断指标的诊断效能?
3. 如何评价不同诊断指标联合方式的优劣?
针对第一个问题,如果单一指标的诊断效能不高,比如ROC曲线下面积AUC低于0.8,或者即便高于0.8,但临床有更高诊断效能的需求,都可以进行联合诊断。
针对第二个问题,需要计算多个诊断指标联合的参数,一般是以参考标准的诊断结果为因变量,以带评价指标为自变量,构建Logistic回归,并计算每个对象对应的预测概率,以预测概率进行ROC分析,计算曲线下面积AUC。
针对第三个问题,比较不同联合诊断方式的ROC曲线下面积即可。
下面我们以一个模拟的案例,为大家讲解联合诊断的ROC分析统计软件实现及结果解读。
2. 案例分析
[案例 1] 本案例中有119个研究对象,均为结核疑似病例,经一系列检查后60个对象明确诊断为结核病,59个对象排除结核病。如下表1所示:testa为诊断结核的一种血清标志物,testb为另一种诊断结核病的血清标志物。拟分别评价单一指标对结核的诊断价值;两指标联合对结核病的诊断价值。数据如下:
表1. 119例疑似结核患者的检查结果。
status(1=有病;0=无病) |
testa |
testb |
0 |
7 |
276 |
0 |
16 |
526 |
1 |
25 |
794 |
0 |
2 |
142 |
0 |
1 |
175 |
1 |
13 |
513 |
1 |
51 |
938 |
0 |
9 |
134 |
1 |
27 |
247 |
0 |
5 |
146 |
…… |
…… |
…… |
1 |
47 |
1239 |
3. 基于SPSS实现ROC分析
表1中的数据整理成数据框结构,另存为.csv格式,并导入SPSS软件 (笔者所用版本为IBMSPSS v25)。数据结构如下图1与图2所示。
图1. 变量定义。
图2. 数据录入。
图3. 依次选择Analyze–Roc curve,如图设置,将“status”拉入State Variable框中,Value of State Variable框中填1,即发生终点事件。把待评价指标testa和testb拉入Test Variable框中。如图设置,点击OK。
计算结果如下表2. testa和testb的ROC曲线下面积AUC分别为0.855和0.619。下表2中分别报告了其标准误、P值、及95%可信区间。testa和testb的ROC曲线如图4所示。
表2. Area Under the Curve |
|||||
Test Result Variable(s) |
Area |
Std. Errora |
Asymptotic Sig.b |
Asymptotic 95% Confidence Interval |
|
Lower Bound |
Upper Bound |
||||
testa |
.855 |
.039 |
.000 |
.778 |
.932 |
testb |
.619 |
.053 |
.025 |
.515 |
.722 |
The test result variable(s): testa, testb has at least one tie between the positive actual state group and the negative actual state group. Statistics may be biased. |
|||||
a. Under the nonparametric assumption |
|||||
b. Null hypothesis: true area = 0.5 |
图4. tetsta和testb诊断结核病的ROC曲线。
下面我们构建联合诊断的Logistic回归模型,并计算两指标联合的预测概率,以预测概率画ROC曲线,并计算曲线下面积。SPSS操作如下图5-9所示:
图5. 在菜单栏中选择二分类Logistic回归。
图6. 如图依次将结局变量与待评价指标填入并点开Save复选框。
图7. 勾选Probabilities即可计算两指标联合的预测概率,依次点击Continue–Ok。
此时数据框中根据Logistic回归方程可根据每个对象testa和testb取值计算出结局发生的概率,此概率即综合反应了testa和testb的诊断效能,我们即可以此概率绘制ROC曲线并计算曲线下面积。
图8. 两指标联合的预测概率PRE_1。
图9. 依次选择Analyze–Roc curve,如图设置,将“status”拉入State Variable框中,Value of State Variable框中填1,即发生终点事件。把待评价指标testa、testb和PRE_1拉入Test Variable框中。如图设置,点击OK。
计算结果如下表3. testa、testb和两指标联合诊断的ROC曲线下面积AUC分别为0.855、0.619和0.898。下表3中分别报告了其标准误、P值、及95%可信区间。Testa、testb和两指标联合诊断的的ROC曲线如图11所示。
表3. Area Under the Curve |
|||||
Test Result Variable(s) |
Area |
Std. Errora |
Asymptotic Sig.b |
Asymptotic 95% Confidence Interval |
|
Lower Bound |
Upper Bound |
||||
testa |
.855 |
.039 |
.000 |
.778 |
.932 |
testb |
.619 |
.053 |
.025 |
.515 |
.722 |
Predicted probability |
.898 |
.033 |
.000 |
.834 |
.962 |
The test result variable(s): testa, testb has at least one tie between the positive actual state group and the negative actual state group. Statistics may be biased. |
|||||
a. Under the nonparametric assumption |
|||||
b. Null hypothesis: true area = 0.5 |
图10. testa、testb和两指标联合诊断的ROC曲线。
4. 结果与讨论
本文详细介绍了基于SPSS软件实现两指标联合诊断的ROC分析。这种联合本质上是计算Logistic回归模型的C-Statistics。我们通过图11可以很直观的看到哪一中模式的ROC曲线下面积AUC最大,但如何对不同的ROC曲线进行比较并计算P值呢?。在SPSS软件中报告各诊断方法的AUC及标准误,读者可采用下述公式直接计算各两指标比较的Z值,即可返回对应的P值。公式如下:
5. 参考文献
[1].周支瑞, 胡志德. 聪明统计学. 长沙:中南大学出版社, 2016.
[2]. 周支瑞, 胡志德. 疯狂统计学. 长沙:中南大学出版社, 2018.
[3]. 胡志德, 周支瑞. 傻瓜统计学. 长沙:中南大学出版社, 2015.