其他
R语言统计与绘图:生存曲线的两两比较
前面我们学习了基础绘图包和ggplot2包绘制生存曲线,还有生存率的比较,今天来学习下生存曲线的两两比较。
survdiff()
函数可以检验两条或者多条生存曲线之间是否有差异,但这个比较的是总体间是否存在差异,不能比较生存曲线之间两两是否存在差异。
在R中使用survminer包的pairwise_survdiff()
函数用来进行生存曲线之间的多重比较。
1. 加载数据集
library(survival) # 加载含内置数据集的包
data(colon) # 加载数据集
View(colon) # 预览数据集
str(colon) # 查看数据集结构
数据集介绍见这篇文章——常用内置数据集介绍。
从数据集介绍中我们知道rx为三分类变量,extent为四分类变量,status为删失状态,time为生存时间。
2. 生存曲线的多重比较(一)
根据rx变量分组绘制生存曲线。
library(survminer) # 加载包
restest <- pairwise_survdiff(Surv(time, status) ~ rx,
data = colon)
restest
输出:
Pairwise comparisons using Log-Rank test
data: colon and rx
Obs Lev
Lev 0.78 -
Lev+5FU 3.3e-07 9.5e-07
P value adjustment method: BH
结果解释:
rx变量共分为三组:观察组(Obs
),治疗组1(Lev
)和治疗组2(Lev+5FU
)。
从结果可知,Obs组 vs Lev组 p-value=0.78
,无统计学意义,两组生存率没有差异。同理可知,Obs组 vs Lev+5FU组和Lev组 vs Lev+5FU组的生存率都有统计学差异。
3. 生存曲线的多重比较(二)
根据extent变量分组绘制生存曲线。
在colon数据集,extent为四分类变量,我们先将其转换为因子,并添加标签。
colon$extent <- factor(colon$extent,
levels = c(1,2,3,4),
label = c("submucosa","muscle","serosa","contiguous structures"))
is.factor(colon$extent) # 查看变量是否为因子
[1] TRUE
levels(colon$extent) # 查看因子水平
[1] "submucosa" "muscle" "serosa"
[4] "contiguous structures"
# library(survminer) # 加载包
restest <- pairwise_survdiff(Surv(time, status) ~ extent,
data = colon)
restest
输出:
Pairwise comparisons using Log-Rank test
data: colon and extent
submucosa muscle serosa
muscle 0.16535 - -
serosa 0.00064 8.1e-07 -
contiguous structures 2.8e-06 7.1e-11 0.00013
P value adjustment method: BH
结果解释:同rx。
4. P值用符号"*"表示
此函数可以使用符号“*
”来表示p值范围。
symnum(restest$p.value, cutpoints = c(0, 0.0001, 0.001, 0.01, 0.05, 0.1, 1),
symbols = c("****", "***", "**", "*", "+", " "),
abbr.colnames = FALSE, na = "")
输出:
submucosa muscle serosa
muscle
serosa *** ****
contiguous structures **** **** ***
attr(,"legend")
[1] 0 ‘****’ 1e-04 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1 \t ## NA: ‘’
说明:
p-value在0 - 0.0001之间用“****”表示;
在0.0001 - 0.001之间用“***”表示;
在0.001 - 0.01之间用“**”表示;
在0.01 - 0.05之间用“*”表示;
在0.05 - 0.1之间用“+”表示;
在0.1 - 1之间用“ ”表示。
5. pairwise_survdiff()函数
pairwise_survdiff(formula, data, p.adjust.method = "BH", na.action,
rho = 0)
formula:与其他生存模型一样的表达式,表示为Surv(time, status) ~ predictors。
data:数据框,公式中变量的来源。
p.adjust.method:调整p值的方法(参阅p.adjust)。
允许的值包括"holm", "hochberg", "hommel", "bonferroni", "BH", "BY", "fdr", "none".
如果不想调整p值(不建议),请使用p.adjust.method = "none"。
na.action:缺失值处理函数。
rho:控制检验类型的参数,允许的值有0(用于log-rank检验)和1(用于peto & peto检验)。
参考资料:
pairwise_survdiff()函数帮助文件
End
R语言统计与绘图
长按二维码识别关注
回复关键词有惊喜(长按复制)
"R语言实战","学无止",“prism”