【问题标题】:Multivariable cox regression analysis in R with non-binary categorical variables具有非二元分类变量的 R 中的多变量 cox 回归分析
【发布时间】:2020-03-14 07:55:57
【问题描述】:

我对包括非二元分类变量的多变量 cox 回归分析有疑问。 我的数据由几个变量组成,其中一些是二进制的(如性别、70 岁以上等) 而其余的则不是(例如,ECOG)

我尝试了 analyse_multivariate 函数和 coxph 函数,但似乎我只能获得关于非分类变量的总体风险比,但我想知道变量的总体风险比和子类别的个体风险比在变量中(例如 ECOG 0、ECOG 1、ECOG 2 和整体 ECOG 的风险比)

我在这个过程中尝试的是这样的:

(1)

ECOG = as.factor(df$ECOG)
analyse_multivariate(data=df, 
                     time_status = vars(df$OS, df$survival_status==1),
                     covariates = vars(df$age70, df$sex, ECOG),
                     reference_level_dict = c(ECOG==0))

结果是这样的:

Hazard Ratios:
factor.id      factor.name factor.value    HR Lower_CI Upper_CI Inv_HR Inv_Lower_CI Inv_Upper_CI
df$age70         df$age70 <continuous>  1.07     0.82     1.41   0.93         0.71         1.22
ECOG:4 ECOG            4  1.13     0.16     8.19   0.89         0.12         6.43
df$sex           df$sex <continuous>    1.87     0.96     3.66   0.53         0.27         1.04
ECOG:1 ECOG            1  2.14     1.63     2.81   0.47         0.36         0.61
ECOG:3 ECOG            3 12.12     7.83    18.76   0.08         0.05         0.13
ECOG:2 ECOG            2 13.72     4.92    38.26   0.07         0.03          0.2

(2)

analyse_multivariate(data=df, 
                     time_status = vars(df$OS, df$survival_status==1),
                     covariates = vars(df$age70, df$sex, df$ECOG),
                     reference_level_dict = c(ECOG==0))

结果是:


Hazard Ratios:
factor.id   factor.name factor.value   HR Lower_CI Upper_CI Inv_HR Inv_Lower_CI Inv_Upper_CI
df$age70   df$age70 <continuous> 0.89     0.68     1.16   1.13         0.86         1.47
df$sex     df$sex <continuous> 1.87     0.96     3.65   0.53         0.27         1.04
df$ECOG    df$ECOG <continuous>  1.9     1.69     2.15   0.53         0.47         0.59

如果我使用 (2) 中的 ECOG 总 p 值,如果 p 值

like 用于生成如下表:

                  p-value   0.01
ECOG 1   Reference  
ECOG 2   13.72 (4.92-38.26) 
ECOG 3   12.12 (7.83-18.76) 
ECOG 4   1.13 (0.16-8.19)   

我相信有更好的解决方案,但找不到。

任何 cmets 将不胜感激! 提前谢谢你。

【问题讨论】:

  • 嗨。你能找到它的解决方案吗?请回答您的问题。

标签: r cox


【解决方案1】:

简短的回答是否定的。在 (2) 中,它是一个连续响应,这意味着您期望生存的对数优势比与 ECOG 具有线性关系,而在 (1) 中,您期望每个级别(1 到 4)对生存有不同的影响。要测试变量 ECOG 集合,您可以进行方差分析:

library(survivalAnalysis)
data = survival::lung
data$ECOG = factor(data$ph.ecog)
data$sex = factor(data$sex)

fit1 = data %>%
  analyse_multivariate(vars(time, status),
                       covariates = vars(age, sex, ECOG, wt.loss))

anova(fit1$coxph)
Analysis of Deviance Table
 Cox model: response is Surv(time, status)
Terms added sequentially (first to last)

         loglik   Chisq Df Pr(>|Chi|)   
NULL    -675.02                         
age     -672.36  5.3325  1   0.020931 * 
sex     -667.82  9.0851  1   0.002577 **
ECOG    -660.26 15.1127  3   0.001723 **
wt.loss -659.31  1.9036  1   0.167680   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

【讨论】:

  • 我同意 Stupid 的观点。整体测试 ECOG 没有什么意义,因为这个变量不是连续变量。处理整体效果意味着您假设它充其量是一个值之间差异相等的序数变量,这正在推动理性的界限。没有一个头脑正常的肿瘤学家会同意这个假设。
  • StupidWolf 和 Edward,谢谢你们的 cmets!正如爱德华指出的那样,我的原始变量没有像上面的例子那样包括 ECOG,但我只是为了这个问题修改了变量的名称——但似乎我只是让你感到困惑。我非常同意你的评论!谢谢。
猜你喜欢
  • 2018-07-13
  • 2018-02-06
  • 1970-01-01
  • 2016-03-12
  • 2022-01-01
  • 1970-01-01
  • 2017-03-31
  • 2019-02-27
  • 2021-11-30
相关资源
最近更新 更多