R语言 运行“生存”包的考克斯比例风险模型时,为什么系数名称不显示在输出中?

jhkqcmku  于 2023-03-15  发布在  其他
关注(0)|答案(2)|浏览(84)

我正在运行survival包中的coxph()函数,并使用http://www.sthda.com/english/wiki/cox-proportional-hazards-model中的一个示例,使用一元考克斯回归和survival包的“lung”数据集中提供的肺癌数据。当我运行底部发布的代码时,我得到了res.cox对象的输出,如下图所示。根据链接,比较危害性别变量的女性亚组相对于男性基线亚组的(死亡风险)。但是,这个输出没有显示哪个子集正在与正在研究的变量的哪个基线进行比较。是否有办法运行coxph()函数,以便显示比较基数?我已经通读了生存软件包文档,无法'我不知道如何生成它。它至少应该为回归系数指示“女性”,如果它还显示女性与之比较的基线,那就更好了。在这种情况下,只有性别变量的2个子集,但还有其他变量具有两个以上的子集,看到标记的比较会很有帮助。

代码:

library(survival)
library(survminer)

### Example data set ###
head(lung)

### Univariate Cox regression ###
res.cox <- coxph(Surv(time, status) ~ sex, data = lung)
res.cox
wqnecbli

wqnecbli1#

在这种情况下,我们社会学家通常会创造一个虚拟人。

library(survival)

lung$female <- +(lung$sex == 2)

coxph(Surv(time, status) ~ female, data = lung)
# Call:
# coxph(formula = Surv(time, status) ~ female, data = lung)
# 
#           coef exp(coef) se(coef)      z       p
# female -0.5310    0.5880   0.1672 -3.176 0.00149
# 
# Likelihood ratio test=10.63  on 1 df, p=0.001111
# n= 228, number of events= 165
lmvvr0a8

lmvvr0a82#

在肺部数据中,性别变量被编码为数值变量。您可以使用factor或字符变量将其转换为分类变量

class(lung$sex)
[1] "numeric"

lung=lung%>%
mutate(sex=ifelse(sex==1,"male","female"))
res.cox <- coxph(Surv(time, status) ~ sex, data = lung)
res.cox

Call:
coxph(formula = Surv(time, status) ~ sex, data = lung)

          coef exp(coef) se(coef)     z       p
sexmale 0.5310    1.7007   0.1672 3.176 0.00149

Likelihood ratio test=10.63  on 1 df, p=0.001111
n= 228, number of events= 165

在输出中,男性与女性进行比较,女性被视为参考。您可以通过将其转换为因子并更改参考来更改此设置

lung$sex=relevel(factor(lung$sex),ref="male")
res.cox <- coxph(Surv(time, status) ~ sex, data = lung)
res.cox
Call:
coxph(formula = Surv(time, status) ~ sex, data = lung)

             coef exp(coef) se(coef)      z       p
sexfemale -0.5310    0.5880   0.1672 -3.176 0.00149

Likelihood ratio test=10.63  on 1 df, p=0.001111
n= 228, number of events= 165

相关问题