楼主: 段湘杰
3030 0

[学习分享] R语言统计与绘图:生存曲线的比较 [推广有奖]

  • 0关注
  • 1粉丝

本科生

24%

还不是VIP/贵宾

-

威望
0
论坛币
322 个
通用积分
31.3222
学术水平
15 点
热心指数
15 点
信用等级
15 点
经验
170 点
帖子
23
精华
0
在线时间
111 小时
注册时间
2018-6-15
最后登录
2023-6-25

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

来源:R语言统计与绘图 公众号,做学习分享用。

在临床研究中,常常需要进行生存率的比较,看看两组或多组人群生存率是否有差异。常用的统计方法有 log-rank 检验(也称 Mantel-Cox 检验)与 Breslow 检验(也称 Wilcoxon 检验)。

今天学习下在 R 中怎么实现生存率比较。

加载数据集

使用 survival 包自带的 colon 数据集进行分析。运行下列代码加载数据集:

install.packages("survival") # 安装进行生存分析的包
library(survival) # 加载包
data(colon)  # 加载内置 colon 数据集 
View(colon)  # 预览数据集

colon 数据集介绍戳这里

两组间生存率的比较

在 colon 数据集中,如要研究男性和女性之间的生存率是否有差异,该怎么做?

在 R 中常使用 survdiff() 函数进行生存率的比较,代码如下:

survdiff(Surv(time, status) ~ sex, data = colon)
# 默认使用 log-rank 检验

输出结果

Call:
survdiff(formula = Surv(time, status) ~ sex, data = colon)
        N Observed Expected (O-E)^2/E (O-E)^2/V
sex=0 890      444      436     0.136     0.259
sex=1 968      476      484     0.123     0.259
 Chisq= 0.3  on 1 degrees of freedom, p= 0.6 

结果显示 p = 0.6>0.05,可认为男性和女性之间的生存率没有差异。

多组间生存率的比较

在模型表达式“~”的右边指定多个变量,则检验是对由这些变量所有取值组合形成的分组进行的。

survdiff(Surv(time, status) ~ sex + rx, data = colon)

输出结果

Call:
survdiff(formula = Surv(time, status) ~ sex + rx, data = colon)
                    N Observed Expected (O-E)^2/E (O-E)^2/V
sex=0, rx=Obs     298      158      142     1.865     2.206
sex=0, rx=Lev     266      137      130     0.399     0.465
sex=0, rx=Lev+5FU 326      149      165     1.506     1.836
sex=1, rx=Obs     332      187      157     5.540     6.693
sex=1, rx=Lev     354      196      165     5.799     7.073
sex=1, rx=Lev+5FU 282       93      161    28.840    35.035
 Chisq= 44.1  on 5 degrees of freedom, p= 2e-08 

结果显示p= 2e-08<0.05,说明各组间总体生存率存在差异。

分层后不同组间生存率的比较

分析性别 (sex) 对生存率的影响在不同分化程度(differ)间是否存在差异?

使用 strata() 函数来控制分层变量。

survdiff(Surv(time, status) ~ sex + strata(differ), data = colon)

输出结果

Call:
survdiff(formula = Surv(time, status) ~ sex + strata(differ), 
    data = colon)
n=1812, 46 observations deleted due to missingness.
        N Observed Expected (O-E)^2/E (O-E)^2/V
sex=0 876      440      429     0.282     0.541
sex=1 936      459      470     0.257     0.541
 Chisq= 0.5  on 1 degrees of freedom, p= 0.5 

结果显示p= 0.5>0.05,说明性别 (sex) 对生存率的影响在不同分化程度(differ)间不存在差异。

survdiff() 函数

检验两组或多组生存曲线是否存在差别,函数调用格式为:

survdiff(formula, data, subset, na.action, rho=0, timefix=TRUE)

formula:如“Surv(time, status) ~ predictors” 的模型表达式;
data:模型表达式中变量来源的数据集;
subset:用于拟合模型的观测值的子集,默认为所有观测值;
na.action:处理缺失值的函数;
rho:设置统计检验类型,rho = 0为 log-rank 检验(默认),rho = 1为 Breslow 检验;

两种检验的区别
Breslow 检验给观察早期差别更大权重,即对观察早期差别敏感;而log-rank 检验对观察后期差别给相同权重,即对观察后期差别敏感。

End

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


已有 1 人评分论坛币 收起 理由
cheetahfly + 30 精彩帖子

总评分: 论坛币 + 30   查看全部评分

公众号:R语言统计与绘图。
您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 14:40