首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cox回归HR分组

Cox回归HR分组
EN

Stack Overflow用户
提问于 2021-10-05 08:14:16
回答 2查看 129关注 0票数 0

我想对以下问题进行Cox回归:一组患者是否接受“药物”治疗(0 / 1)。我的时间变量“时间”告诉我,病人被观察了多少天,以及如果病人存活或死亡(死亡= 1,存活= 0)的“状态”。

代码语言:javascript
复制
library(survival)

set.seed(123)

df <- data.frame(time = round(runif(100, min = 1, max = 70)), 
                 status = round(runif(100, min = 0, max = 1)),
                 drug = round(runif(100, min = 0, max = 1)),
                 age40 = round(runif(100, min = 0, max = 1)), 
                 stringsAsFactors = FALSE)

object <- Surv(df$time, df$status)
model <- coxph(object ~ drug, data = df)
summary(model)

这对我来说很好,并且告诉我,HR是0.89,所以这种药物可以防止病人死亡。

现在我想做一些子群分析,,f.e。如果病人是<= 40岁或> 40岁,HR如何变化(age40: 0 vs 1)。

要将变量"age40“包含到coxph中,我所要做的就够了吗?

代码语言:javascript
复制
object2 <- Surv(df$time, df$status)
model2 <- coxph(object2 ~ drug + age40, data = df)
summary(model2)

如果这样做,我在drug1摘要中的HR略有更改为0.86,而age40 (1.12)则会得到另一个。

现在我的问题是:如果病人是<= 40岁或40岁以上,那么在治疗中死亡的危险比率是多少(药物= 1)。

编辑:另一个问题是用图形显示药物对森林地块,f.e状态影响的不同HRs。就像这样:https://rpkgs.datanovia.com/survminer/reference/ggforest-2.png。而不是“性”、"rx“、”坚持“等等。我想显示Age40 =0vs.1和其他变量的HRs,比如高血压=0比1,吸烟者=0比1。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-08 18:01:58

您需要在predict上使用的函数是model2,它需要提供一个新数据参数,其中包括您想要考虑的所有情况:

代码语言:javascript
复制
exp( predict(model2, newdata=expand.grid(drug=c(0,1), age40=c(0,1))) )
#        1         2         3         4 
#1.0000000 0.8564951 1.1268713 0.9651598 

现在您有所有4例可能的药物和age40的组合。基本案例有一个统一的值,因为您正在估算风险比率,形成了{drug=0,age40=0}的基线情况,您可以看到其他风险比率与什么相关。

代码语言:javascript
复制
expand.grid(drug=c(0,1), age40=c(0,1))
  drug age40
1    0     0
2    1     0
3    0     1
4    1     1

请注意,对于单独考虑的每个年龄类别,drug=0与drug=1的比值是相同的。如果你想知道药物在这两种年龄类别中的作用是否不同,你可以使用一个交互作用模型:

代码语言:javascript
复制
model3 <- coxph(object2 ~ drug * age40, data = df)
summary(model3)
#----------------
Call:
coxph(formula = object2 ~ drug * age40, data = df)

  n= 100, number of events= 50 

               coef exp(coef) se(coef)      z Pr(>|z|)
drug       -0.18524   0.83091  0.45415 -0.408    0.683
age40       0.09611   1.10089  0.39560  0.243    0.808
drug:age40  0.05679   1.05843  0.63094  0.090    0.928

           exp(coef) exp(-coef) lower .95 upper .95
drug          0.8309     1.2035    0.3412     2.024
age40         1.1009     0.9084    0.5070     2.390
drug:age40    1.0584     0.9448    0.3073     3.645

Concordance= 0.528  (se = 0.042 )
Likelihood ratio test= 0.34  on 3 df,   p=1
Wald test            = 0.33  on 3 df,   p=1
Score (logrank) test = 0.33  on 3 df,   p=1

现在的影响估计有点不同:

代码语言:javascript
复制
 exp( predict(model3, newdata=expand.grid(drug=c(0,1), age40=c(0,1))) )
#        1         2         3         4 
#1.0000000 0.8309089 1.1008850 0.9681861 
票数 0
EN

Stack Overflow用户

发布于 2021-10-05 08:20:20

使用参数strata

代码语言:javascript
复制
coxph(object ~ drug + strata(age40), data = df)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69446950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档