八、使用「rms」得到 Resampling calibration Validation 指標

在「rms package」中,只提供 k-fold bootstrap 兩種驗證模式的方式,首先我們先來看 bootstrap validation 的指令非常的簡單,首先先固定種子數,否則每一次重複抽樣的樣本組合都會不一樣,於是就會得到不一樣的結果。

                  欲驗證的是 fit2 這個物件,亦即包含「Proteinuria」的完整模型;B=2000 代表一共要 2000 bootstrap samples。除非是樣本數很大(例如數萬甚至數十萬),否則建議 bootstrap samples 設至少一千次。

 

1.jpg.

 

下圖中有幾個欄位,「index.orig」是原始樣本的結果,「training」是 2000 bootstrap samples 的不受限制結果的平均;「test」則是2000 bootstrap samples 的受限制結果的平均,因此 test 都會比 training 的數據來得差。「optimism」則是 training test 的數字,代表如果要將原本結果推論到其他族群時,在評估模式表現時的所下修的幅度;「index.corrected」則是 index.orig optimism,代表削弱(shrinkage)模型表現後,或是說考慮了外推性的程度後,實際上模式的真正表現。

以下有幾個指標,在此稍做解釋:

  • Dxy

(1+Dxy)/ 2 就是 c-statisticsAUC),以本例的「index.corrected」而言,AUC 等於 (1+0.6472)/2 = 0.8236

  • R2

若是線性迴歸則是解釋力R2,在此由於是 logistic regression,所以是 Nagelkerke R平方。

  • Intercept

這項的正式名稱為「Calibration-in-the-large」,以方程式來表達則為 logit(y) = a + logit(ŷ)logit(y) 代表實際機率,logit(ŷ) 則是預測機率,a 為截距項,若 a 不為零則代表「實際值與預測值之間存在著差異」。此數值為負代表該預測模式高估了事件機率,若為正則該預測模式低估了事件機率,在本例中則為 -0.0573

  • Slope

此項稱為 Calibration slope,以方程式來表達則為 logit(y) = a + b*logit(ŷ)b 代表預測值對實際值的迴歸斜率,數值為「1」的話代表模式表現正常;若 >1 則代表模式的預測值有系統地低估的情形;若 0 < b <1 則是代表模式預測值在低風險時有低估情形,但卻又在高風險時有高估情形。

通常 0 < b <1 代表的是模式有過度契合(over-fitting)的問題,以本例來看修正過後的 b 0.9132

  • Emax

此指標又稱為 unreliability 指標,可用來評估 over-fitting 的程度,數值若是 0 則代表模式沒有過度契合的問題,在本例中修正後數字是 0.03

  • D

此為「coefficient of discrimination」,其實就是 Y=1 的人平均預測機率減 Y=0 的的人平均預測機率。此數字越大越好,但沒有絕對的閾值。此數據其實就是在使用「PredictABEL」的「plotDiscriminationBox」指令時的結果。

  • U

也稱為 unreliability index lack of calibration,這是一個綜合 calibration intercept and calibration slope 的指標,評估整個 calibration curve 距離完美的(0, 1)有多遠,理想值是 0

  • Q

Total quality,其實就是上述的 D – Ucoefficient of discrimination unreliability index),數字越大越好。

  • B

Brier’s score,這是另外一種評估預測機率與實際機率之間是否存在差異的指標,只是改為平方項。此數值範圍為 0 to 1,數字越小代表模式的預測越準確。

  • g gp

            g-index gp 是利用 Gini’s 方法所計算的實際值與預測值之間的差異。

 

2.jpg

 

接著來看 k-fold validation 的指令,「xval」後面的數字代表要將樣本切成幾份,此數字通常是 3-10 之間。值得注意的是後面也有一個「B」,也是代表 bootstrap sample,這是因為如果只有執行一次將資料等分成十份的動作,有可能會「運氣很好」得到一個結果很好的樣本組合,反之也可能「運氣很差」得到結果很差的樣本組合。

                  因此不能只依賴「只有執行一次將資料等分成十份的動作」,所以這邊下的「B=40」的指令是表示要做 40 次將資料等分成十份的動作。40 次是 rms package 的預設,但注意當次數設到很大時,得到的結果會等於 leave-one-out

 

3.jpg

 

以下得到的指標與之前都一樣,只是注意最後一欄的「n」是「將資料等分成十份的動作」要重複幾次。

 

4.jpg

 

最後則是 resampling calibration,在 rms package中只提供 bootstrap 法,指令非常的簡單,先創造「cal」這個物件,最後再將其繪製。

 

5.jpg

 

下圖X軸是預測機率,Y軸是實際機率,對角的虛線代表完美的 calibration curve,「Apparent」是指原本模式的 calibration curve,「Bias-corrected」則是經過兩千次 bootstrap 修正後的 calibration curve

若實際線在理想線的下方,則代表模式高估了風險;若實際線在理想線的上方,則代表模式低估了風險。以本例而言,在預測機率最低的左側(0-0.15左右)模式會高估發生機率,在預測機率 0.2 to 0.55 左右模式會低估發生機率,但當預測機率 >0.6 時模式又會高估發生機率。因此綜合來看,無論是原始樣本的結果(apparent)或 bootstrap 修正後的結果(bias-corrected),本預測模型(fit-2)的 calibration 都不能說是很理想。

 

6.jpg

 

九、參考文獻

1.      Harrell Jr FE. Regression modeling strategies: with applications to linear models, logistic and ordinal regression, and survival analysis. Springer; 2015.

2.      Steyerberg EW. Clinical prediction models-a practical approach to development, validation and updating. Springer; 2009.

3.      Steyerberg EW, Vergouwe Y. Towards better clinical prediction models: seven steps for development and an ABCD for validation. European heart journal. 2014;35(29):1925-1931.

4.      Steyerberg EW, Vickers AJ, Cook NR, et al. Assessing the performance of prediction models: a framework for some traditional and novel measures. Epidemiology (Cambridge, Mass). 2010;21(1):128.

 

(全文結束)

 

arrow
arrow

    晨晰部落格新站 發表在 痞客邦 留言(0) 人氣()