通过Cox回归对特定组进行Logrank检验

时间:2015-09-29 16:23:10

标签: r survival-analysis cox-regression

我有一个生存数据集。我想进行一项治疗的logrank测试,分为4类。我不能使用| Id | Numero | FechaRegistro |P1(00:02:00)|P2(00:24:00)| Cierre | |----|--------|-----------------------------|------------|------------|-----------------------------| | 1 | 111 | September, 29 2015 13:25:00 | 00:05:00 | 00:20:00 | September, 29 2015 13:54:00 | | 2 | 222 | September, 29 2015 13:25:00 | 00:25:00 | (null) | September, 29 2015 14:14:00 | 命令,因为这些统计数据的渐近分布是卡方,我需要正常性(我在多重插补设置中执行此操作并稍后汇集)。相反,我想运行Cox回归,然后运行分数测试,这将是正常分布的。

所以,我想做的是采取我的4个类别,然后将它们分成几个组来单独比较它们。例如

治疗2与治疗3:在不破坏数据的情况下是否可以做到这一点?假设我们有来自包KMsurv

的刻录数据集
survdiff()

这输出logrank测试1 vs 2 vs 3 vs 4,但我只想要2 vs 3。 我知道我可以通过在此命令之前运行来获得它

library(KMsurv)

> summary(coxph(Surv(T1,D1)~factor(Z11),data=burn))
Call:
coxph(formula = Surv(T1, D1) ~ factor(Z11), data = burn)

  n= 154, number of events= 99 

            coef exp(coef) se(coef)      z Pr(>|z|)  
  factor(Z11)2 -0.9820    0.3745   0.4956 -1.982   0.0475 *
  factor(Z11)3 -1.6872    0.1850   0.8029 -2.101   0.0356 *
  factor(Z11)4 -0.4070    0.6656   0.3957 -1.029   0.3037  
 ...
 Likelihood ratio test= 9.17  on 3 df,   p=0.0271
 Wald test            = 7.38  on 3 df,   p=0.06083
 Score (logrank) test = 8  on 3 df,   p=0.04602

但是当我们不得不做比较1,2和4

之类的事情时,这将变得乏味且难以调试

那么,有没有办法在coxph命令中选择要比较的组,或者是选择组之前预先设置它们的唯一方法呢?

1 个答案:

答案 0 :(得分:2)

使用subset函数中的coxph参数。见?coxph

但您还需要从burn$Z11

中删除不需要的因子级别

所以你可以做到

summary(coxph(Surv(T1,D1)~factor(Z11,levels=c('2','3')),data=burn, subset=Z11 %in% c('2','3')))

或者像

一样方便
mylevels <- c('2','3')  #specify factor levels for subset
summary(coxph(Surv(T1,D1)~factor(Z11,levels=mylevels),data=burn, subset=Z11 %in% mylevels))

也看到这个线程做一个包装器,其中子集被定义为包装函数中的参数:

https://stat.ethz.ch/pipermail/r-help/2007-November/145345.html