![](/img/trans.png)
[英]'termlabels' error in coxph() function of survival package
[英]Error when model diagnostics on stratified variable with coxph (survival package) in R
我有一個數據集,其中 3 組已收到不同媒體的曝光。 一組暴露於 3 種媒體中的一種。 因此,我的 coxph 模型是分層的:
# My treatment variable is loaded as a factor.
fullModel <- coxph(Surv(time, status) ~ strata(treatment), data = d)
當我嘗試進行模型診斷時,我收到此錯誤:
test.assump <- cox.zph(fullModel)
Error in cox.zph(fullModel) :
there are no score residuals for a Null model
但是,如果我刪除了 strata() 參數,我可以在模型上運行診斷:
chisq df p
treatment 1.29 2 0.52
GLOBAL 1.29 2 0.52
我做了這個例子來重現我的錯誤:
data <- list(time=c(4,3,1,1,2,2,3,2,4,1,3,4),
status=c(1,1,1,0,1,1,0,1,1,0,0,1),
treatment=c(0,0,0,0,1,1,1,1,2,2,2,2))
cox.test <- coxph(Surv(time, status) ~ strata(treatment), data = data)
test.coxas <- cox.zph(cox.test)
ggcoxzph(test.coxas)
ggcoxdiagnostics(test.coxas, type = "schoenfeld",
linear.predictions = F)
我應該在沒有分層參數的情況下進行診斷嗎? 然后使用strata參數,這樣我就可以在ggsurvplot中繪制不同的曝光? 我在哪里錯了?
預先感謝您幫助我解決此問題。
考慮到我對您的應用程序的了解,並關注您提出的實際問題,我將使用strata()
是否是最佳建模選擇括起來。
Schoenfeld 殘差用於診斷 Cox 模型協變量的比例風險違規。 您的模型規范沒有協變量。 因此,您沒有需要診斷和可能糾正的 PH 違規,這就是cox.zph
拋出“空模型”錯誤的原因,如“此模型僅估計(Cox 模型的)截距項”。
換句話說:Schoenfeld 殘差是特定於協變量的量,因此如果 Cox 模型中沒有協變量,則無需計算 Schoenfeld。 cox.zph
的計算涉及 Schoenfeld 殘差,因此存在誤差。
相反,您有一個strata()
術語。 分層允許不同的組有不同的基線危險率(= Cox 版本的截距項,啟發式地講)。 您可能會分層的原因有很多,但其中一個是糾正可能的 PH 違規 - 正是這個問題導致您首先運行cox.zph
。 如果您繼續對treatment
進行分層,則沒有可供您運行的與 PH 相關的模型診斷。
(順便說一句:對於 MWE 中的ggcoxdiagnostics
,您需要傳入coxph
對象,而不是cox.zph
對象。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.