今天給大家寫寫生存分析:
生存分析研究的我們感興趣的事件發(fā)生的時間的分布情況。這里面的“生存”不一定指存活,,因?yàn)樯娣治鲈卺t(yī)學(xué)隨訪數(shù)據(jù)中用的很多,,而這類數(shù)據(jù)的隨訪終點(diǎn)往往就是病人死亡,所以才叫做生存,。生存分析研究的時間分布也不一定是真的時間,,比如我想研究汽車使用時間與汽車發(fā)生故障之間的關(guān)系,因?yàn)槠嚭芏鄷r候是閑置的,,所以這種情況下,,時間應(yīng)該為汽車行駛的里程數(shù)。 基本概念事件: 事件是指研究者所關(guān)心的事件發(fā)生了,,事件發(fā)生的時間點(diǎn),,也就是生存時間的記錄終點(diǎn)。 生存時間: 刪失: 生存函數(shù)和風(fēng)險函數(shù)生存分析刻畫的是生存時間的分布情況,,這里的分布指的是概率分布,如何形象刻畫生存時間的分布情況呢,? 一個就是生存函數(shù)S(t):
生存函數(shù)就是這個病人活下來的概率和時間的關(guān)系,。 另一個就是風(fēng)險函數(shù)h(t):
風(fēng)險函數(shù)就是這個病人死亡的概率和時間的關(guān)系,就是我們在t時刻剛好發(fā)生目標(biāo)事件的概率,。 Kaplan-Meier計算生存函數(shù)Kaplan-Meier 法 是由Kaplan和Meier于1958年提出,,直接用概率乘法定理估計生存率,故稱乘積極限法(product-limit method),,是一種非參數(shù)法,。根據(jù)時刻t及其之前各個時間點(diǎn)上的條件生存率的乘積,來估計時刻t的生存函數(shù)S(t)和它的標(biāo)準(zhǔn)誤SE(S(t)),。這種方法的數(shù)學(xué)表達(dá)如下: 一句話總結(jié)下就是:此時刻的生存概率等于上已時刻的生存概率乘以此時的存活率,。 Kaplan-Meier的R操作我們依然用R的自帶數(shù)據(jù)集進(jìn)行演示: library("survival") 這個自帶數(shù)據(jù)集有肺癌患者的生存時間,我們在本例中關(guān)注三個變量,一個是time,,是患者的生存天數(shù),一個是結(jié)局status,,1=censored, 2=dead,,另一個是分組變量sex性別: 我們的研究問題是:不同性別的肺癌患者的生存時間有無差異? 那么我們可以首先做一個Kaplan-Meier的生存分析: fit <- survfit(Surv(time, status) ~ sex, data = lung) 結(jié)果中有展示不同性別的中位生存期及其置信區(qū)間,。 那么,,我們最想要的還是兩組生存曲線的可視化: ggsurvplot(fit,pval = TRUE, conf.int = TRUE,surv.median.line = "hv") 從圖中看:p<0.05,說明兩組的中位生存期是有差異的,。 在上面的曲線中,,y軸是生存概率,我們還可以將y軸轉(zhuǎn)化為事件比例,,本例中為死亡比例: ggsurvplot(fit,conf.int = TRUE,fun = "event",pval = TRUE) 也可以看到兩組隨時間變化的死亡比例是有顯著差異的,,接下來寫寫不同生存曲線比較的檢驗(yàn): 生存曲線的比較上面的例子中,我們分男女做了兩個生存曲線,,這兩個生存曲線有沒有統(tǒng)計學(xué)差異呢,? 這時候就要用到log-rank test了: surv_diff <- survdiff(Surv(time, status) ~ sex, data = lung) 通過比較,我們發(fā)現(xiàn)兩個生存曲線確實(shí)存在顯著差異,,此時我們就可以說性別為2的病人確實(shí)比性別為1的病人活得久點(diǎn),。 小結(jié)今天給大家寫了簡單的生存分析,今天的例子中并沒有納入?yún)f(xié)變量,,之后給大家寫比例風(fēng)險模型,。 |
|