为 Cox 模型运行 cox.zph 时出现错误“系统在计算上是奇异的”

机器算法验证 r cox模型 比例风险
2022-04-16 15:35:20

我已经在 R 中构建了一个扩展的 Cox 模型,具有时间相关的协变量,如此R 小插图中所述。

我通过运行以下命令构建了模型:

analise_teste <- coxph(Surv(tstart, tstop, Falecido) ~ Idade_no_diagnostico + Nr_cirurgias_acumuladas + Nr_infeccoes_acumuladas + Nr_dias_internamento_acumulados + Severidade + Mortalidade + Centro_Referencia ,data=analise_survival_extended_Cox_PH)

summary(analise_teste)

结果如下:

Call:
coxph(formula = Surv(tstart, tstop, Falecido) ~ Idade_no_diagnostico + 
    Nr_cirurgias_acumuladas + Nr_infeccoes_acumuladas + Nr_dias_internamento_acumulados + 
    Severidade + Mortalidade + Centro_Referencia, data = analise_survival_extended_Cox_PH)

  n= 331838, number of events= 46539 

                                      coef  exp(coef)   se(coef)       z Pr(>|z|)    
Idade_no_diagnostico             0.0061236  1.0061424  0.0003944  15.525  < 2e-16 ***
Nr_cirurgias_acumuladas         -0.3067127  0.7358620  0.0072666 -42.208  < 2e-16 ***
Nr_infeccoes_acumuladas         -0.0089313  0.9911084  0.0073480  -1.215    0.224    
Nr_dias_internamento_acumulados  0.0036138  1.0036203  0.0001373  26.318  < 2e-16 ***
Severidade1                     -0.8645586  0.4212375  0.0332277 -26.019  < 2e-16 ***
Severidade2                     -0.1430922  0.8666742  0.0242101  -5.910 3.41e-09 ***
Severidade3                      0.2056173  1.2282830  0.0216205   9.510  < 2e-16 ***
Severidade4                             NA         NA  0.0000000      NA       NA    
Mortalidade1                    -2.0655212  0.1267522  0.0294538 -70.128  < 2e-16 ***
Mortalidade2                    -1.4821604  0.2271464  0.0204496 -72.479  < 2e-16 ***
Mortalidade3                    -0.5915275  0.5534812  0.0175193 -33.764  < 2e-16 ***
Mortalidade4                            NA         NA  0.0000000      NA       NA    
Centro_Referencia1              -0.2474286  0.7808060  0.0159085 -15.553  < 2e-16 ***
Centro_Referencia2              -0.1390621  0.8701740  0.0240100  -5.792 6.96e-09 ***
Centro_Referencia3              -0.0079389  0.9920925  0.0384875  -0.206    0.837    

但是,当我尝试运行 cox.zph 来检查比例风险假设时,我收到以下错误:

> cox.zph(analise_teste)
Error in solve.default(imat, u) : 
  system is computationally singular: reciprocal condition number = 6.75764e-19

这只发生在我在构建模型时添加协变量 Severidade 和/或 Mortalidade(或两者,如本例中)时。如果没有这些变量,我可以得到 cox.zph 的结果。

Severidade 和 Mortalidade 都是因子变量,可能有 4 个值:“1”、“2”、“3”和“4”。

什么可能导致此错误?

1个回答

我刚遇到这个问题,并解决了。希望这会对您有所帮助:

我从我的数据集中删除了一个小组,基于具有三个水平的协变量。但是,该协变量已设置为具有三个水平的因子。我注意到有 NA 出现在那个级别。当我将协变量重铸为两个级别时,错误就消失了。

这可能适用于 R 中具有因子水平的其他事物。