如何从 coxph 获得累积风险比的输出?

How do I get output of the cummulative Hazard ratio from coxph?

如何从 coxph 获得累积风险比的输出?

我有我的coxmodel

coxfit <- coxph(Surv(combi$survival, combi$realdeath) ~ combi$meanrr, combi)

并得到输出

# Call:
# coxph(formula = Surv(combi$survival, realdeath) ~ combi$meanrr, 
#     data = combi)
# 
#                   coef exp(coef)  se(coef)     z       p
# combi$meanrr -0.004140  0.995869  0.000905 -4.57 4.8e-06
# 
# Likelihood ratio test=21.9  on 1 df, p=2.94e-06
# n= 311, number of events= 70 

我知道我可以用 hr = exp(-0.004140)ci= exp(-0.004140-1.96*0.000905)exp(-0.004140+1.96*0.000905)

手动计算风险比

这将给我增加一个单位的 HR 和置信区间。

是否有一个函数可以将结果作为向量或 data.frame 提供给我?优先如果我可以定义感兴趣的单位数量,比如

somefunction(coxfit, unit_step)

但只计算累积风险比就可以了

您可以使用 basehaz()survfit() 提取累积风险。

在你的案例中为你的模型键入 str(basehaz(coxfit))str(survfit(coxfit)) 将揭示数据对象的结构,并提供 basehaz(coxfit)$hazardsurvfit(coxfit)$cumhaz 产生一个vector/dataframe-friendly 你想要的输出。

?basehaz 的帮助说明会告诉您 survfit() 是首选方法,实际上后者提供了全面的输出,包括 CI。

summary(coxfit) 给出了正确答案

coxph(formula = Surv(combi$survival, realdeath) ~ meanrr, data = combi)

  n= 311, number of events= 70 

             coef  exp(coef)   se(coef)      z Pr(>|z|)    
meanrr -0.0041399  0.9958687  0.0009055 -4.572 4.83e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

       exp(coef) exp(-coef) lower .95 upper .95
meanrr    0.9959      1.004    0.9941    0.9976

Concordance= 0.661  (se = 0.035 )
Rsquare= 0.068   (max possible= 0.92 )
Likelihood ratio test= 21.86  on 1 df,   p=2.938e-06
Wald test            = 20.9  on 1 df,   p=4.83e-06
Score (logrank) test = 21.24  on 1 df,   p=4.051e-06

其中增加一个单位的风险比为 exp(coef),置信区间为 lower/upper .95