基于实例与MATLAB的ROC曲线绘制比较研究

2010-01-29 07:19石昊苏
电子设计工程 2010年9期
关键词:误诊率敏感度绘制

石昊苏

(1.西北政法大学 计算机与信息管理系,陕西 西安 710063;2.西安科技大学 经管学院,陕西 西安 710054)

目前,随着信息化社会的不断发展,非计算机专业人员的计算机应用能力也在不断提高,计算机作为辅助工具已经渗透到各行各业。例如,医生检查完病人,诊断医师对检查资料进行判读时,经常使用ROC曲线作为判读的参考;临床化学家利用ROC曲线对观察临床实验室诊断试验的精确度进行评价、比较和报告等;物种保护专家利用ROC曲线评价多种模型的预测效果和ROC曲线用于个人信用评分已成为当今研究物种的热点问题等等。因此如何依据ROC曲线的概念,利用计算机完成ROC曲线的绘制,是进行正确判断的前提。考虑如上问题,文章简要地叙述了ROC曲线的基本知识,以阈值法去除信号数据中的噪声为例,详细地讲解了Excel和MATLAB编程下绘制ROC曲线的过程,通过ROC曲线的判断,得到最佳合理阈值对信号数据进行去噪。

1 ROC曲线的基本知识

在影像学检查中,医生会使用各种技术来检查病人,但是在诊断医师对检查资料进行判读时,却往往不能将患者与正常人完全分开,一般都存在一定程度的漏诊与误诊。所以采用应用判断矩阵的方法来表示诊断的结果,如表1所示,共有 4 种可能:真阳性(true positive)、真阴性(true negative)、假阳性(false positive)和假阴性(false negative)。真阳性率也叫敏感度(sensitivity),表示在确诊为有病者中检查为阳性者所占的比例 a/(a+c)×100%;真阴性率也叫特异度(specificity),表示在确诊为正常人中检查为阴性者所占的比例d/(b+d)×100%;假阳性率为误诊率,是确诊为正常人检查为阳性者所占的比例b/(b+d)×100%;假阴性率为漏诊率,是确诊为有病者中检查为阴性者所占的比例 c/(a+c)×100%[1-4]。

表1 判断矩阵示意图Tab.1 Diagram of judgment matrix

ROC(receiver operator characteristic),称为受试者工作特征曲线,又称为接收者操作特性曲线。是一种以信息检出理论为基础,广泛应用的数理统计方法[3-4]。它根据一系列不同的二分类方式(分界值或阈值),以真阳性率(敏感度)为纵坐标,假阳性率(1-特异度)为横坐标绘制的曲线。

1)4个基本概念 敏感度是把实际为真值的,判断为真值的概率;特异度是把实际为假值的,判断为假值的概率;误诊率是把实际为假值的,判断为真值的概率,其值等于1-特异度;漏诊率是把实际为真值的,判断为假值的概率。

2)ROC曲线绘制的原理 通过对判断点(cutoff point)的移动,获得多对敏感度(sensitivity)和误判率(1-特异度),以敏感度为纵轴,以误诊率为横轴,连接各点绘制ROC曲线。

ROC曲线下面积判断标准[4-6]如表2所示。

表2 ROC曲线面积判断标准Tab.2 ROC area criterion

2 ROC曲线的作用和优点

2.1 ROC曲线的作用

1)ROC曲线能很容易地查出任意界限值时对疾病的识别能力;

2)ROC曲线能选择最佳的诊断界限值。ROC曲线越靠近左上角,试验的准确性就越高。最靠近左上角的ROC曲线的点是错误最少的最好阈值,其假阳性和假阴性的总数最少;

3)能够比较两种或两种以上不同诊断试验对疾病识别的能力。

在对同一种疾病的两种或两种以上诊断方法进行比较时,可将各试验的ROC曲线绘制到同一坐标中,以直观地鉴别优劣,靠近左上角的ROC曲线所代表的受试者工作最准确。也可通过对计算各个试验的ROC曲线下的面积(AUC)进行比较,哪一种试验的AUC最大,则哪一种试验的诊断价值最佳。

2.2 ROC曲线的优点

1)方法简单、直观,通过图示可观察分析方法的临床准确性,并可用肉眼作出判断;

2)ROC曲线将敏感度与特异度以图示方法结合在一起,可准确反映某分析方法特异性和敏感性的关系,是试验准确性的综合代表;

3)ROC曲线不固定分类的界限值,允许中间状态存在,有利于使用者结合专业知识,权衡漏诊与误诊的影响,选择一个更佳判断点作为诊断参考值;

4)能够完成对不同的试验在共同标尺下的直观比较,ROC曲线越凸越靠近左上角,表明其诊断价值越大,有利于不同指标间的比较;

5)ROC曲线下的面积可以用来评价诊断的准确性[6]。

3 ROC曲线的绘制

3.1 数据来源

有100个样本数据文件test1.xls,其来源为Springer编写的《Pattern Recognition-Concepts,Methods and Applications》的数据集datases文件signalnoise.xls,其中选取要使用的2列数据signal,noisel+signal存入test1.xls文件中。使用不同的阈值将噪声与信号分离。图1为包含有噪声的信号数据曲线。

图1 包含有噪声的随机信号数据曲线Fig.1 Curves of random signal data with noise

3.2 实验步骤

3.2.1 ROC曲线的绘制方法1

利用Excel软件的计算功能。打开数据test1.xls,在Excel中取不同的阈值,得到数对敏感度和特异度,如表3所示,然后在MATLAB下画图,得到ROC曲线,如图2所示。

表3 100个信号值在不同的阈值下的敏感度和特异度Tab.3 Sensitivity and specificity of 100 signal values at different thresholds

图2 不同阈值下的ROC曲线Fig.2 ROC curves at different thresholds

3.2.2 ROC曲线的绘制方法2

利用MATLAB软件下的直方图,取不同的阈值,得到数对敏感度和特异度,然后以敏感度为纵轴,1-特异度为横轴,在MATLAB下画图,得到ROC曲线。图3,图4分别为信号数据,噪声信号数据的直方图,其中x=-0.1:0.2:20,Signal,NoiseS分别为test0.xls中的signal数据,signal+noise数据。

图 3 信号数据直方图 hist(signal,x)Fig.3 Signal data histogram hist(signal,x)

图4 带有噪声的信号数据直方图hist(NoiseS,x)Fig.4 Signal data histogram with noise hist(NoiseS,x)

表4 取不同的阈值试验所得到的个数Tab.4 Numbers of data at different thresholds test

3.2.3 方法2计算某阈值下的敏感度和特异度

例如:第2次实验时,阈值取为0.2。对于signal数据,大于阈值0.2时为信号,其实际也确为信号,所以它的敏感度(真阳性率)为:(大于阈值0.2时的所有信号数/signal总数),也等于:1-(小于等于阈值0.2时的所有信号个数/signal的总数);对于Noise数据,大于阈值0.2时为信号,但实际确为噪声,所以它的误诊率(假阳性率)为:(大于阈值0.2时的所有信号个数/Noise的总数),也等于:1-(小于等于阈值0.2时的所有个数/Noise的总数)。特异度=1-误诊率。

3.2.4 方法2中的部分代码与ROC曲线图

方法2中的部分代码如下:

%signal数据,NoiseSignal数据依对应x值分区的频数累计值分别存入a,b数组

[a]=hist(signal,x);[b]=hist(NoiseS,x) ;

aa=cumsum(a);%aa是 a 的元素累加和

bb=cumsum(b);%bb是 b 的元素累加和

ya=1-aa/aa(Len);%数组ya为真阳性百分比值(敏感度)

xb=1-(bb-aa)/(bb(Len)-aa(Len));%数组 xb 为假阳性百分比值(误诊率)

plot(xb ,ya ,‘ok-’);%以数组 xb,ya为坐标,以字符“o”画出数据点,黑色线连接

xlabel(‘1- 特异性(%)’);%用‘1- 特异性(%) ’标记x轴

ylabel(‘灵敏度(%) ’);%用‘灵敏度(%)’标记 y轴title(‘ROC 曲线图’);

q=-trapz(xb,ya);%求 ROC 曲线下的面积 AUC,(最大为1)

图5为MATLAB编程生成ROC曲线。

4 结束语

由于ROC评价法的应用研究越来越多,但是ROC曲线又是以医师主观判断为基础的评价方法,即使相同的对象在相同条件下被评价,尚不能保证评价结果重现,因此在比较由评价结果得到的ROC曲线时,有必要进行统计学检验。而且由于现有的几种算法存在不足,使得其广泛应用受到限制,因此有待进一步开发新的ROC评价计算方法,但是只要根据ROC的概念和计算方法,应用MATLAB编程开发绘制方法还是比较方便和容易的。

图5 MATLAB编程生成ROC曲线Fig.5 Drawing ROC curve with MATLAB

[1]卢传友,柳澄,秦维昌.ROC评价法在临床诊断中的应用价值[J].医学影像学杂志,2004,14(9):757-759.LU Chuan-you,LIU Cheng,QIN Wei-chang.Value of application of ROC evaluation in clinical diagnosis[J].Journal of Medical Imaging,2004,14(9):757-759.

[2]杨钧,马大庆,高培毅,等.ROC方法及其在放射学中的应用[J].中国医学影像技术,2000,16(5):407-409.YANG Jun,MA Da-qing,GAO Pei-yi,et al.ROC method and its application in radiology[J].Chinese Journal of Medical Imaging Technology,2000,16(5):407-409.

[3]王键,袁聿德.ROC解析评价放射影像质量的进展[J].泰山医学院学报,2001(2):166-168.WANG Jian,YUAN Yu-de.ROC analysis evaluation of the progress of radiation image quality[J].Journal of Taishan Medical College,2001(2):166-168.

[4]韩云峰.ROC曲线下面积的计算方法 [J].齐齐哈尔医学院学报,2007(6):697-698.HAN Yun-feng.Calculating method of area under the ROC curve[J].Journal of Qiqihar Medical College,2007(6):697-698.

[5]胡明珠,李康.两种临床诊断方法效果的ROC曲线比较[J].数理医药学报,2005,18(4):293-296.HU Ming-zhu,LI Kang.Comparison of ROC curves between two clinical diagnosis methods[J].Journal of Mathematical Medicine,2005,18(4):293-296.

[6]宋花玲.ROC曲线的评价研究及应用[D].上海:第二军医大学,2006.

猜你喜欢
误诊率敏感度绘制
全体外预应力节段梁动力特性对于接缝的敏感度研究
超萌小鹿课程表
乌鲁木齐市医疗机构丙型肝炎病例诊断及报告质量分析
以胸痛为首发的带状疱疹误诊为心绞痛35例分析
电视台记者新闻敏感度培养策略
放学后
X线平片和CT检查诊断肋骨骨折的临床效果和对比分析
在京韩国留学生跨文化敏感度实证研究
Diodes高性能汽车霍尔效应闭锁提供多种敏感度选择
在转变中绘制新蓝图