[英]Running Cox.ph model with GAMM mixed models in R
我是使用GAM和樣條曲線的新手。 我正在運行一個生存模型,在該模型中,我想用兩個變量控制的受試者年齡來模擬事件發生時間。 這是使用帶有coxph的常規生存模型的示例:
library(survival)
fit_cox<-coxph(Surv(time, event)~ age+ var1 + var2, data=mydata)
我懷疑var1和var2與結果之間的關系不是線性的,而且我想我可以在模型中包括隨機效應(移至混合效應模型gamm)。 我已經嘗試過這種語法:
library(mgcv)
fit_surv<-Surv(time, event)
fit_gam<-gam(fit_surv ~ age + s(var1) + s(var2), data = mydata, family = cox.ph())
並包括隨機效果:
library(gamm4)
fit_gamm <- gamm4(fit_surv ~ age + s(var1) + s(var2), random = ~(1 | ID), data = mydata, family = cox.ph)
我的問題是:1.在fit_gam中,我不知道如何對該模型進行總結以及如何查看系數表並繪制模型。 這個錯誤傳給我:
summary(fit_gam)
“ Ops.Surv(w,object $ y)中的錯誤:生存時間上的無效操作”
先感謝您!
如評論中所述,可以在mgcv::gam
調用中直接指定簡單的高斯脆弱性(高斯隨機截距),例如,通過在mgcv::gam
添加... + s(ID, bs = "re") + ...
(請注意, ID
必須是一個因子變量)。
或者,您可以將數據轉換為所謂的分段指數數據(PED)格式,並使用任何GA(M)M軟件擬合模型,然后將其稱為分段指數可加混合模型(PAMM) 。 這是一個例子:
library(coxme)
library(mgcv)
library(pammtools)
lung <- lung %>% mutate(inst = as.factor(inst)) %>% na.omit()
## cox model with gaussian frailty
cme <- coxme(Surv(time, status) ~ ph.ecog + (1|inst), data=lung)
## pamm with gaussian frailty
ped <- lung %>% as_ped(Surv(time, status)~., id="id")
pam <- gam(ped_status ~ s(tend) + ph.ecog + s(inst, bs = "re"),
data = ped, family = poisson(), offset = offset)
## visualize random effect:
gg_re(pam)
# compare coxme and pamm estimates:
re <- tidy_re(pam)
plot(cme$frail$inst, re$fit, las=1, xlab="Frailty (cox)", ylab="Frailty (PAM)")
abline(0, 1)
## with gamm4
library(gamm4)
#> Loading required package: Matrix
#> Loading required package: lme4
#>
#> Attaching package: 'lme4'
#> The following object is masked from 'package:nlme':
#>
#> lmList
#> This is gamm4 0.2-5
pam2 <- gamm4(ped_status ~ s(tend) + ph.ecog, random = ~(1|inst),
family = poisson(), offset = ped$offset, data = ped)
lattice::qqmath(ranef(pam2$mer)$inst[, 1])
由reprex軟件包 (v0.2.1)創建於2018-12-08
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.