6

5 つの時間依存変数と 2 つの時間非依存変数を持つ coxph モデルがあります。cox.zph を使用して、比例ハザードの仮定と、マーチンゲール残差と逸脱残差をテストしたいと考えています。私の質問は、この関数が時間依存の共変量をどのように処理するかです。

Grant et al.,2014を読んだ後、これが時変共変量の PH 仮定を評価するために推奨される適合度検定であるかどうかはわかりません。

モデル:

teste<-coxph(Surv(tempo1,tempo2,status)~sexo+CODE_06+factor(clima)+TP_media7
             +ndvi+peso+epoca,data=newftable,na.action=na.fail)

> cox.zph(teste)
                         rho    chisq      p
sexoM                 0.0844  0.32363 0.5694
CODE_06Regadio        0.1531  0.66865 0.4135
CODE_06Sequeiro       0.2278  1.65735 0.1980
factor(clima)8       -0.1823  1.16522 0.2804
factor(clima)9        0.1051  0.24456 0.6209
factor(clima)15      -0.0193  0.00945 0.9226
TP_media7(12,22]      0.1689  0.75604 0.3846
TP_media7(22,32]      0.1797  1.03731 0.3084
TP_media7(32,41]      0.1060  0.34036 0.5596
ndvi(3e+03,4e+03]    -0.1595  1.00006 0.3173
ndvi(4e+03,5e+03]     0.0421  0.05233 0.8191
ndvi(5e+03,6e+03]     0.1750  0.98816 0.3202
ndvi(6e+03,8.05e+03] -0.0311  0.02880 0.8653
peso[850,1005]        0.2534  3.34964 0.0672
epocamid_inv_rep      0.0193  0.01219 0.9121
epocamid_pos_inv     -0.2193  0.93355 0.3339
epocamid_rep_pos      0.0231  0.01341 0.9078
epocapos_repr         0.2073  1.09893 0.2945
epocarepr             0.0766  0.12905 0.7194
GLOBAL                    NA 19.79229 0.4072
4

2 に答える 2

7

私が理解しているように、共変量が時間とは無関係にcox.zphモデルに入る必要があるかどうかに関するテストです。予測子が時間依存であることが既にわかっている場合、これは適切なアプローチではないようです。これについての簡単な方法を私は知りません。そのような質問は、Cross Validatedでより受容的な聴衆を見つけるかもしれません。

再現可能な例として、Therneauからそれを使用できます。

library(survival)
veteran$celltype <- relevel(veteran$celltype, ref="adeno")
f1 <- coxph(Surv(time, status) ~
            trt + celltype + karno + diagtime + age + prior,
            data=veteran)
(z1 <- cox.zph(f1, transform="log"))

                       rho   chisq        p
trt               -0.01561  0.0400 0.841486
celltypesquamous  -0.16278  3.8950 0.048431
celltypesmallcell -0.11908  2.2199 0.136238
celltypelarge      0.00942  0.0121 0.912551
karno              0.29329 11.8848 0.000566
diagtime           0.11317  1.6951 0.192930
age                0.20984  6.5917 0.010245
prior             -0.16683  3.9873 0.045844
GLOBAL                  NA 27.5319 0.000572

rhoは、スケーリングされた Shoenfeld 残差とg(t)の間のピアソンの相関です。ここで、g は時間の関数です (デフォルトは Kaplan-Meier スケールです。以下のプロットのxlog軸のスケールでわかるように、ここでは を使用しています)。 )。変数が時不変である場合、プロットされた線の傾きはゼロになるはずです。これは本質的に、chisqがテストするものです。

@Didi Ingabire を更新- あなたのコメントに照らして:

したがって、低い p値は次のことを示します。

  • シェーンフェルド残差は時間の経過とともに一定ではありません
  • 変数/予測因子が時間依存である可能性があるという証拠がある
  • 比例ハザードの仮定 (coxphモデルの生成時に行われる) は、この変数によって違反される可能性があります

これは次のように視覚的に確認できます。

for (i in 1:(nrow(z1$table)-1)){
    plot(z1[i], main="Scaled Schoenfeld residuals by time with smooth spline
If <0 indicates protective effect")
    graphics::abline(a=0, b=0, col="black")
}

たとえば、次のようになります。

ここに画像の説明を入力

更新@JMarcelinoこれはcox.zph、残差が時間の経過とともに比較的一定であることを確認するための、モデルの最終形式のテストであると言うことです。

変数の 1 つが(モデルに入った時点で)既に時間の関数である場合、これはテストに影響しません。実際、時間の影響が正しくモデル化されていれば、p値が高い平坦な線が生成される可能性が高くなります。

また、比例ハザードをテストすることは、ハザード比が時間の経過とともに一定であることをテストすることを意味しますか? . 変数が時間依存かどうか (モデルに入るとき) は重要ではありません。テストされているのは、モデルの最終的な形です。

たとえば、代わりにkarno、それと時間の両方に関連する変数を次のように入力できます。

f2 <- coxph(Surv(time, status) ~
            trt + celltype + log(karno * time) + diagtime + age + prior,
            data=veteran)
(z2 <- cox.zph(f2, transform="log"))

                      rho  chisq     p
trt                0.0947 1.4639 0.226
celltypesquamous  -0.0819 1.1085 0.292
celltypesmallcell -0.0897 1.3229 0.250
celltypelarge      0.0247 0.0968 0.756
log(karno * time) -0.0836 0.6347 0.426
diagtime           0.0463 0.2723 0.602
age                0.0532 0.3493 0.554
prior             -0.0542 0.3802 0.538
GLOBAL                 NA 7.6465 0.469

これにより、比例ハザードの仮定により適したモデルが得られます。ただし、係数の解釈はlog(karno * time)特に直観的ではなく、実際に大きな価値があるとは考えにくい.

于 2014-07-10T05:19:55.887 に答える