本文3294字〡14圖〡預計閱讀20分鐘
在前面學習了logistic回歸的10個基本問題、樣本量估算、啞變量、OR值、多重共線、變量篩選、混雜因素校正以及條件logistic回歸、多分類有序(無序)logistic回歸在SPSS中的操作,今天主要學習logistic回歸+ROC曲線實現多指標聯合診斷應用。
ROC(Receiver operating characteristic curves)曲線作為評價診斷信息和診斷決策的方法,已經被廣泛應用。為了提高臨床診斷的靈敏性和特異性,常採用多指標聯合診斷,可分為串聯與並聯診斷實驗。
串聯要求所有指標陽性才可以判斷結果為陽性,並聯只要有一個指標陽性就可以判斷為陽性,聯合診斷要從臨床和經濟效率兩方面考慮,可以將logistic回歸模型用於多指標聯合診斷方法的篩選。
基本步驟為:將聯合診斷指標作為自變量,金標準結果為因變量,擬合logistic回歸模型,計算預測概率,將預測概率作為ROC曲線的檢驗變量,金標準結果作為狀態變量,繪製ROC曲線,比較AUC(Area under curve),分析多指標聯合診斷的價值。
首先學習兩個例子:作者採用CEA、CA-153、CA19-9、CA72-4四種腫瘤標誌物建立ROC曲線,而後將4種標誌物作為自變量擬合logistic回歸模型,以預測概率Y 為自變量建立ROC曲線,可以看出Y 的AUC要高於前四種腫瘤標誌物,如下所示:
檢驗醫學與臨床, 2017, 014(005):604-606.
作者分別用淋巴結CT 評分、影像組學(綜合了CT評分等資料)為檢驗變量,進展期胃癌淋巴結轉移情況為狀態變量,進行ROC曲線分析,訓練集、測試集的聯合預測模型AUC均高於前者,如下所示:
中華醫學雜誌, 2020, 100(21):1617-1622.
某醫生收集了800例肺癌篩查資料,其中602例確診(均經過病理診斷),變量Y 為病理診斷結果(1陽性、0陰性)。同時,均進行了以下實驗室指標檢查:癌胚抗原( CEA) 、 細胞角蛋白( CYFRA) 、糖類抗原( CA-125)檢測 ,欲研究實驗室檢查指標聯合診斷肺癌的價值,數據如下所示:
▷肺癌實驗室檢查數據集
先看下CEA、CYFRA、CA125的ROC曲線分析情況,【分析】➱【ROC曲線】,如下所示:
▷ROC曲線分析
【檢驗變量】➱選入檢查指標,先用滑鼠選中CEA,然後按住Shift鍵,滑鼠再指向CA125,可以一次性選中變量。【狀態變量】➱Y,狀態變量值設為1(陽性結果,如果設為0,ROC曲線會偏向右下角),如下所示:
▷ROC曲線設置
ROC曲線和AUC結果可知:3個單指標的AUC分別為0.637、0.709、0.652,且P值均小於0.05,如下所示:
▷單指標ROC曲線和AUC結果
【分析】➱【回歸】➱【二元logistic】,如下所示:
【因變量】➱Y,【協變量】➱選入檢查指標,【保存】➱選保存預測概率值,如下所示:▷二元logistic回歸參數設置
在數據視圖窗口,可以看到最後一列增加了「預測概率值」 PRE_1,如下所示:
【檢驗變量】➱選入檢查指標和logistic回歸模型的預測概率,先用滑鼠選中CEA,然後按Shift,滑鼠指向預測概率,可以一次性選中變量。【狀態變量】➱Y,狀態變量值設為1(陽性結果),如下所示:
由ROC曲線和AUC結果可知:單指標和聯合診斷的AUC分別為0.637、0.709、0.652、0.788,P值均小於0.05,聯合診斷的AUC最大,初步說明聯合診斷效能更優。
由於SPSS軟體無法比較不同指標ROC曲線的AUC,下面在R語言操作。
read.table() 讀取數據,factor() 將因變量Y 轉為因子變量,通過glm() 建立logistic回歸模型,predict() 保存預測概率pre,如下所示:
lung_cancer <- read.table("clipboard", header = TRUE) # 讀取數據
lung_cancer$Y <- factor(lung_cancer$Y) #Y轉成因子變量
attach(lung_cancer) # 將數據框添加到搜索路徑
fit <- glm(Y ~ CA125 + CEA + CYFRA, data = lung_cancer_data,family = binomial()) # 擬合logistic回歸
pre <-predict(fit, newdata = lung_cancer_data, type = "response") #保存預測概率
detach(lung_cancer) # 解除數據框路徑存儲
▷數據讀取
載入pROC包,用roc() 建立ROC曲線,如下所示:
library(pROC) # 記載pROC包
roc_CA125 <- roc(lung_cancer$Y, lung_cancer$CA125) # 生成CA125的ROC曲線
roc_CEA <- roc(lung_cancer$Y, lung_cancer$CEA) # 生成CEA的ROC曲線
roc_CYFRA <- roc(lung_cancer$Y, lung_cancer$CYFRA) # 生成CYFRA的ROC曲線
roc_pre <- roc(lung_cancer$Y, pre) # 生成聯合診斷的ROC曲線
▷建立ROC曲線
> roc.test(roc_CA125, roc_CEA, method = "bootstrap") #比較roc_CA125和roc_CEA
Bootstrap test for two correlated ROC curves
data: roc_CA125 and roc_CEA
D = 0.53, boot.n = 2000, boot.stratified = 1, p-value = 0.6
alternative hypothesis: true difference in AUC is not equal to 0
sample estimates:
AUC of roc1 AUC of roc2
0.6523 0.6369
> roc.test(roc_CA125, roc_pre, method = "bootstrap") #比較roc_CA125和roc_pre
Bootstrap test for two correlated ROC curves
data: roc_CA125 and roc_pre
D = -6.4, boot.n = 2000, boot.stratified = 1, p-value = 1e-10
alternative hypothesis: true difference in AUC is not equal to 0
sample estimates:
AUC of roc1 AUC of roc2
0.6523 0.7881
▷ROC曲線比較結束語:研究始於臨床問題,最終回到臨床實踐,雖然在繪製ROC曲線和分析AUC後發現多指標聯合診斷的效能更好,但是很有必要進行AUC比較,比如一個單指標AUC為0.7503,多指標聯合診斷的AUC為0.7652,儘管後者AUC更大,但是二者AUC比較可能無統計學差異,是否採用多指標聯合診斷應該慎下結論。
作為臨床醫師,治病救人是天職,但也要考慮患者經濟負擔,多指標聯合診斷必然增加患者經濟壓力,因此,多指標聯合診斷應儘可能在臨床需求與患者經濟負擔之間尋求平衡點。
參考文獻
[1] 秦正積, 沈毅, 崔曉莉, et al. logistic回歸在疾病多指標聯合診斷中的應用[J]. 中國衛生統計, 2014, 31(001):116-117.[2] 仲崇明. Logistic回歸在多指標聯合診斷肺癌中的應用[J]. 中國衛生統計, 2016,33(6):1045-1046.[3] 陳佳, 向玲亞, 邵華僑,等. 運用Logistic回歸和ROC曲線綜合評價腫瘤標誌物對肺癌的診斷價值[J]. 檢驗醫學與臨床, 2017, 014(005):604-606.[4] 王睿, 李靖, 方夢捷,等. 基於能譜CT的影像組學術前預測進展期胃癌淋巴結轉移的價值[J]. 中華醫學雜誌, 2020, 100(21):1617-1622.微信ID:YXSJFX2018