繁体   English   中英

如何在R中结合Cox回归分析中的危险比和置信区间

[英]How to combine hazard ratios and confidence intervals from Cox regression analyses in R

我进行了Cox回归分析,包括四个变量(性别,年龄和两个二元解释变量),这些变量均与结果密切相关。 我使用了R中“生存”包中的coxph函数:

    library(survival)
cox <- coxph(Surv(time, status_risk==1) ~ sex + age + stone_number +stone_size, data=cox_cut)
    summary(cox1_3_cut)
Call:
coxph(formula = Surv(time, status_risk == 1) ~ sex + age + 
stone_number + stone_size, data = cox_cut)

n= 582, number of events= 48 
(82 observations deleted due to missingness)

                      coef exp(coef) se(coef)      z Pr(>|z|)    
sexfemale              0.76993   2.15961  0.34577  2.227 0.025966 *  
age                   -0.03222   0.96829  0.01201 -2.682 0.007311 ** 
stone_number>=2        0.60646   1.83393  0.29942  2.025 0.042821 *  
stone_size>10          1.02593   2.78969  0.29391  3.491 0.000482 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                  exp(coef) exp(-coef) lower .95 upper .95
sexfemale                2.1596     0.4630    1.0966    4.2530
age                      0.9683     1.0327    0.9458    0.9914
stone_number>=2          1.8339     0.5453    1.0198    3.2980
stone_size>10            2.7897     0.3585    1.5681    4.9629

我想制作一个预测评分表,其中包含四个变量,每个变量具有4个年龄分层的组(30、40、50、60岁)。 为了获得每个年龄组的HR,此表中的所有危险都必须除以一个预定义的危险。

对于R中的每个特定年龄组,如何使用95%CI来计算HR?

根据@shadow的评论,参数估计值的配置项基于整个数据集,如果您希望使用年龄条件配置项,则需要对数据进行子集化。 相反,如果您要生成以一组协变量(包括年龄)为条件的预期生存曲线,则应采用以下方法:

# Create a dummy dataset
df <- data.frame(sex = sample(c(T,F),100,T),
                 age = 50 + rnorm(100)*10,
                 foo = sample(c('a','b','c'),100,T),
                 bar = sample(c('x','y','z'),100,T),
                 status = sample(c(T,F),100,T),
                 start = 0,# required for the survfit with `individual = TRUE`
                 time = -log(runif(100)))

# fit the A coxph model in your full dataset data
cox <- coxph(Surv(start,time, status) ~ sex + age + foo + bar, data=df)


# create a data.frame with all the variables used in the formula
newData <- data.frame(sex = T,
                 age = 55,
                 foo = sample(c('a','b','c'),1),
                 bar = sample(c('x','y','z'),1),
                 status = T,# required but unused
                 start = 0,# required but unused
                 time = 1)# required but unused
# get a prediction from the fitted model, specifiying 'individual = TRUE'
pred  <-  survfit(cox, newdata=data.frame(newData),individual =TRUE)

# plot the survival curves 
matplot(x = cbind(pred$"time"),
        y = cbind(pred$surv,
                  pred$upper,
                  pred$lower),
        type = 'l',
        lty= c(1,2,2),
        main = 'Predicted Survial with 95% CI')

您也可以检查unclass(pred)summary(pred)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM