如何在沒有分箱數據的情況下為生存數據製作校準圖?
要繪製從 Cox 模型估計的生存概率的校準圖,可以將估計的風險分成幾組,計算組內的平均風險,然後將其與 Kaplan-Meier 估計值進行比較。什麼是不需要分箱的替代方法?實現這種技術需要哪些具體步驟,背後的邏輯是什麼?在這個問題中存在一些討論。
校準 Cox 生存模型的一種直接方法是使用R 中的包
calibrate
提供的功能,如您鏈接的頁面中所示。該軟件包為 Cox 模型提供了一種方法,該方法旨在與它為多種類型的回歸模型提供的校準和驗證方法一起工作。rms
cph
引用手冊頁:“[
calibrate
u] 使用自舉或交叉驗證來獲得預測值與觀察值的偏差校正(過度擬合校正)估計。” 然而,模型中的默認cmethod="hare"
設置不是使用合併的 Kaplan-Meier 估計來提供“觀察到的”值,而是使用回歸樣條插值估計,該估計允許非比例風險和非線性,同時考慮到審查。觀察數據的這種自適應建模允許針對特定生存時間進行連續校準圖。本大綱提供了有關 HARE 方法的更多詳細信息,並參考了原始論文。(如果您在調用中設置,您將與合併的 Kaplan-Meier 估計進行比較。)calibrate``cph``cmethod="KM"``calibrate
在您執行此操作之前,請務必閱讀手冊頁以確保您生成的
cph
模型具有允許使用這些功能的正確設置,並且polspline
安裝了包以提供該hare
功能。該軟件包的作者 Frank Harrell 在回歸建模策略第二版的第 506-9 頁和他的相關課程筆記第 17 章第 18-19
rms
頁中比較了合併的 Kaplan-Meier 和連續 HARE 方法.“幕後”發生了什麼
生存分析的校準問題是,當我們試圖校準事件的概率時,觀察是事件。所以需要某種類型的插值。對於 Cox 模型,需要特定的生存時間進行分析。
考慮分箱 KM 校準。您首先通過預測概率將案例分組在一起,然後對於每組相似的預測概率,您繪製 KM 生存曲線並在所選生存時間在這些少數案例中進行插值,以獲得該組的估計“觀察到的”生存概率。
在
calibrate
用於cph
模型的方法中,您首先將所有案例中的風險作為預測變量和時間的一般函數進行插值。這個通用功能,由hare
,允許將每個預測變量和時間建模為線性樣條,並允許變量之間的成對交互(包括時間作為變量)。樣條和交互的集合提供了一組基函數,每個基函數都是預測變量和時間的函數。然後,您尋找最適合生存數據的這些基函數的組合,其中係數加權通過最大化部分似然估計的基函數,類似於 Cox 模型如何找到預測變量本身的係數。模型複雜度(例如,要包括的基函數、樣條結的數量)是通過逐步添加和刪除過程來選擇的,這在上面提到的大綱中得到了很好的解釋。該
hare
過程的結果是一個單一的函數,它提供了作為所有預測變量和時間的函數的風險,其形式通常比比例風險 Cox 模型複雜得多。我喜歡將此視為始終從所有案例之間的插值開始,以及它們的預測變量的相關值,而不是針對分箱 KM 校準方案中使用的案例子集的特定時間的插值。使用 提供的風險函數
hare
,您現在可以採用預測變量值的任意組合,並將特定時間的“預測” Cox 生存概率與 提供的“觀察到的”生存概率的插值估計進行比較hare
。(請注意,原則上,您不限於此比較的手頭案例;可以檢查預測變量值的任何合理組合。)然後,校準曲線是“觀察到的”與“預測的”生存概率的平滑圖,在所有情況下,在所需的時間。該calibrate
方法rms
對來自案例的多個自舉樣本重複此過程,以衡量結果將如何推廣到從中抽取案例的總體。如果您不僅想深入了解,還想解構引擎,這在 R 中很容易。
rms
加載包後,rms:::calibrate.cph
在命令提示符處鍵入以獲取此calibrate
方法的代碼。包裝器hare
可通過在加載包hare
時在提示符處鍵入來獲得;polspline
大部分工作由編譯函數完成,其源代碼可從CRAN獲得。