1. 程式人生 > >怎樣判斷一個診斷(風險預測)模型的好壞?

怎樣判斷一個診斷(風險預測)模型的好壞?

有一類研究看似簡單,其實水挺深的。

比如你覺得前列腺特異性抗原(PSA)用來篩查前列腺癌不準確,你收集臨床樣本做了個癌和癌旁組織的lncRNA檢測,篩選出差異表達的,建立迴歸模型,看它們對前列腺癌的預測作用,再做個ROC曲線,哎喲,AUC > 0.75,太棒了3-5分在握!

但是轉眼看別人好像也差不多嘛,對某現有診斷或風險預測方法不滿意,根據既往零散報道的風險因素收集一些臨床資料,建立迴歸模型然後ROC一下,為什麼人家能衝上四大醫刊,甚至被迫不及待寫進指南呢?僅僅因為人家有N箇中心上萬個樣本量嗎?不,你肯定沒在意另一些分析方法。

人家的診斷(預測)模型好,你的可能也不賴,但人家把它的好處說得很清楚、很有技術範呀,編輯和審稿人就喜歡這樣。

評價一個模型的好壞,不僅關乎能發多少分的文章,也關乎臨床醫生的決策。近期JAMA上的一篇文章專門討論了這個問題,我們一起來琢磨一下。

模型的區分度和校準度

一個好的預測模型應該能針對某個結局,把一群人的風險高低區分開來,這就是區分度(discrimination)。它跟患者在人群中的分佈特徵有關,模型中納入的自變數(如性別、年齡、某些實驗室檢查等)如果有異質性,那麼模型的區分度就好,否則就差。

區分度一般以我們熟悉的ROC曲線下面積(AUC)來評價,或稱C統計量(C-statistics)。AUC越高,模型對高低風險人群的區分度越好。一個廣泛接受的評判標準是,AUC在0.6以下為低區分度,0.6 – 0.75 是中區分度,0.75以上為高區分度。

但一個區分度很好的模型,卻可能有著較差的校準度(calibration),或稱擬合優度(Goodness of fit)。比如它能判斷一個人發生某疾病的風險是另一個人的5倍,它判斷這兩人的風險分別為5%和1%,而實際上兩人的風險是50%和10%,那這個模型也挺離譜的,這就是校準度不好。

模型的校準度可以用Hosmer-Lemeshow檢驗(H-L檢驗),若結果得到顯著統計學意義,則表明預測值與觀測值之間(即模型和真實之間)有差異。

但H-L檢驗有其不足。有統計學差異只能提示這個模型整體上跟觀測值有差異,卻無法展示更多細節。做出校準曲線來有可能會看到這樣一種情況:

這是MAGGIC心衰風險評分量表的校準曲線,其用於評價心衰1年死亡風險。黃色曲線為模型預測值,藍色帶有誤差線的點為觀測值。可見它們前面一段低風險時吻合得不錯,而有輕微高估;但30%開始,模型預測的風險低於實際觀察值10%左右,自此拉開差距。

這個模型在外部驗證集中檢測的時候,AUC為0.77。像這種情況的模型是否毫無用處呢?

如果有其他研究表明(或行業內達成共識),風險高於20%的時候就一定要採取某種干預,那麼後面的差異其實影響不大,這都是可以在討論中Argue一下的,深入分析自己的模型的價值和適用範圍,也可圈可點。

區分度和校準度對一個模型來說都是很重要的評價,許多新開發的模型沒有得到充分的評價,就只好流散於蒼茫文獻海,泯然一滴水,後人遇到了還要辛苦甄別。有一項關於心血管系統風險預測模型研究的系統綜述發現,只有63%的模型彙報了區分度,而彙報校準度的更少,才36%。

你的模型要和別人的模型來一場PK

如果你開發的風險預測模型是為了解決一個全新的問題,展示自己好也就夠了。但更多時候是希望能改進現有的解決方案,那麼當然還要表明它比現有的好(至少某一方面),才能有發表的機會呀。

區分度比較兩者的AUC是可以的,但沒什麼細節。校準度的比較則可用赤池資訊準則(Akaike Index Criterion, AIC)或貝葉斯資訊準則(Bayesian Index Criterion, BIC),其值越低,校準度越好,但同樣沒什麼細節,可能相對較好的那個模型離真實情況還是挺遠的。但AIC和BIC見得更少了。

這裡再重點介紹一種近年來應用愈發增多的指標,聽說有的小夥伴已經遇到過審稿人要求返修做這個分析了,就是淨重新分類指數(Net Reclassification Index, NRI)

聽名字,這意思就是舊模型把一群人分為高風險和低風險,新模型會把其中幾個人挪挪窩,有的挪對了有的挪錯了,“挪對的 – 挪錯的”就是淨重分類。指數嘛,再除以總人數的百分比咯。

但還要分成兩撥來看,即觀測發生結局事件的和未發生結局事件的,因為它們分別代表假陰性和假陽性的概率。還是在一個情景中說明吧。

相加NRI(additive NRI)的值可以從200 ~ -200,即新模型完全分類正確(所有低風險的人都未發生結局事件,且所有高風險的人都發生了結局事件)為200,反之完全分類錯誤為-200。

它主要的侷限性就是沒有考慮發生與不發生事件的兩撥人在總體中的分佈情況。絕對NRI(absolute NRI)以總體為分母,則迴避了這個侷限。

相加NRI用得多一點,但其實它們各有意義,應該兼看。再看兩個例子來理解它倆的差別吧。

例1: 樣本20000人,觀察下來,發生與未發生結局事件的兩撥人各有10000。下圖綠色表示正確重新分類,粉色表示錯誤重新分類,灰色表示沒有重新分類。

計算下來,相加NRI為12,是正值;絕對NRI是6%,也是正值,如圖下方的表格所示。也就是說,雖然未發生結局事件的有300人被錯誤重新分類,但總體上來說還是利大於弊的。

例2:樣本是11000人,觀察下來,發生與未發生結局事件的人比例不再是1:1了,分別為1000人與10000人。

如表所示,這回相加NRI和上邊一樣是12,還是正值。如果光看相加NRI,似乎新模型還是個好模型。但看絕對NRI,原來是個負值。

再看看細節,新模型對發生了結局事件的人做了更好的重分類,可遺憾的是,這撥人所佔比例更小;而對於未發生結局事件的人,其重分類效果並不好,這部分人佔的比例又比較大,最終絕對NRI是負的,暴露了新模型的侷限性。

下面是一個研究中的真實案例,情況跟上邊的例2差不多。評價術後發生心梗或心源性死亡的風險,原來有一個評分量表(Revised Cardiac Risk Index, RCRI),此為舊模型。研究者想看看加上冠脈造影(CCTA)能不能更好地預測風險,即CCTA + RCRI為新模型。

觀察下來,結局發生與不發生在總體中的分佈為7.7% : 92.3%,統計重新分類的情況,計算兩個NRI,出現了相加NRI為正值、絕對NRI為負值的情況。

發生這種情況,又要拋棄新模型咯?粗看或許的是,但其實還有另一個討論思路,這個思路在許多研究中都適用,就是假陰性與假陽性哪個後果更嚴重。

發生結局事件的人,當初被錯誤地分到低風險組,就是假陰性,讓病人和醫生都放鬆警惕,可能錯過了及時干預的機會。未發生結局事件的人,當初被錯誤地分到高風險組,就是假陽性,讓人提心吊膽草木皆兵,可能過度干預造成額外的負擔。

如果結局事件挺嚴重的,比如本例中的心梗或心源性死亡,就算風險低我也想要極力避免,要干預,那麼假陽性較多的模型也有其價值。如果結局事件不那麼嚴重,或者即使發生了還有較好的補救方案,那麼當初測試時它低估了我的風險我也不是太介意,假陰性多一點的模型也能接受。

總之,如果你的分析方法能看到更多細節,也就給了你更多更深入分析討論的機會,為自己的研究成果找到亮點。

關於假陰性與假陽性的權衡,還有其他指標,比如淨受益率,可以做決策曲線來分析。這個我們之前有過介紹,這裡就不多說了,自己來複習→_→《ROC曲線老了,快來圍觀新晉小生DCA曲線!》

參考文獻:Alba, A. C. et al. Discrimination and Calibration of Clinical Prediction Models: Users’ Guides to the Medical Literature. JAMA 318, 1377–1384 (2017).