這篇“R語言Cox與KM生存結果分析”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“R語言Cox與KM生存結果分析”文章吧。
Cox與KM生存分析及結果解讀,查找與預后相關的biomarker
生存分析:針對于慢性病(癌癥),因為其無法在短時間內判斷預后,不宜采用治愈率和病死率等指標,而是需要對患者進行隨訪,分析一定時間后患者生存或死亡的情況,這樣將事件的結果和出現這一結果所經歷的時間結合起來分析的統計方法稱為生存分析。
KM 方法即Kaplan-Meier survival estimate是一種無參數方法(non-parametric)來從觀察的生存時間來估計生存概率的方法。KM生存分析模型,是單變量分析(univariable analysis),在做單變量分析時,模型只描述了該單變量和生存之間的關系而忽略其他變量的影響。(為什么要考慮multi-variables?比如在比較兩組病人擁有和不擁有某種基因型對生存率的影響,但是其中一組的患者年齡較大,所以生存率可能受到基因型 或/和 年齡的共同影響)。同時,Kaplan-Meier方法只能針對分類變量(治療A vs 治療B,男 vs 女),不能分析連續變量對生存造成的影響。為了解決上述兩種問題,Cox比例風險回歸模型(Cox proportional hazards regression model)就被提了出來。因此,Cox比例風險回歸模型,可以分析連續變量對生存造成的影響,也可以多變量分析對生存的影響。
R是數據分析常用的軟件之一,通過各種功能強大的R包,可以簡單方便的實現各種分析。在R語言中,能夠進行生存分析的R包很多,survival和survminer是其中最基本的兩個,survival負責分析,survimner負責可視化,二者相結合,可以輕松實現生存分析。
對于每個個體而言,其生存數據會出現兩種情況,第一種是觀測到生存時間,通常用1表示,第二種則是刪失。通常用0表示。survival自帶了一個測試數據lung
每一行代表一個樣本,time表示生存時間,status表示刪失情況,這里只有1和2兩種取值,默認排序后的第一個level對應的值為刪失,這里則為1表示刪失。其他列為樣本對應的性別,年齡等基本信息。
這里根據性別這個二分類變量,采用KM算法來估計生存曲線,代碼如下(summary結果只顯示部分)
> library("survival") > library("survminer") > kmfit<-survfit(Surv(time, status) ~ sex, data = lung) > summary(kmfit) Call: survfit(formula = Surv(time, status) ~ sex, data = lung) sex=1 time n.risk n.event survival std.err lower 95% CI upper 95% CI 11 138 3 0.9783 0.0124 0.9542 1.000 12 135 1 0.9710 0.0143 0.9434 0.999 13 134 2 0.9565 0.0174 0.9231 0.991 15 132 1 0.9493 0.0187 0.9134 0.987 26 131 1 0.9420 0.0199 0.9038 0.982 30 130 1 0.9348 0.0210 0.8945 0.977
從kmfit中summary可以看到已經包含了每個時間點的生存概率,刪失等信息,通過這些信息,完全可以自己寫代碼來畫圖。為了方便,我們直接采用survminer中的函數來進行可視化。
最基本的可視化方式如下
library("survminer") ggsurvplot(kmfit, pval = TRUE, conf.int = TRUE, risk.table = TRUE, risk.table.col = "strata", linetype = "strata", surv.median.line = "hv", ggtheme = theme_bw(), palette = c("#E7B800", "#2E9FDF"))
library("survival") library("survminer") res.cox <- coxph(Surv(time, status) ~ sex, data = lung) summary(res.cox) res.cox <- coxph(Surv(time, status) ~ sex, data = lung) summary(res.cox) summary的結果: Call: coxph(formula = Surv(time, status) ~ sex, data = lung) n= 228, number of events= 165 coef exp(coef) se(coef) z Pr(>|z|) sex -0.5310 0.5880 0.1672 -3.176 0.00149 ** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 exp(coef) exp(-coef) lower .95 upper .95 sex 0.588 1.701 0.4237 0.816 Concordance= 0.579 (se = 0.021 ) Likelihood ratio test= 10.63 on 1 df, p=0.001 Wald test = 10.09 on 1 df, p=0.001 Score (logrank) test = 10.33 on 1 df, p=0.001
統計顯著性。標記為“z”的列給出了Wald統計值。它對應于每個回歸系數與其標準誤差的比率(z = coef / se(coef))。wald統計評估是否beta(ββ)系數在統計上顯著不同于0。從上面的輸出,我們可以得出結論,變量性別具有高度統計學意義的系數。
回歸系數。Cox模型結果中要注意的第二個特征是回歸系數(coef)的符號。一個積極的信號意味著危險(死亡風險)較高,因此對于那些變量值較高的受試者,預后更差。變量性被編碼為數字向量。1:男,2:女。Cox模型的R總結給出了第二組相對于第一組,即女性與男性的風險比(HR)。性別的β系數= -0.53表明在這些數據中,女性的死亡風險(低存活率)低于男性。
危害比例。指數系數(exp(coef)= exp(-0.53)= 0.59)也稱為風險比,給出協變量的效應大小。例如,女性(性別= 2)將危害降低了0.59倍,即41%。女性與預后良好相關。
風險比的置信區間??偨Y結果還給出了風險比(exp(coef))的95%置信區間的上限和下限,下限95%界限= 0.4237,上限95%界限= 0.816。
全球統計學意義的模型。最后,輸出為模型的總體顯著性提供了三個替代測試的p值:可能性比率測試,Wald測試和得分logrank統計。這三種方法是漸近等價的。對于足夠大的N,他們會得到相似的結果。對于小N來說,它們可能有所不同。似然比檢驗對于小樣本量具有更好的表現,所以通常是優選的。
要一次性將單變量coxph函數應用于多個協變量,請輸入:
res.cox <- coxph(Surv(time, status) ~ age + sex + ph.ecog, data = lung) summary(res.cox) Call: coxph(formula = Surv(time, status) ~ age + sex + ph.ecog, data = lung) n= 227, number of events= 164 (1 observation deleted due to missingness) coef exp(coef) se(coef) z Pr(>|z|) age 0.011067 1.011128 0.009267 1.194 0.232416 sex -0.552612 0.575445 0.167739 -3.294 0.000986 *** ph.ecog 0.463728 1.589991 0.113577 4.083 4.45e-05 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 exp(coef) exp(-coef) lower .95 upper .95 age 1.0111 0.9890 0.9929 1.0297 sex 0.5754 1.7378 0.4142 0.7994 ph.ecog 1.5900 0.6289 1.2727 1.9864 Concordance= 0.637 (se = 0.025 ) Likelihood ratio test= 30.5 on 3 df, p=1e-06 Wald test = 29.93 on 3 df, p=1e-06 Score (logrank) test = 30.5 on 3 df, p=1e-06
所有3個整體測試(可能性,Wald 和 得分)的p值都是顯著的,表明該模型是顯著的。這些測試評估了所有的beta(ββ)為0.在上面的例子中,檢驗統計是完全一致的,綜合零假設被完全拒絕。
在多變量Cox分析中,協變量性別和ph.ecog仍然顯著(p <0.05)。然而,協變量年齡并不顯著(P = 0.17,這比0.05)。
性別p值為0.000986,危險比HR = exp(coef)= 0.58,表明患者性別和死亡風險降低之間有很強的關系。協變量的風險比可以解釋為對風險的倍增效應。例如,保持其他協變量不變,女性(性別= 2)將危害降低0.58倍,即42%。我們的結論是,女性與良好的預后相關。
類似地,ph.ecog的p值是4.45e-05,危險比HR = 1.59,表明ph.ecog值與死亡風險增加之間的強關系。保持其他協變量不變,ph.ecog值越高,生存率越差。
相比之下,年齡的p值現在是p = 0.23。風險比HR = exp(coef)= 1.01,95%置信區間為0.99至1.03。由于HR的置信區間為1,這些結果表明,年齡在調整了ph值和患者性別后對HR的差異的貢獻較小,并且僅趨向顯著性。例如,保持其他協變量不變,額外的年齡會導致每日死亡危險因素為exp(beta)= 1.01或1%,這不是一個重要的貢獻。
已經將Cox模型擬合到數據中,可以在特定風險組的任何給定時間點可視化預測的存活比例。函數survfit()估計生存比例,默認情況下為協變量的平均值。
kmfit<-survfit(Surv(time, status) ~ sex, data = lung) ggsurvplot(kmfit, pval = TRUE, conf.int = TRUE, risk.table = TRUE, risk.table.col = "strata", linetype = "strata", surv.median.line = "hv", ggtheme = theme_bw(), palette = c("#E7B800", "#2E9FDF"))
以上就是關于“R語言Cox與KM生存結果分析”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。