R语言获取生存分析中连续变量的最佳截断值

在生存分析中,如果咱们研究的是连续变量,咱们有时候需要对连续变量进行一个截断,比较截断的两部分的生存率。比如基因的高表达和低表达对生存率的影响,高龄患者和低龄患者生存率的影响。
然而怎么取这个截断点也是有讲究的,自己截断的话,有可能生存率并无明显差别,P>0.05。

在这里插入图片描述

今天咱们通过survminer包来演示怎么对连续变量怎么获取最佳截断值,继续使用我们的乳腺癌数据(公众号回复:乳腺癌,可以获得数据)我们先导入数据和R包library(foreign)

library(survival)
library(survminer)
bc <- read.spss("E:/r//test/Breast cancer survival agec.sav",
                use.value.labels=F, to.data.frame=T)

在这里插入图片描述
我们先来看看数据:
age表示年龄,pathsize表示病理肿瘤大小(厘米),lnpos表示腋窝淋巴结阳性,histgrad表示病理组织学等级,er表示雌激素受体状态,pr表示孕激素受体状态,status结局事件是否死亡,pathscat表示病理肿瘤大小类别(分组变量),ln_yesno表示是否有淋巴结肿大,time是生存时间,后面的agec是我们自己设定的,不用管它。

假设咱们想研究不同年龄段的乳腺癌对生存率的影响,需要通过一个截点把年龄分成高龄和低龄两个组。
需要使用到survminer 包的surv_cutpoint函数,data填入你的数据,time填入你的时间,event填入结局变量,variables这里填入要分析的变量

res.cut <- surv_cutpoint(data=bc, time = "time", event = "status",
                         variables = c("age"))
res.cut

在这里插入图片描述
我们可以看到截点是44岁这里,可以把大于44岁分成一组和小于44岁分成一组。还可以绘图看下分布。

plot(res.cut, "age", palette = "npg")

在这里插入图片描述
Palette这个参数还可以选风格,比如咱们选个柳叶刀风格。此外风格还有"npg", “aaas”, “lancet”, “jco”, “ucscgb”, “uchicago”, “simpsons” and "rickandmorty"等

plot(res.cut, "age", palette = "lancet")

在这里插入图片描述
转换年龄这个变量咱们不用手动转换,survminer包提供了函数surv_categorize,可以直接转换。

res.cat <- surv_categorize(res.cut)
head(res.cat)

在这里插入图片描述
咱们可以看到,age被函数转成了高和低2组,大于截点44的是高组,小于的就是低组。
咱们用这个转化好的数据来进行K-M分析看看,先建立模型

fit <- survfit(Surv(time, status) ~age, data = res.cat)

绘图

ggsurvplot(fit, data = res.cat, risk.table = TRUE, conf.int = TRUE,pval = T)

在这里插入图片描述
由上图可以看出,截断后的高组和低组生存率存在明显差异。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天桥下的卖艺者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值