R數據分析:生存分析的做法和結果解釋

2021-02-13 Codewar

今天給大家寫寫生存分析:

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

相關焦點

  • 第五講 典型相關分析——數據結果分析(一)
    在上一講中,給大家提供了兩種不同的分析程序,其運行輸出的結果形式稍有差異,但是數據結果基本相同
  • R語言做生存分析:繪製 Kaplan-Meirer生存曲線和實現Log-rank檢驗
    劉老師總結的統計教程合集,可以節省你不少時間一般生存分析文章的統計部分通常會這麼寫:採用Kaplan-Meier法計算生存率和中位生存期,採用log-rank檢驗生存率差異,Cox回歸法進行多因素分析。檢驗水準α= 0.05。我們首先看看什麼是生存分析?
  • 多水平數據分析:R、Mplus和 HLM 應用對比
    以優秀程度來做結果變量,這種差異顯然每個人和每個人是不一樣(低水平),也可能一部分是不同班級之間有差異,不同學校之間有差異。所以,多水平模型的一個基本假定是,高水平差異能夠解釋結果變量的一部分。那麼,究竟是不是這樣呢?
  • R語言:排序分析以及VPA分析
    其實我一直不太理解這是什麼分析,找資料也沒有具體的解釋。目的在於量化變量對群落結構解釋貢獻值,是根據排序結果間接得到的分析結果。也是約束性分析的一種,叫偏分析法(Partial methods).使用具體的數據來看看:數據:data.csv(物種組成)與env.csv(環境因子)軟體包:vegan數據形式如下:
  • 普氏分析結果可視化--物種與環境、物種與物種、物種與功能關聯分析
    當然除了分析群落結構與環境因子的相關性之外,這兩個分析還可以用於分析同一樣品不同類型微生物群落之間的相關性,比如同一樣品的稀有和豐富物種或者同一樣品細菌和真菌群落結構的相關性。最後還有一種不太常用的用法,就是分析配對的兩種不同類型樣品微生物群落的相關性,比如河流或海洋同一位置水體和沉積物細菌群落組成結構的相關性,從而分析這兩種關聯樣品類型中微生物群落的轉移。這兩種方法的具體原理我這裡就不講了,網上有很多,感興趣的朋友可以自行搜索一下,本推文主要介紹分析的實現方法以及對結果可視化的美化。
  • SPSS方法|SPSS生存分析
    生存分析(survival analysis)指分析生存資料的統計學方法,生存資料來自有關急性病或慢性病的動物實驗研究、臨床試驗研究和流行病學研究,這類資料不僅關心終點事件(terminal event)發生與否,還關心發生終點事件的時間長短。
  • Python數據實戰分析之定量和定性數據分析
    數據分析中關於數據的部署數據分析的最後一步——部署,旨在展示結果,也就是給出數據分析的結論。若應用場景為商業,部署過程將分析結果轉換為對購買數據分析服務的客戶有益的方案。若應用場景為科技領域,則將成果轉換為設計方案或科技出版物。
  • 數據分析?從一開始你就錯了!探索性數據分析套路解讀
    作者:張土豆,R語言中文社區專欄作者博客專欄:https://www.hellobi.com/u/tudouZhang在最初接觸數據分析時,常常把數據文件一股腦兒導入,接著開始嘗試各種模型,目的就是為了快速得到分析預測結果。
  • 數據分析淺談 | 基礎篇
    其實不然,舉個慄子,我們常用的 求和or 平均,這就是最基本的數據描述統計方法,該方法是通過匯總多個數據得到一個具體的確定值來表徵數據特點。其目的是為了描述數據特徵,找出數據的基本規律。描述統計可以分為集中趨勢分析和離散趨勢分析和相關分析三個部分。
  • Python數據分析|泰坦尼克邏輯回歸
    Python數據分析學習筆記,今天分享下利用Python進行邏輯回歸,預測鐵達尼號乘客生存情況。#導入2個Python常用數據分析的庫import numpy as npimport pandas as pd#將數據源文件讀取#注意Windows環境下,需要用r轉義一下,不然讀取不進來train = pd.read_csv(r"C:\\Users\\Administrator\\Desktop\\train.csv")test = pd.read_csv(r"C:\
  • R 語言之數據分析「Resampling」
    在總結回歸分析和方差分析的時候 ④R語言之數據分析「初章」,我總是會在模型的建立之前提到「統計假設」,在模型建立之後進行「假設檢驗」,原因想必大家都能理解,就是因為這些「統計假設」是我們模型建立思想的基礎,是支撐我們模型正確性的「必要條件」。但是,不可否認的是,這些「必要條件」最終會成為我們「數據分析」的局限,讓我們對「不滿足條件的數據集」束手無策。
  • R數據分析:創建向量的方法
    向量的元素可以是數值型、字符型、邏輯值型和複數型,對應分別稱為數值型向量、字符串型向量、邏輯型向量和複數型向量。向量中可以包含一個元素,也可以包含多個元素。同一個向量中的數據類型應該相同。R中創建向量的方法,主要有以下幾種:(1)直接創建x1<-1:10 #輸出:[1] 1 2 3 4 5 6 7 8 9 10x2<-4.3 #只包含一個值的向量x3<-TRUE #邏輯型向量,注意在R中,TRUE和FALSE必須大寫x4 <- "I Love China" #字符串型向量在R語言中,<-表示賦值
  • 怎樣提升數據分析能力,數據分析的正確步驟
    在這個大數據時代,數據分析能力在職場中顯得尤為重要,不會數據分析基本就是一塊廢柴,在職場中很難生存,但要想學好數據分析,並沒有那麼容易,很多人都是下定決心入門學習,可是又不知道從哪開始,複雜的算法、龐大的數據、眼花繚亂的代碼……最終還是止步於頭腦鬥爭,無法付諸實際行動。但只要你克服了以下6大難題,數據分析能力蹭蹭往上漲。
  • 如何提升數據分析能力,數據分析的正確步驟
    在這個大數據時代,數據分析能力在職場中顯得尤為重要,不會數據分析基本就是一塊廢柴,在職場中很難生存,但要想學好數據分析,並沒有那麼容易,很多人都是下定決心入門學習,可是又不知道從哪開始,複雜的算法、龐大的數據、眼花繚亂的代碼……最終還是止步於頭腦鬥爭,無法付諸實際行動。但只要你克服了以下6大難題,數據分析能力蹭蹭往上漲。1.很難獲得用戶操作行為完整日誌。
  • R數據分析:雙連續變量交互作用的簡單斜率圖作圖及解釋
    今天就帶大家用一個實際例子做一個交互作用y = A + B + A*B上面的這個公式就是最簡單的,有交互作用的回歸,對於此方面的詳盡解釋,大家可以參考文獻:Jaccard & Turrisi 2003 Interaction Effects in Multiple Regression今天重點給大家寫兩個連續變量的簡單斜率圖和解釋:
  • 數據分析基礎相關性分析,SPSS實操
    一般根據研究的目的不同、或變量的類型不同,採用不同的相關分析方法。 常用的相關分析方法:二元定距變量的相關分析、二元定序變量的相關分析、偏相關分析和距離相關分析等。樣本相關係數r:在說明變量之間線性相關程度時,根據經驗可將相關程度分為以下幾種情況: 若r≥0.8 時,視為高度相關; 若0.5≤r<0.8 時,視為中度相關; 當0.3≤r<0.5 時,視為低度相關;
  • R語言實現主成分分析
    如果將一個變量比作一個維度,那麼多元數據可以看作由多個變量組成的多維空間內點的合集。在很多情形中,變量間存在一定的相關關係,因此研究者可以將多維度的數據降維,用新的排序軸去儘可能地反映原數據的信息。圖1 灌叢調查環境數據舉例圖1是灌叢調查時獲得的樣地環境因子數據(列名分別為樣地號、海拔、土壤有機碳、全氮、全磷、年均降水和年均溫)。
  • 功能性磁共振成像危機:專家分析了相同的數據,結果卻大相逕庭
    有三個假設只被5%的團隊報告為具有重要意義,這與我們使用經典統計數據偶然得出的數字差不多,因此可以合理地解釋為這些假設不成立。這種結果使五個假設處於不確定狀態,其中20%至35%的團隊報告了每個假設的重大影響。九個假設:一個被認為是正確的;三個被否定;五個處於不確定狀態。對於研究相同數據的70個團隊而言,這並不是一個很好的計分卡。
  • 數據分析的作用和意義
    先說說到底什麼是數據分析?   數據分析是基於商業目的,有目的的進行收集、整理、加工和分析數據,提煉有價信息的一個過程。   數據分析,顧名思義,數據加分析。也就是說必須要以數據為先,分析為後。對收集來的大量第一手資料和第二手資料進行分析,以求最大化地開發數據資料的功能,發揮數據的作用。
  • 數據分析領域的探索性數據分析究竟是什麼?
    我們經常討論數據分析和Bl科學方面:執行複雜查詢所需的計算和算法。當然,Bl的很大一部分是數學,在一般情況下理解數據需要計劃如何在一端構建分析結構,在另一端解釋結果,在一些人眼中這是一種藝術形式。什麼是探索性數據分析?探索性數據分析(EDA)是數據分析過程的第一步。