簡體   English   中英

cox.zph如何處理與時間相關的協變量?

[英]How does cox.zph deal with time-dependent covariates?

我有一個coxph模型,有5個時間相關和2個時間無關的變量。 我想測試比例風險假設,除了鞅和偏差殘差,使用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

據我了解, 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是Pearson在縮放的Shoenfeld殘差和g(t)之間的相關性,其中g是時間的函數(默認是Kaplan-Meier尺度;這里我們使用log ,正如你在圖中x軸的尺度上看到的那樣)下面)。 如果變量是時不變的,則繪制線的斜率應為零。 這基本上是chisq測試的。

更新 @Didi Ingabire - 根據您的意見:

因此, p值表示:

  • Schoenfeld殘差隨着時間的推移不是恆定的
  • 有證據表明變量/預測變量可能是時間依賴的
  • 此變量可能違反比例風險假設(在生成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是對模型最終形式的測試,以確保殘差隨時間變化相對恆定。

如果其中一個變量已經是時間的函數(當它進入模型時),這不會影響測試。 事實上,如果正確地模擬時間的影響,它應該更有可能產生具有高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)的解釋不是特別直觀,並且不太可能具有很大的實用價值。

區分時間因變量和不符合PH假設的變量很重要。

時間因變量是隨時間變化的變量。 這可能是血壓; 它會因不同的場合而有所不同。 然而,性別(性別)在不同場合不會有所不同。

然后是內部和外部時間相關變量之間的區別:

內部時間相關變量:由於個體內的變化(例如血壓)而變化的變量。

外部時間相關變量:環境/外部變化,可以改變個體所經歷的危害(例如,隨着工業在城市中的擴散,空氣污染隨着時間的推移而增加,因此心肌梗塞等疾病對人群的危害也會增加)。

無論變量的性質如何,是固定的還是時間依賴的,它都可能違反PH假設。 我可以提供一些例子,但可能更容易接受任何變量可能違反PH假設的事實。 即使您嘗試適應擴展Cox模型中的變化(例如,在計數過程格式中使用每個人的多個觀察),它也可以。

解決方案:您可以將任何預測器輸入到Cox模型中,並通過Thernau的生存包的cox.zph函數檢查它是否滿足PH。 SAS中的相應陳述將是“評估ph / resample”陳述。 如果變量違反了PH,那么解決這個問題的(可能)最簡單的方法就是在該變量和時間變量之間引入交互。

示例如下。 這是考克斯公式:

Survival = age + sex + blood_pressure

讓我們說血壓違反PH - >介紹以下術語:

Survival = age + sex + blood_pressure*survival_time_variable

這應該解決它,但你不能解釋血壓的主要影響,因為這個變量現在取決於時間。

另一個解決方案是對模型進行分層,但這不適用於連續變量和分類變量,一旦分層,變量不會作為協變量包含在結果模型中(即,您不會獲得風險比)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM