石昊蘇
(1.西北政法大學(xué) 計算機與信息管理系,陜西 西安 710063;2.西安科技大學(xué) 經(jīng)管學(xué)院,陜西 西安 710054)
目前,隨著信息化社會的不斷發(fā)展,非計算機專業(yè)人員的計算機應(yīng)用能力也在不斷提高,計算機作為輔助工具已經(jīng)滲透到各行各業(yè)。例如,醫(yī)生檢查完病人,診斷醫(yī)師對檢查資料進行判讀時,經(jīng)常使用ROC曲線作為判讀的參考;臨床化學(xué)家利用ROC曲線對觀察臨床實驗室診斷試驗的精確度進行評價、比較和報告等;物種保護專家利用ROC曲線評價多種模型的預(yù)測效果和ROC曲線用于個人信用評分已成為當今研究物種的熱點問題等等。因此如何依據(jù)ROC曲線的概念,利用計算機完成ROC曲線的繪制,是進行正確判斷的前提??紤]如上問題,文章簡要地敘述了ROC曲線的基本知識,以閾值法去除信號數(shù)據(jù)中的噪聲為例,詳細地講解了Excel和MATLAB編程下繪制ROC曲線的過程,通過ROC曲線的判斷,得到最佳合理閾值對信號數(shù)據(jù)進行去噪。
在影像學(xué)檢查中,醫(yī)生會使用各種技術(shù)來檢查病人,但是在診斷醫(yī)師對檢查資料進行判讀時,卻往往不能將患者與正常人完全分開,一般都存在一定程度的漏診與誤診。所以采用應(yīng)用判斷矩陣的方法來表示診斷的結(jié)果,如表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),稱為受試者工作特征曲線,又稱為接收者操作特性曲線。是一種以信息檢出理論為基礎(chǔ),廣泛應(yīng)用的數(shù)理統(tǒng)計方法[3-4]。它根據(jù)一系列不同的二分類方式(分界值或閾值),以真陽性率(敏感度)為縱坐標,假陽性率(1-特異度)為橫坐標繪制的曲線。
1)4個基本概念 敏感度是把實際為真值的,判斷為真值的概率;特異度是把實際為假值的,判斷為假值的概率;誤診率是把實際為假值的,判斷為真值的概率,其值等于1-特異度;漏診率是把實際為真值的,判斷為假值的概率。
2)ROC曲線繪制的原理 通過對判斷點(cutoff point)的移動,獲得多對敏感度(sensitivity)和誤判率(1-特異度),以敏感度為縱軸,以誤診率為橫軸,連接各點繪制ROC曲線。
ROC曲線下面積判斷標準[4-6]如表2所示。
表2 ROC曲線面積判斷標準Tab.2 ROC area criterion
1)ROC曲線能很容易地查出任意界限值時對疾病的識別能力;
2)ROC曲線能選擇最佳的診斷界限值。ROC曲線越靠近左上角,試驗的準確性就越高。最靠近左上角的ROC曲線的點是錯誤最少的最好閾值,其假陽性和假陰性的總數(shù)最少;
3)能夠比較兩種或兩種以上不同診斷試驗對疾病識別的能力。
在對同一種疾病的兩種或兩種以上診斷方法進行比較時,可將各試驗的ROC曲線繪制到同一坐標中,以直觀地鑒別優(yōu)劣,靠近左上角的ROC曲線所代表的受試者工作最準確。也可通過對計算各個試驗的ROC曲線下的面積(AUC)進行比較,哪一種試驗的AUC最大,則哪一種試驗的診斷價值最佳。
1)方法簡單、直觀,通過圖示可觀察分析方法的臨床準確性,并可用肉眼作出判斷;
2)ROC曲線將敏感度與特異度以圖示方法結(jié)合在一起,可準確反映某分析方法特異性和敏感性的關(guān)系,是試驗準確性的綜合代表;
3)ROC曲線不固定分類的界限值,允許中間狀態(tài)存在,有利于使用者結(jié)合專業(yè)知識,權(quán)衡漏診與誤診的影響,選擇一個更佳判斷點作為診斷參考值;
4)能夠完成對不同的試驗在共同標尺下的直觀比較,ROC曲線越凸越靠近左上角,表明其診斷價值越大,有利于不同指標間的比較;
5)ROC曲線下的面積可以用來評價診斷的準確性[6]。
有100個樣本數(shù)據(jù)文件test1.xls,其來源為Springer編寫的《Pattern Recognition-Concepts,Methods and Applications》的數(shù)據(jù)集datases文件signalnoise.xls,其中選取要使用的2列數(shù)據(jù)signal,noisel+signal存入test1.xls文件中。使用不同的閾值將噪聲與信號分離。圖1為包含有噪聲的信號數(shù)據(jù)曲線。
圖1 包含有噪聲的隨機信號數(shù)據(jù)曲線Fig.1 Curves of random signal data with noise
3.2.1 ROC曲線的繪制方法1
利用Excel軟件的計算功能。打開數(shù)據(jù)test1.xls,在Excel中取不同的閾值,得到數(shù)對敏感度和特異度,如表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軟件下的直方圖,取不同的閾值,得到數(shù)對敏感度和特異度,然后以敏感度為縱軸,1-特異度為橫軸,在MATLAB下畫圖,得到ROC曲線。圖3,圖4分別為信號數(shù)據(jù),噪聲信號數(shù)據(jù)的直方圖,其中x=-0.1:0.2:20,Signal,NoiseS分別為test0.xls中的signal數(shù)據(jù),signal+noise數(shù)據(jù)。
圖 3 信號數(shù)據(jù)直方圖 hist(signal,x)Fig.3 Signal data histogram hist(signal,x)
圖4 帶有噪聲的信號數(shù)據(jù)直方圖hist(NoiseS,x)Fig.4 Signal data histogram with noise hist(NoiseS,x)
表4 取不同的閾值試驗所得到的個數(shù)Tab.4 Numbers of data at different thresholds test
3.2.3 方法2計算某閾值下的敏感度和特異度
例如:第2次實驗時,閾值取為0.2。對于signal數(shù)據(jù),大于閾值0.2時為信號,其實際也確為信號,所以它的敏感度(真陽性率)為:(大于閾值0.2時的所有信號數(shù)/signal總數(shù)),也等于:1-(小于等于閾值0.2時的所有信號個數(shù)/signal的總數(shù));對于Noise數(shù)據(jù),大于閾值0.2時為信號,但實際確為噪聲,所以它的誤診率(假陽性率)為:(大于閾值0.2時的所有信號個數(shù)/Noise的總數(shù)),也等于:1-(小于等于閾值0.2時的所有個數(shù)/Noise的總數(shù))。特異度=1-誤診率。
3.2.4 方法2中的部分代碼與ROC曲線圖
方法2中的部分代碼如下:
%signal數(shù)據(jù),NoiseSignal數(shù)據(jù)依對應(yīng)x值分區(qū)的頻數(shù)累計值分別存入a,b數(shù)組
[a]=hist(signal,x);[b]=hist(NoiseS,x) ;
aa=cumsum(a);%aa是 a 的元素累加和
bb=cumsum(b);%bb是 b 的元素累加和
ya=1-aa/aa(Len);%數(shù)組ya為真陽性百分比值(敏感度)
xb=1-(bb-aa)/(bb(Len)-aa(Len));%數(shù)組 xb 為假陽性百分比值(誤診率)
plot(xb ,ya ,‘ok-’);%以數(shù)組 xb,ya為坐標,以字符“o”畫出數(shù)據(jù)點,黑色線連接
xlabel(‘1- 特異性(%)’);%用‘1- 特異性(%) ’標記x軸
ylabel(‘靈敏度(%) ’);%用‘靈敏度(%)’標記 y軸title(‘ROC 曲線圖’);
q=-trapz(xb,ya);%求 ROC 曲線下的面積 AUC,(最大為1)
圖5為MATLAB編程生成ROC曲線。
由于ROC評價法的應(yīng)用研究越來越多,但是ROC曲線又是以醫(yī)師主觀判斷為基礎(chǔ)的評價方法,即使相同的對象在相同條件下被評價,尚不能保證評價結(jié)果重現(xiàn),因此在比較由評價結(jié)果得到的ROC曲線時,有必要進行統(tǒng)計學(xué)檢驗。而且由于現(xiàn)有的幾種算法存在不足,使得其廣泛應(yīng)用受到限制,因此有待進一步開發(fā)新的ROC評價計算方法,但是只要根據(jù)ROC的概念和計算方法,應(yīng)用MATLAB編程開發(fā)繪制方法還是比較方便和容易的。
圖5 MATLAB編程生成ROC曲線Fig.5 Drawing ROC curve with MATLAB
[1]盧傳友,柳澄,秦維昌.ROC評價法在臨床診斷中的應(yīng)用價值[J].醫(yī)學(xué)影像學(xué)雜志,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方法及其在放射學(xué)中的應(yīng)用[J].中國醫(yī)學(xué)影像技術(shù),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解析評價放射影像質(zhì)量的進展[J].泰山醫(yī)學(xué)院學(xué)報,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].齊齊哈爾醫(yī)學(xué)院學(xué)報,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].數(shù)理醫(yī)藥學(xué)報,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曲線的評價研究及應(yīng)用[D].上海:第二軍醫(yī)大學(xué),2006.