科研星球

基于SPSS实现联合诊断ROC分析

本文介绍基于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所示。

0.jpg

图1. 变量定义。


0 (1).jpg

图2. 数据录入。


0 (2).jpg

图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

0.png

图4. tetsta和testb诊断结核病的ROC曲线。


下面我们构建联合诊断的Logistic回归模型,并计算两指标联合的预测概率,以预测概率画ROC曲线,并计算曲线下面积。SPSS操作如下图5-9所示:

0 (3).jpg

图5. 在菜单栏中选择二分类Logistic回归。


0 (5).jpg

图6. 如图依次将结局变量与待评价指标填入并点开Save复选框。


0 (6).jpg

图7. 勾选Probabilities即可计算两指标联合的预测概率,依次点击Continue--Ok。


此时数据框中根据Logistic回归方程可根据每个对象testa和testb取值计算出结局发生的概率,此概率即综合反应了testa和testb的诊断效能,我们即可以此概率绘制ROC曲线并计算曲线下面积。


0 (4).jpg

图8. 两指标联合的预测概率PRE_1。


0 (7).jpg

图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

0 (1).png

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


没有账号?