R|生存分析(1)

简介: R|生存分析(1)

一、基本概念

生存分析:研究各个因素与生存时间有无关系以及关联程度大小。可拓展到疾病复发时间,机器的故障时间等。

起始事件:反应研究对象开始生存过程的起始特征事件。

终点事件(死亡事件):出现研究者所关心的特定结局。如“病人因该疾病死亡”。

观察时间:从研究开始观察到研究观察结束的时间。

生存时间:观察到的存活时间,用符号t表示。

完全数据:从观察起点到死亡事件所经历的时间,生存时间是完整的。

截尾数据(删失值):观察时间不是由于终点事件而结束的,而是由于(1)失访(2)死于非研究因素(3)观察结束而对象仍存活以上三种原因结束的。常在截尾数据的右上角放一个“+”表示其实该对象可能活的更久。

变量:生存分析的变量有两个:生存时间t和结局变量(0-1)。其中结局变量1表示死亡事件,0表示截尾。

生存曲线:以生存时间为横轴、生存率为纵轴绘制一条生存曲线。

中位生存时间:又称为生存时间的中位数,表示刚好有50%的个体其存活期大于该时间。

二、生存分析研究的部分内容

1、描述生存过程

研究生存时间的分布特点,估计生存率及其标准误、绘制生存曲线。常用方法有乘积极限法(K-M法)和寿命表法,此处简单介绍乘积极限法(K-M法)。


注:生存曲线为单因素分析(两个或者多个水平),用中位生存时间表示生存时间的平均水平;

2、比较生存过程

获得生存率及其标准误的估计值后,可以进行两组或多组生存曲线的比较,常用方法有对数秩检验(log-rank检验)。如曲线交叉,可能存在混杂因素。

注:两个或者多个生存曲线的比较(单因素两个或者多个水平)

3、影响生存时间的因素分析

常用的多因素生存分析方法:Cox比例风险回归模型。可能后面会啰嗦。


三、R包进行生存分析

1、R-survival包进行生存分析,并绘制KM曲线图:


Surv:用于创建生存数据对象

survfit:创建KM生存曲线或是Cox调整生存曲线

survdiff:用于不同组的统计检验

coxph:构建COX回归模型 (待)

cox.zph:检验PH假设是否成立 (待)


#载入包,读取数据

library(survival)

dat <- read.table('Test.txt',header=TRUE)

image.png

1) 估计生存函数,观察不同组间的区别

# 估计KM生存曲线

# OS_time:跟踪到的存活时间

# OS_Status: 跟踪到的存活状态

# COV1:表示按照COV1进行分组

fit <- survfit(Surv(dat$OS_time,as.numeric(dat$OS_Status))~dat$COV1,data=dat)

# 获得的survial列就是生存率

summary(fit)


2) 比较不同因子分组的生存效果,检验显著性

survdiff(Surv(dat$OS_time,as.numeric(dat$OS_Status))~dat$COV1,data=dat)


3) 绘制KM曲线图

#横轴表示生存时间,纵轴表示生存概率,为一条梯形下降的曲线。下降幅度越大,表示生存率越低或生存时间越短。

plot(fit,xlab="Time(Days)",ylab="Survival",main="",col=c("blue","red"),lty=2,lwd=2)

legend("topright",c("A","B"),col=c("blue","red"),lty=2,lwd=2,cex=0.7)

image.png


2、R-survminer包绘制KM曲线图:图形更精美,展示效果更好。

library("survminer") #载入R包

fit<- survfit(Surv(time, status) ~ sex, data = lung) #读取数据

#绘制KM图

ggsurvplot(fit, data = lung,

surv.median.line = "hv", # Add medians survival

# Change legends: title & labels

legend.title = "Sex",legend.labs = c("Male", "Female"),

# Add p-value and tervals

pval = TRUE,pval.size = 3,

# Change censor

censor.shape = 124,censor.size = 2,

conf.int = FALSE,# 有无置信区间

break.x.by = 100, #横轴坐便

# Add risk table

risk.table = TRUE,tables.height = 0.2,tables.theme = theme_cleantable(),

#palette = c("#E7B800", "#2E9FDF"),

palette = c("blue", "purple"),

ggtheme = theme_bw(), # Change ggplot2 theme

# Change font size, style and color

main = "Survival curve",

font.main = c(16, "bold", "darkblue"),

font.x = c(14, "bold.italic", "red"),

font.y = c(14, "bold.italic", "darkred"),

font.tickslab = c(12, "plain", "darkgreen")

)

image.png


后续再补充COX回归相关内容。。。。。。

相关文章
|
6月前
R语言生存分析: 时变竞争风险模型分析淋巴瘤患者
R语言生存分析: 时变竞争风险模型分析淋巴瘤患者
R语言生存分析: 时变竞争风险模型分析淋巴瘤患者
|
6月前
|
数据采集 存储 数据处理
使用R语言进行生存分析
【4月更文挑战第26天】R语言在生存分析中发挥着关键作用,尤其在医学、生物统计学和社会科学领域。借助&quot;survival&quot;包,研究者可处理生存数据、拟合模型并解释结果。
104 2
|
6月前
R语言解释生存分析中危险率和风险率的变化
R语言解释生存分析中危险率和风险率的变化
|
6月前
R语言使用限制平均生存时间RMST比较两条生存曲线分析肝硬化患者
R语言使用限制平均生存时间RMST比较两条生存曲线分析肝硬化患者
|
6月前
|
数据挖掘
R语言绘制生存曲线估计|生存分析|如何R作生存曲线图
R语言绘制生存曲线估计|生存分析|如何R作生存曲线图
|
6月前
|
数据挖掘
SPSS生存分析:Kaplan-Meier分析
SPSS生存分析:Kaplan-Meier分析
209 0
软技能:代码之外的生存指南
又到了读书摸鱼的时间了,本期推荐的书籍是:《软技能:代码之外的生存指南》
163 0
软技能:代码之外的生存指南
经济学之时间——时机不同,成果不同
经济学之时间——时机不同,成果不同 时间t包括两个属性,一个是时间的长短,一个是时机。时间的长短不同,获得的成果MV不同;发生的时机不同,获得的成果也不同。
1044 1