轉自個人微信公衆号【Memo_Cleon】的統計學習筆記:生存分析之Cox回歸。
随訪資料的生存分析是一個很大的題目。
從分析的因素上看,有單因素分析和多因素分析。正如“連續資料的單因素分析常用t檢驗、方差分析,對應的多因素分析是多重線性回歸”、“分類資料的單因素分析方法卡方分析,對應的多因素分析有logistic回歸”一樣,生存分析的常用單因素(或少數因素)的分析有Life Tables法、Kaplan-Meier法,對應的多因素模型則常用Cox回歸模型(Cox風險比例模型)。 從采取的分析方法上看,生存分析有非參數法(如Wilcoxon法、Log-rank法)、參數法(如Weibull回歸、lognormal回歸等)和半參數分析(Cox回歸)。 Cox回歸要求滿足比例風險假定(proportional-hazards assumption)的前提條件。所謂比例風險假定,就是假定風險比(HR,Hazard Ratio)不随時間t變化而變化。 在進行生存分析前,你最好對以下的一些概念及其意義有所了解:起始事件、失效事件(Failure Event)/終點事件(Endpoint Event)、生存時間(Survival Time)/失效時間(Failure Time)、中位生存時間(Median Survival Time)、平均生存時間(Mean Survival Time)、删失值/截尾值(censored values)、生存概率(Survival Probability)、生存率(Survival Rate)/積累生存概率/生存函數/積累生存函數(Cumulative Survival Function)、風險函數(Hazard Function)、累積風險函數……風險函數h(t)=概率密度函數f(t)/生存函數S(t),概率密度函數f(t)為累積分布函數F(t)的導數,而F(t)=1-S(t)。可參見《生存分析》。模型結構與參數釋義可參見顔虹等主編的《醫學統計學》,如下。對此不感興趣而隻關心操作和結果解讀的,可直接越過。
當前筆記用STATA演示Cox回歸操作。STATA在進行Cox回歸分析前首先需要聲明生存時間變量,另外比例風險假定是進行Cox回歸的前提條件,需要進行考察和檢驗。
示例(陳啟光等.醫學統計學第3版):探讨某腫瘤的預後,某研究機構收集了41例患者的生存時間(月份)、生存結構及影響因素。影響因素包括性别、年齡、病理分級、是否複發、PD-L1分子。變量賦值與資料如下:X1:gender; X2:age; X3:grade;X4:recur; X5:PD_L1
【1】數據錄入:略
【2】聲明時間變量 : 統計>>生存分析>>模型設定和實用工具>>聲明數據集為生存時間數據,将在[時間變量]和[失效變量]中選擇相應的變量即可。具體步驟如下:相應命令如下:
stset time, failure(status==1)
也可以不指定失效值,默認不等于0的為失效值。另外scale選項可以重新定義生存時間,如本例生存時間單位是月,可以使用scale(12)後生存時間代表的就是年啦,命令為:stset time, failure(status) scale(12)
【3】Cox回歸:統計>>生存分析>>回歸模型>>Cox比例風險模型,選入相應的自變量即可。主要添加自變量時應選擇合适的變量類型即參照水平(默認低水平為參照),如果未經步驟【2】的生存時間變量聲明,也可以在此對話框中的[生存設置]中聲明。需要說明的是,本例有序變量按連續變量處理,性别、病例分級、複發即PD-L1雖然是分類變量但都是二分類,直接按連續變量分析也不影響結果。命令為:stcox i.gender age i.grade i.recur i.PD_L1或者stcox gender age grade recur PD_L1。
結果顯示相比空白模型,納入五個變量的整體模型是有統計學意義的(LR Chi2=22.3,P=0.0005)。 主要結果中默認顯示的是風險比(HR),如果想顯示模型系數β,需要在Cox比例風險模型對話框中的[報告]選項卡中選中複選框[報告系數,而不是風險比],HR=exp(β)。根據系數可得出模型為: h(t)=h 0 (t)exp( - 0. 113 · gender + 0.365 · age-5.44 · grade+1.985 · recur+ 0. 190 · PD-L1 ) 結果顯示校正其他因素,女性相比男性、病例IV期相比III期死亡風險更低,但沒有統計學意義;而年齡每增加一個等級、複發相對不複發、PD-L1陽性相比陰性死亡風險更高(分别是1.44、7.28、1.21倍),但隻有複發與否具有統計學意義。很明顯,模型給出是強制納入了所有的變量的結果,但實際上有很多因素并不具有統計學意義,為了精簡模型,我們可能需要對模型的變量進行篩選,可以采用逐步回歸,SPSS裡面可直接在[method]中進行選擇相應的方法。STATA裡面則可借助stepwise命令,Cox逐步回歸菜單操作:
相應命令:stepwise, pr(0.1) pe(0.05) forward: stcox gender age grade recur PD_L1
說明:stepwise, pr(0.1) pe(0.05) forward : stcox (gender) (age) (grade) (recur) (PD_L1), nohr
pr(剔除标準),pe(納入标準)。逐步回歸方法:forward、backward,逐步回歸方法:lr,默認是wald法。括号内為同進同出的變量為一個回歸項,類似于SPSS裡面的Block,同一個回歸項中變量同進同出,比如同一個分類變量設置為啞變量後可以放在同一個回歸項中。nohr表示報告系數而不是風險比。
逐步回歸結果如下: 最終引入的變量是recur和age,模型: h(t)=h 0 (t)exp( 1.756 · recur+0.451 · age ) recur和age的HR分别為5.791、1.569,即是否複發與年齡是該腫瘤的死亡風險因素。固定其他因素的影響,患者腫瘤複發的死亡風險是不複發的5.791倍;固定其他因素的影響,患者年齡每增加一個等級,死亡風險增加1.569倍。有時候我們還想得到生存曲線。以指定協變量recur,繪制生存率曲線為例,操作如下:
[圖形>>生存分析圖>>生存,風險,累積風險或累積發生函數]或者[統計>>後驗估計],在打開的[後驗估計選擇器]中依次選擇:設定,診斷和拟合優度分析>>生存函數,風險函數,累積風險等圖形,點擊[開始]進入[曲線-繪制生存函數,風險函數,累積風險函數或累積發病率函數]對話框,界面操作如下:
相應命令為:stcurve, survival at1( recur=0 ) at2( recur=1 )
結果如下(你要是覺得圖片醜可以啟用圖形編輯器進行編輯):你也可以繪制Kaplan–Meier生存函數圖、Kaplan–Meier失效函數圖、Nelson-Aalen累積風險函數圖即平滑危險估計圖等,可在[統計>>生存分析>>回歸模型>>圖形] 或 [圖形>>生存分析圖] 中進行。
【4】比例風險(PH)假定檢驗:比例風險假定是Cox回歸的前提條件,可以通過計算檢驗,也可以通過圖示法。4.1計算檢驗命令:整體檢驗estat phtest;單獨檢驗每個協變量estat phtest, detail
菜單可通過以下途徑進入
①統計>>生存分析>>回歸模型>>比例風險假設檢驗;
②圖形>>生存分析圖>>stcox後比例風險假設檢驗;
③統計>>後驗估計,在打開的[後驗估計選擇器]中選擇[比例風險假定的檢驗];
點擊[開始]進入對話框[estat-後驗估計統計量],選擇[基于Schoenfeld殘差的比例風險假設檢驗(phtest)]。如想進一步檢驗每個協變量的比例風險假定,可在繼續點擊對話框[estat-後驗估計統計量]中的[選項]按鈕,在打開的對話框中選擇複選框[單獨檢驗每個協變量的比例風險假設]。
結果顯示P>0.05,滿足比例風險假設。4.2 圖示法可以通過生存函數的雙對數圖(Log-log plot of survival)與Kaplan–Meier與Cox預測的生存曲線圖(Kaplan–Meier and predicted survival plot)
stphplot plots sln{−ln(survival)} curvesfor each category of a nominal or ordinal covariate versus ln(analysis time). These are often referred to as “log-log” plots. Optionally, these estimates can be adjusted for covariates. The proportional-hazards assumption is not violated when the curves are parallel.
stcoxkm plots Kaplan–Meier observed survival curves and compares them with the Cox predicted curves for the same variable. The closer the observed values are to the predicted, the less likely it is that the proportional-hazards assumption has been violated.
4.2.1 Log-log plot of survival可以拟合命令單獨或者分層的Cox模型,并可根據調整變量進行調整。命令1:stphplot, by(recur)
根據分類變量recur拟合單獨的Cox模型,結果是下圖左;
命令2: stphplot, strata(recur) adjust(age) zero根據分類變量recur拟合分層的Cox模型,并根據變量age進行調整,調增方法是将age值調整為0(默認是均值),結果為下圖右。
菜單可通過以下途徑進入stphplot-生存函數的雙對數圖(Log-log plot of survival)①統計>>生存分析>>回歸模型>>比例風險假設的圖形評估;
②圖形>>生存分析圖>>比例風險假設檢驗;
選入相應的自變量和分層變量即可。
結果顯示變量recur兩個水平基本“平行”,滿足比例風險的假定。4.2.2 Kaplan–Meier and predicted survival plot
命令:stcoxkm, by(recur)
當然你可以單獨繪制recur兩個水平的觀測預測曲線:stcoxkm, by(recur) separate
菜單操作:①統計>>生存分析>>回歸模型>>Kaplan–Meier生存曲線和Cox預測曲線比較;
②圖形>>生存分析圖>>Kaplan–Meier和Cox生存曲線比較;
選入相應的自變量即可。
結果顯示Kaplan–Meier觀測曲線與Cox回歸預測曲線重合性較好,滿足比例風險假設。如果運氣不好,你的數據違背了比例風險的假定,可以考慮含時依協變量的Cox回歸。含時依協變量的Cox回歸也可以作為驗證比例風險的假設的一種手段。個人理解,這個所謂時依協變量,其實就是在Cox回歸裡構建的一個交互作用項。這個關于含時依協變量的Cox回歸我們放在以後分享。
有話要說...