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

通过Cox回归对特定群体进行Logrank检验,r,survival-analysis,cox-regression,R,Survival Analysis,Cox Regression,我有一个生存数据集。我想对一种治疗进行logrank测试,分为4类。我不能使用survdiff()命令,因为这些统计数据的渐近分布是卡方分布,我需要正态性(我将在后面的多重插补设置和池中进行此操作)。相反,我想运行Cox回归,然后运行分数测试,这将是正态分布的 所以,我想做的是把我的4个分类,然后把它们分成几个组,分别进行比较。比如说 治疗2与治疗3:是否可以在不分解数据的情况下实现这一点?假设我们有来自包KMsurv的burn数据集 library(KMsurv) > summary(

我有一个生存数据集。我想对一种治疗进行logrank测试,分为4类。我不能使用
survdiff()
命令,因为这些统计数据的渐近分布是卡方分布,我需要正态性(我将在后面的多重插补设置和池中进行此操作)。相反,我想运行Cox回归,然后运行分数测试,这将是正态分布的

所以,我想做的是把我的4个分类,然后把它们分成几个组,分别进行比较。比如说

治疗2与治疗3:是否可以在不分解数据的情况下实现这一点?假设我们有来自包KMsurv的burn数据集

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对3对4的logrank测试,但我只想要2对3。 我知道我可以在这个命令之前运行它

subsetted=subset(burn,Z11==2|Z11==3)
summary(coxph(Surv(T1,D1)~factor(Z11),data=subsetted))
但是,当我们不得不比较1,2和4时,这将变得乏味且难以调试


那么,是否有任何方法可以在coxph命令中选择要比较的组,或者是选择组的唯一方法来预先设置它们?

使用
coxph
函数中的
subset
参数。参见
?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))

mylevels我想这几乎回答了这个问题。如果我想比较第1组与第2组和第3组,我会怎么做?
MyLevel比较第1组和第2组与第3组的正确方法是对比。我建议在LR测试可用时使用分数统计是错误的方法。事实上,有“正常理论”策略来处理这一问题并不是使用劣等统计测试的令人信服的理由。没有正常性,我无法汇集我的结果(据我所知,我目前正在通过鲁宾规则汇集)。所以我觉得这是一种互让。我们在测试中失去了一些最佳性,但我们获得了将结果汇集到许多插补数据集的能力。您知道使LR测试正态分布的转换吗?我知道它是卡方,但平方根将是卡方分布的,而不是正态分布。正如我所读到的,这些运算是对单个估计值及其标准误差进行的,而不是用全局拟合度量。生存分析的参数估计被假定为正态分布。