R语言survminer包做生存分析和画图
2019-07-25 本文已影响239人
Whuer_deng
数据
编号 生存时间 结局 组别
1 2 1 辅助化疗组
2 5 1 辅助化疗组
3 8 1 辅助化疗组
4 9 1 辅助化疗组
5 9 0 辅助化疗组
6 10 1 辅助化疗组
7 13 1 辅助化疗组
8 13 1 辅助化疗组
9 15 0 辅助化疗组
10 18 1 辅助化疗组
11 20 1 辅助化疗组
12 23 0 辅助化疗组
13 2 1 单纯手术组
14 2 1 单纯手术组
15 3 1 单纯手术组
16 5 1 单纯手术组
17 6 1 单纯手术组
18 6 1 单纯手术组
19 8 1 单纯手术组
20 9 1 单纯手术组
21 10 1 单纯手术组
22 14 0 单纯手术组
library(survminer)
library(survival)
查看每个个体的生存时间
Surv(X12_3$生存时间, X12_3$结局)
[1] 2 5 8 9 9+ 10 13 13 15+ 18 20 23+ 2 2 3 5 6 6 8 9 10 14+
分组别(两种治疗方案)建立模型
fit <- surv_fit(Surv(生存时间, 结局) ~ 组别, data = X12_3)
两种治疗方案的生存率及其标准误
surv_summary(fit, data = X12_3)
time n.risk n.event n.censor surv std.err upper lower strata 组别
1 2 10 2 0 0.8000000 0.15811388 1.0000000 0.58681770 组别=单纯手术组 单纯手术组
2 3 8 1 0 0.7000000 0.20701967 1.0000000 0.46653323 组别=单纯手术组 单纯手术组
3 5 7 1 0 0.6000000 0.25819889 0.9952462 0.36171953 组别=单纯手术组 单纯手术组
4 6 6 2 0 0.4000000 0.38729833 0.8545332 0.18723673 组别=单纯手术组 单纯手术组
5 8 4 1 0 0.3000000 0.48304589 0.7731979 0.11639970 组别=单纯手术组 单纯手术组
6 9 3 1 0 0.2000000 0.63245553 0.6908394 0.05790057 组别=单纯手术组 单纯手术组
7 10 2 1 0 0.1000000 0.94868330 0.6419788 0.01557684 组别=单纯手术组 单纯手术组
8 14 1 0 1 0.1000000 0.94868330 0.6419788 0.01557684 组别=单纯手术组 单纯手术组
9 2 12 1 0 0.9166667 0.08703883 1.0000000 0.77290097 组别=辅助化疗组 辅助化疗组
10 5 11 1 0 0.8333333 0.12909944 1.0000000 0.64703699 组别=辅助化疗组 辅助化疗组
11 8 10 1 0 0.7500000 0.16666667 1.0000000 0.54099636 组别=辅助化疗组 辅助化疗组
12 9 9 1 1 0.6666667 0.20412415 0.9946254 0.44684608 组别=辅助化疗组 辅助化疗组
13 10 7 1 0 0.5714286 0.25588316 0.9435612 0.34606192 组别=辅助化疗组 辅助化疗组
14 13 6 2 0 0.3809524 0.38575837 0.8113884 0.17885973 组别=辅助化疗组 辅助化疗组
15 15 4 0 1 0.3809524 0.38575837 0.8113884 0.17885973 组别=辅助化疗组 辅助化疗组
16 18 3 1 0 0.2539683 0.56167267 0.7636179 0.08446617 组别=辅助化疗组 辅助化疗组
17 20 2 1 0 0.1269841 0.90303720 0.7454458 0.02163131 组别=辅助化疗组 辅助化疗组
18 23 1 0 1 0.1269841 0.90303720 0.7454458 0.02163131 组别=辅助化疗组 辅助化疗组
查看两种治疗方案的中位生存时间
surv_median(fit)
strata median lower upper
1 组别=单纯手术组 6 3 NA
2 组别=辅助化疗组 13 9 NA
#单纯手术组和辅助化疗组的中位生存时间分别为6、13个月
对数秩(log-rank)检验
survdiff(Surv(生存时间, 结局) ~ 组别, data = X12_3)
Call:
survdiff(formula = Surv(生存时间, 结局) ~ 组别, data = X12_3)
N Observed Expected (O-E)^2/E (O-E)^2/V
组别=单纯手术组 10 9 5.11 2.95 4.99
组别=辅助化疗组 12 9 12.89 1.17 4.99
Chisq= 5 on 1 degrees of freedom, p= 0.03
#p = 0.03 < 0.05, 两种治疗手段的疗效有差异,辅助化疗组的期望生存时间(12.89个月)比单纯治疗组(5.11个月)长。
相对危险度比较
9/5.11/(9/12.89) #计算单纯手术组对于辅助化疗组的相对危险度RR。
[1] 2.522505 #单纯手术组患者发生死亡的危险是辅助化疗组的2.522505倍。
作生存曲线图
ggsurvplot(fit, data = X12_3, linetype = c('solid', 'dashed'), surv.median.line = 'hv', pval = T, risk.table = T, palette = 'Set2')
image.png
辅助化疗组的生存曲线高于单纯手术组,故辅助化疗组的生存情况较单纯手术组好。
设置fun = 'pct', 生存率以百分比的形式显示
ggsurvplot(fit, data = X12_3, fun = 'pct', linetype = c('longdash', 'twodash'), palette = 'Accent')
fun = 'pct'.png
设置fun = 'event', y轴为累计风险
ggsurvplot(fit, data = X12_3, fun = 'event', linetype = c('solid', 'dashed'), palette = 'Set1', cumevents = T)
fun = 'event'.png