R软件OptimalCutpoints包在影像诊断中的应用*
2016-12-26刘小华李绍东赵华硕
刘小华 何 鹏 徐 凯 李绍东 马 红 赵华硕
R软件OptimalCutpoints包在影像诊断中的应用*
刘小华1何 鹏2徐 凯1李绍东1马 红1赵华硕3△
目的探讨通过使用R软件OptimalCutpoints程序包来解决影像学数据中常见截断值求取结果的智能化、可视化的实现。方法通过对搜集的50例脑胶质瘤MRI数据,采用OptimalCutpoints包,根据不同目的选取常见的选择截断值的方法分别进行最佳截断值的求取,并将结果加以比较。结果OptimalCutpoints包不但实现了在不同情况下最佳截断点的智能选取,还给出了相应的可视化结果和ROC分析结果。结论OptimalCutpoints包不需要太深的统计基础,使用方便,可供选择的方法丰富,能自动实现对诊断指标的最佳截断值的选取,结果直观、形象。
诊断试验 ROC分析 最佳截断值 R软件
在临床上,医生常需要对某种可疑疾病的指标采用影像学设备,如CT、核磁共振成像(MRI)及超声波诊断等进行检查。为更好地让临床医生根据指标结果迅速做出决策,常需要将指标值定性为阳性(异常)或阴性(正常),以便对患者是否正常进行判别[1]。但不同的疾病其诊断界值的选取要求不同,如某些疾病较罕见,其治疗对“无病”患者危害较大、对“有病”患者疗效较差,需要特异度高;如果某些疾病治疗对“无病”患者危害较小、对“有病”患者疗效较好,则需要灵敏度高;而有些要求两者均衡考虑。不同的要求所进行的统计往往不同。对临床医生来讲,最佳截断点的选择和计算是一个比较常见且复杂的问题。因此,如何根据医学影像检查数据对疾病进行快速、准确地定位成为困扰临床医生的一个亟待解决的难题。
2014年10月美国生物统计学家Lopez-Raton M[2]开发了一种专门为诊断试验求取最佳截断值的R软件包OptimalCutpoints,为这类分析的实现提供了极大便捷,国内少有介绍R软件在影像诊断中应用的文献,本文以实例呈现使用R软件OptimalCutpoints程序包实现最佳截断值分析的过程,以期为广大临床医生提供参考,也为R软件的应用提供新思路。
R软件介绍及OptimalCutpoints程序包的安装
R软件是近年出现的一种免费开放式的统计编程软件,具备完整的数据处理、计算和作图功能,还可以根据使用者的需要定制扩展包以完成特定的工作[3]。用户可以从 R软件的官方网站(http://www.rproject.org)获取最新的软件及相应的统计包。本文讲解中使用的版本为R-3.2.0。在R软件安装完毕后,双击桌面的R软件图标,即可启动R的交互式窗口(R-GUI)。于命令提示符“>”后输入命令 install.packages(“OptimalCutpoints”),在弹出的对话框中选择某个镜像安装(CRAN),安装完成后可由library(“OptimalCutpoints”)命令完成加载。至此,软件及OptimalCutpoints程序安装完毕。
软件操作及数据分析
1.数据来源与加载
本文数据来源于徐州医学院附属医院影像科关于脑胶质瘤的MRI数据,其主要目的是研究4个不同的MRI参数对脑胶质瘤的鉴别诊断能力及各参数的截断值,4个指标中,除了ADC指标值越大其恶性程度越低外,其他指标值越大恶性程度越高。
在数据加载前,需要对数据进行格式排列,排列后的形式见表1。数据排列完成后,为便于R读入数据,将其转换为常见的SPSS软件读取的“.sav”格式储放在桌面并用foreign包进行数据加载,具体命令如下:
表1 导入数据的格式
install.packages(“foreign”)
library(foreign)
w <-read.spss (“C:/Users/Administrator/Desktop/MRI.sav”)#读入 spss数据格式
2.数据分析
在完成数据加载后,即可实现数据的分析。该程序包执行数据分析时,通常用到optimal.cutpoints函数进行ROC曲线面积及截断点相关计算、summary函数对数据分析完成后执行汇总及用plot函数以图形化形式呈现统计分析结果。以下将展示具体命令及相关说明。
(1)不含协变量的情况
①诊断指标越大异常概率越大的情况
以MRI诊断指标ACBF采用“Youden指数最大法”计算最佳截断点为例:
library(“OptimalCutpoints”)
>ACBFcutoff<-optimal.cutpoints(X=“ACBF”,status=“result”,tag.healthy=1,methods=“Youden”,data=w,ci.fit=TRUE,conf.level=0.95)
>summary(ACBFcutoff)
>plot(ACBFcutoff,which=c(1,3),pch=22,col=“blue”,ylim=c(0,1))
第一个命令“>ACBFcutoff”读者可以理解为将计算结果保存于 ACBFcutoff。其中,命令参数X=“ACBF”指定诊断指标变量 ACBF;status=“result”指定金标准指标;tag.healthy=1为金标准正常时的标志;methods=“Youden”表明计算截断值时采用包中最常用的方法Youden指数最大法;ci.fit=TRUE要求计算可信区间;conf.level=0.95为计算各个指标的95%可信区间。第二个命令“>summary(ACBFcutoff)”将显示相关计算结果内容,其中AUC为ROC分析的面积,cutoff为最佳截断值,Se为灵敏度,Sp为特异度,PPV为阳性预测值,NPV为阴性预测值,Optimal criterion为Youden指数原则最大值。第三个命令“>plot”为以图形化形式呈现具体结果(图1-2)。
图1 ABCF指标的ROC曲线
图2 ABCF指标的诊断界值和Youden指数值
表2 不同原则求取最佳截断点常见方法结果比较
②诊断指标越大,异常概率越小的情况
由于ADC指标反映的是其值越大恶性程度越低,如果直接采取上面的代码进行统计分析,得到的结果可能刚好相反,故只需要对上述代码添加条件设置,具体代码如下:
>ADCcutoff<-optimal.cutpoints(X=“ADC”,status=“result”,tag.healthy=1,direction=“>”,methods=“Youden”,data=w,ci.fit=TRUE,conf.level=0.95)
其中direction=“>”表明该指标大于截断值为正常,默认情况为大于该截断值为异常,其他参数命令意义同上。
(2)含协变量的情况
在临床实践中,不仅要考虑到该诊断试验的固有正确度,还应该考虑到病人的性别、患病率、病情严重程度或解剖部位等对诊断指标的影响[4],故在此以病人性别为例加以说明,来探讨性别对诊断准确度的影响,实例如下:
>ACBFcutoff_gender<-optimal.cutpoints(X=“ACBF”,status=“result”,tag.healthy=1,methods=“Youden”,data=w,categorical.cov=“gender”,ci.fit=TRUE,conf.level=0.95)
>plot(ACBFcutoff_gender,which=c(1,3),pch=22,col=“red”,ylim=c(0,1))
其中第一条命令中categorical.cov=“gender”说明考虑协变量性别的影响。其他命令同上文,详细结果见图3~6。
图3 男性ABCF指标的ROC曲线
图4 女性ABCF指标的ROC曲线
图5 男性ABCF指标的诊断界值和Youden指数值
图6 女性ABCF指标的诊断界值和Youden指数值
从图中我们可以清楚地看出,不同性别的诊断指标截断值不同,ABCF的诊断能力在女性中强于男性,ABCF的截断值男性要大于女性。
讨 论
科学研究中,进行ROC曲线分析的软件非常多,除常见的SPSS软件外,还有SAS软件、ROC曲线分析专用工具如ROCKIT、ROCPWR等。但是他们要么不能很好地直接求取截断点,要么就是选取截断点的规则较单一或需要繁琐的编程[5]。
随着R软件OptimalCutpoints程序包的发布,使得繁琐的计算变得简单,结果表达更加形象、直观,而且它综合考虑到各个学科的应用可能,提供截断点选择参考原则的方法多达34种。
本文只选取了不同原则常见的几种方法加以说明,由表2可知,在诊断价值(AUC值)相等的情况下,根据不同目的选取的方法不同,得出的最佳截断值亦有所差异。临床医生可以综合考虑疾病的发病概率、特征和治疗效果以及成本来选择合适的方法进行计算。
尽管如此,OptimalCutpoints程序包还有许多需要完善的地方,最大的缺陷是没有集合不同指标ROC间的AUC面积比较功能。要实现ROC曲线面积间的差异比较,还需要特调用 Daim包、ROCR包或 pROC包[6]。
本文结合实例,主要对R软件中实现最佳截断点分析时相关的函数调用及绘图功能作简要的说明,涉及更多的选项请参照R的帮助文档。
[1]宇传华.ROC分析方法及其在医学研究中的应用.第四军医大学,2000.
[2] López-Ratón M,Rodríguez-09 lvarez MX,Cadarso-Suárez C,et al.Optimal Cutpoints:An R Package for Selecting Optimal Cutpoints in Diagnostic Tests.Journal of Statistical Software,2014,61(8).
[3]纪威,张涛,崔军.R软件在慢性病监测数据清洗中的应用.中国卫生统计,2014,31(4):718-719.
[4]Zhou XH,Obuchowski NA,M cclish DK.Statistical Methods in Diagnostic Medicine.W iley&Sons,2010.
[5]Gonen M.Analyzing Receiver Operating Characteristic Curves with SAS.American Statistician,2008,62(4):1036-1036.
[6]Sing T.ROCR:visualizing classifier performance in R.Bioinformatics,2005,21(20):3940-3941.
江苏高校哲学社会科学研究基金项目(No:2014SJD440)
1.徐州医学院附属医院影像科(221002)
2.上海常笑健康管理咨询有限公司
3.徐州医学院流行病与卫生统计教研室
△通信作者:赵华硕.E-mail:hszhao@xzmc.edu.cn
(责任编辑:郭海强)