混合模型的残差建模:除了 nlme 之外还有其他包吗?
Residual modeling for mixed models: Any other package than nlme?
除了 R 函数 nlme::lme()
,我想知道我还能如何对 Level-1 残差方差-协方差结构建模?
ps. 我的搜索表明我可以使用 glmmTMB
包,但它似乎与 1 级残差无关,而是随机效应本身(见下方代码)。
glmmTMB::glmmTMB(y ~ times + ar1(times | subjects), data = data) ## DON'T RUN
nlme::lme (y ~ times, random = ~ times | subjects,
correlation = corAR1(), data = data) ## DON'T RUN
glmmTMB
可以有效地用于对 1 级残差进行建模,方法是向模型添加观察级随机效应(并在必要时通过 dispformula ~ 0
抑制 1 级方差)。对于例如,比较 lme
和 glmmTMB
中的相同拟合:
library(glmmTMB)
library(nlme)
data("sleepstudy" ,package="lme4")
ss <- sleepstudy
ss$times <- factor(ss$Days) ## needed for glmmTMB
我最初尝试使用 random = ~Days|Subject
,但 lme
和 glmmTMB
都不满意(过度拟合):
lme1 <- lme(Reaction ~ Days, random = ~1|Subject,
correlation=corAR1(form=~Days|Subject), data=ss)
m1 <- glmmTMB(Reaction ~ Days + (1|Subject) +
ar1(times + 0 | Subject),
dispformula=~0,
data=ss,
REML=TRUE,
start=list(theta=c(4,4,1)))
不幸的是,为了用 glmmTMB
得到一个好的答案,我不得不调整起始值 ...
除了 R 函数 nlme::lme()
,我想知道我还能如何对 Level-1 残差方差-协方差结构建模?
ps. 我的搜索表明我可以使用 glmmTMB
包,但它似乎与 1 级残差无关,而是随机效应本身(见下方代码)。
glmmTMB::glmmTMB(y ~ times + ar1(times | subjects), data = data) ## DON'T RUN
nlme::lme (y ~ times, random = ~ times | subjects,
correlation = corAR1(), data = data) ## DON'T RUN
glmmTMB
可以有效地用于对 1 级残差进行建模,方法是向模型添加观察级随机效应(并在必要时通过 dispformula ~ 0
抑制 1 级方差)。对于例如,比较 lme
和 glmmTMB
中的相同拟合:
library(glmmTMB)
library(nlme)
data("sleepstudy" ,package="lme4")
ss <- sleepstudy
ss$times <- factor(ss$Days) ## needed for glmmTMB
我最初尝试使用 random = ~Days|Subject
,但 lme
和 glmmTMB
都不满意(过度拟合):
lme1 <- lme(Reaction ~ Days, random = ~1|Subject,
correlation=corAR1(form=~Days|Subject), data=ss)
m1 <- glmmTMB(Reaction ~ Days + (1|Subject) +
ar1(times + 0 | Subject),
dispformula=~0,
data=ss,
REML=TRUE,
start=list(theta=c(4,4,1)))
不幸的是,为了用 glmmTMB
得到一个好的答案,我不得不调整起始值 ...