R語言實現競爭風險模型

R語言實現競爭風險模型

競爭風險(competing risks)是指研究對象出現感興趣事件(interesting event)的同時還會出現其他結局事件,這些結局事件將阻止感興趣事件的出現或使其發生的概率降低,各結局事件間形成所謂的"競爭"關係,這一系列事件稱作競爭事件。

經典的生存分析(K-M法, Log rank法, Cox迴歸模型)通常關注一個終點事件,例如腫瘤患者發生了因心血管事件的死亡或意外死亡,就不能發生腫瘤特異性死亡,與我們關注的終點事件(腫瘤特異死亡)呈競爭關係。通俗的說就是,一個肺癌患者經過一段時間後並不是死於肺癌,而是死於冠心病,那麼我們認為冠心病與肺癌就形成了競爭關係。

傳統的生存分析將這些事件與失訪、存活個體均記為刪失數據,這樣會高估腫瘤特異性死亡的累計發生率。像這樣含有競爭事件的縱向數據處理方法應採用競爭風險模型

下面我們通過R軟件來建立競爭風險模型。使用cmprsk包中的

crr()函數建立競爭風險模型。

實例:我們選用舌癌隨訪數據來進行分析。

將數據清洗成下面的格式,同時附有參數設置文件,用於後期查看。

R語言實現競爭風險模型

R語言實現競爭風險模型

代碼:

#加載包

library(cmprsk)
library(splines)
library(survival)

#加載數據

dat 

#統計每種事件數

table(dat$cause.death)
R語言實現競爭風險模型

0代表刪失,1代表死於舌癌,2代表死於其他原因

①首先以數據集中的年齡為協變量建立風險模型

fitR語言實現競爭風險模型

上圖是模型結果,第一行提示模型是收斂的(convergence:TRUE) ,Age擬合的協變星系數: 0.2619,標準誤: 0.1567,P值: 0.095。

說明年齡Age不是是否發生結局事件的影響因素。

fit1R語言實現競爭風險模型

進一步用數據集中的腫瘤分期" Grade "作為協變量建模,發現P值1.4*10^-8遠小於0.05,有統計學意義,提示年齡" Grade "是是否發生結局事件的影響因素。係數是0.5993為正,這意味著較高的值表示發生結局事件的風險越高。

②考慮多個協變星

xR語言實現競爭風險模型 

數據集中的腫瘤分期" Age "和"Radiation"作為協變量,建立多因素競爭風險模型,上圖是模型結果,兩個變量的p值均小於0.05,係數為正,同樣意味著較高的值表示發生結局事件的風險越高。

③競爭風險,探討其他結局

crr函數是以1(死於舌癌)為結局事件,如果想要探討協變量對競爭事件的影響,就需要加上代碼"failcode=2"。

x1R語言實現競爭風險模型 

上圖以數據集中的腫瘤分期" Age "和"Radiation"作為協變量,以事件2(其他死亡原因),建立多因素競爭風險模型,結果解讀相同,兩個變量的p值均小於0.05,係數為一正一負,為正的變量"Age"同樣意味著較高的值表示發生結局事件的風險越高,而為負的變量"Radiation"意味著較高的值表示發生結局事件的風險越低。

④模型詳細信息

想要得到HR值,我們使用summary()函數

fit4

fit4

R語言實現競爭風險模型

summary(fit4)

R語言實現競爭風險模型

該模型的HR值為結果中的exp(coef)。


分享到:


相關文章: