今天給大家寫寫生存分析:
Survival analysis corresponds to a set of statistical approaches used to investigate the time it takes for an event of interest to occur.
生存分析研究的我們感興趣的事件發生的時間的分布情況。這裡面的「生存」不一定指存活,因為生存分析在醫學隨訪數據中用的很多,而這類數據的隨訪終點往往就是病人死亡,所以才叫做生存。生存分析研究的時間分布也不一定是真的時間,比如我想研究汽車使用時間與汽車發生故障之間的關係,因為汽車很多時候是閒置的,所以這種情況下,時間應該為汽車行駛的裡程數。
基本概念事件:
事件是指研究者所關心的事件發生了,事件發生的時間點,也就是生存時間的記錄終點。
生存時間:
生存時間是指從某一起點開始到所關心事件發生的時間。因為生存時間是生存分析的分析對象,所以對生存時間的長度確定至關重要。
刪失:
刪失是指事件發生未被觀測到或無法被觀測到以至於生存時間無法被準確記錄下來的情況。
生存分析刻畫的是生存時間的分布情況,這裡的分布指的是概率分布,如何形象刻畫生存時間的分布情況呢?
一個就是生存函數S(t):
S(t), is the probability that an individual survives from the time origin (e.g. diagnosis of cancer) to a specified future time t.
生存函數就是這個病人活下來的概率和時間的關係。
另一個就是風險函數h(t):
h(t), is the probability that an individual who is under observation at a time t has an event at that time.
風險函數就是這個病人死亡的概率和時間的關係,就是我們在t時刻剛好發生目標事件的概率。
Kaplan-Meier計算生存函數Kaplan-Meier 法 是由Kaplan和Meier於1958年提出,直接用概率乘法定理估計生存率,故稱乘積極限法(product-limit method),是一種非參數法。根據時刻t及其之前各個時間點上的條件生存率的乘積,來估計時刻t的生存函數S(t)和它的標準誤SE(S(t))。這種方法的數學表達如下:
一句話總結下就是:此時刻的生存概率等於上已時刻的生存概率乘以此時的存活率。
Kaplan-Meier的R操作我們依然用R的自帶數據集進行演示:
library("survival")
library("survminer")
data("lung")
fit <- survfit(Surv(time, status) ~ sex, data = lung)
print(fit)
這個自帶數據集有肺癌患者的生存時間,我們在本例中關注三個變量,一個是time,是患者的生存天數,一個是結局status,1=censored, 2=dead,另一個是分組變量sex性別:
我們的研究問題是:不同性別的肺癌患者的生存時間有無差異?
那麼我們可以首先做一個Kaplan-Meier的生存分析:
fit <- survfit(Surv(time, status) ~ sex, data = lung)
print(fit)
結果中有展示不同性別的中位生存期及其置信區間。
那麼,我們最想要的還是兩組生存曲線的可視化:
ggsurvplot(fit,pval = TRUE, conf.int = TRUE,surv.median.line = "hv")
從圖中看:p<0.05,說明兩組的中位生存期是有差異的。
在上面的曲線中,y軸是生存概率,我們還可以將y軸轉化為事件比例,本例中為死亡比例:
ggsurvplot(fit,conf.int = TRUE,fun = "event",pval = TRUE)
也可以看到兩組隨時間變化的死亡比例是有顯著差異的,接下來寫寫不同生存曲線比較的檢驗:
生存曲線的比較上面的例子中,我們分男女做了兩個生存曲線,這兩個生存曲線有沒有統計學差異呢?
這時候就要用到log-rank test了:
surv_diff <- survdiff(Surv(time, status) ~ sex, data = lung)
surv_diff
通過比較,我們發現兩個生存曲線確實存在顯著差異,此時我們就可以說性別為2的病人確實比性別為1的病人活得久點。
小結今天給大家寫了簡單的生存分析,今天的例子中並沒有納入協變量,之後給大家寫比例風險模型。
感謝大家耐心看完,自己的文章都寫的很細,代碼都在原文中,希望大家都可以自己做一做,請關注後私信回復「數據連結」獲取所有數據和本人收集的學習資料。如果對您有用請先收藏,再點讚轉發。
也歡迎大家的意見和建議。
如果你是一個大學本科生或研究生,如果你正在因為你的統計作業、數據分析、論文、報告、考試等發愁,如果你在使用SPSS,R,Python,Mplus, Excel中遇到任何問題,都可以聯繫我。因為我可以給您提供最好的,最詳細和耐心的數據分析服務。
如果你對Z檢驗,t檢驗,方差分析,多元方差分析,回歸,卡方檢驗,相關,多水平模型,結構方程模型,中介調節,量表信效度等等統計技巧有任何問題,請私信我,獲取最詳細和耐心的指導。
If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #reports, #composing, #Quizzes, Exams.. And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me. Because I could provide you the best services for your Data Analysis.
Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc. for your Data Analysis...??
Then Contact Me. I will solve your Problem...
加油吧,打工人!
往期內容:R數據分析:用R語言做meta分析
R數據分析:相對小眾但是超好用的R包匯總
R數據分析:貝葉斯定理的R語言模擬
R數據分析:用R語言做潛類別分析LCA