收集网上查阅到的生存分析原理解析和R代码(本文完全是截图参考1的内容,作者写得太好了)。更多知识分享请到 https://zouhua.top/。
原理
随访研究示
![](https://img.haomeiwen.com/i10780526/2ecdb6abe14b74bb.png)
起始事件与终点事件
![](https://img.haomeiwen.com/i10780526/868803b725e99eb8.png)
生存时间
![](https://img.haomeiwen.com/i10780526/ab4019a3a5677dde.png)
![](https://img.haomeiwen.com/i10780526/720cf3ec330ce880.png)
![](https://img.haomeiwen.com/i10780526/818a550bafab8271.png)
![](https://img.haomeiwen.com/i10780526/9a5db0d10d678ad1.png)
![](https://img.haomeiwen.com/i10780526/1906b91d35182679.png)
代码
library(survminer)
library(survival)
# load data
data(lung)
# 拟合曲线
fit <- survfit(Surv(time,status) ~ sex, data = lung)
summary(fit)
# 计算风险p值
res.cox <- coxph(Surv(time,status) ~ sex, data = lung)
tmp <- summary(res.cox)
tmp.wald <- data.frame(t(tmp$waldtest)) %>%
setNames(c("Wald_test", "Wald_df", "Wald_pvlaue"))
tmp.lg <- data.frame(t(tmp$logtest)) %>%
setNames(c("lg_rank", "lg_rank_df", "lg_rank_pvlaue"))
tmp.total <- cbind(tmp.wald, tmp.lg)
pvalue <- paste(paste0("Log-Rank P=", signif(tmp.lg$lg_rank_pvlaue, 3)),
paste0("Cox P=", signif(tmp.wald$Wald_pvlaue, 3)), sep = "\n")
pl <- ggsurvplot(fit, # 创建的拟合对象
data = lung, # 指定变量数据来源
conf.int = TRUE, # 显示置信区间
pval = FALSE, # 添加P值(对数秩检验(Log-Rank test)的p值)
add.all = TRUE, # 添加总患者生存曲线
palette = "aaas", # 自定义调色板
surv.median.line = "hv", # 添加中位生存时间线
risk.table = TRUE, # 添加风险表
xlab = "Follow up time(d)", # 指定x轴标签
legend = c(0.8,0.75), # 指定图例位置
legend.title = "", # 设置图例标题
legend.labs = c("all", "Male", "Female"), # 指定图例分组标签
break.x.by = 100) # 设置x轴刻度间距
pl$plot <- pl$plot +
annotate("text", x=100, y=0.2, label=pvalue)
![](https://img.haomeiwen.com/i10780526/55d331c695bcd17d.png)
参考
参考文章如引起任何侵权问题,可以与我联系,谢谢。
网友评论