用R語言進行Cox回歸生存分析

  • 2019 年 12 月 19 日
  • 筆記

在生存分析中,探究生存時間的影響因素是一個重要的研究內容,通過KM和log-rank test檢驗的方法,只能夠處理單個二分類因素的生存數據。當想探究多個因素或者離散型變量對生存時間的影響時,我們就需要藉助於cox回歸方法。cox回歸的全稱如下

cox proportional hazards regression model

稱之為cox等比例風險回歸模型, 對應的公式如下

將上述公式進行log轉換,可以變換成以下格式

這個公式和邏輯回歸的公式就非常的接近了, cox回歸其實是在線性回歸和邏輯回歸的基礎上延伸而出的一種方法,將影響生存的多個因素當做回歸方程中的自變量,將風險函數h(t)和h0(t)的比值當做因變量。

每個自變量對應的係數,如b1,b2這類的 ,稱之為偏回歸係數。當偏回歸係數大於0時, 隨着該自變量值的增加,風險增加,生存時間減少,當係數小於0時,則相反;等於0時,沒有影響。

將exp(b)稱之為hazard ratio, 簡稱HR。將偏回歸係數轉換成HR, 對應的關係如下

  1. HR = 1, 沒有影響
  2. HR > 1, 風險增加
  3. HR < 1, 風險降低

在臨床上,將HR>1的自變量稱之為壞的預後因子,將HR<1的自變量稱之為好的預後因子。通過survivalR包,可以輕鬆的實現cox回歸分析,步驟如下

1. 準備生存數據

對於每個個體而言,其生存數據會出現兩種情況,第一種是觀測到生存時間,通常用1表示,第二種則是刪失。通常用0表示。survival自帶了一個測試數據lung, 內容如下所示

每一行代表一個樣本,time表示生存時間,status表示刪失情況,這裡只有1和2兩種取值,默認排序後的第一個level對應的值為刪失,這裡則為1表示刪失。其他列為樣本對應的性別,年齡等基本信息。

2. cox回歸分析

代碼如下

可以看到,cox回歸的適用範圍更廣,以最後一個回歸分析為例,結果如下所示

首先查看likehood ration test , wald test, logrank test三種檢驗方法的p值,p值小於0.05, 這個回歸方程是統計學顯著的。說明在這麼多自變量中包含了對生存時間具有影響的因素。

然後查看每個自變量的p值,可以看到sex和ph.ecog這兩個變量的p值小於0.05,而age的p值大於0.05, 說明sex和ph,ecog這兩個變量對生存時間的影響更加顯著。

最後查看自變量的coef等指標,coef就是偏回歸係數,exp(coef)就是HR。sex的HR值小於1,該數據集中1=male, 2= female, HR表示的是數值大的風險/數值小的風險,在這裡就是female/ male, 說明female死亡的相對較低。HR的值約為0.58, 說明female的死亡風險只佔了male的58%, 相比male, female的死亡風險降低了42%。ph.ecog的HR值大於1, 說明隨着ph.ecog數值的增加,死亡風險會增加。

3. 結果可視化

sex為例, 可視化的代碼如下

效果圖如下