【问题标题】:Residual modeling for mixed models: Any other package than nlme?混合模型的残差建模:除了 nlme 之外的任何其他软件包?
【发布时间】:2020-11-18 12:40:04
【问题描述】:

除了 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 

【问题讨论】:

  • "有那个包吗?"对 SO 来说是题外话,但是“我怎么能……?”不是(即使答案是“尝试包 XXX”)
  • lme4 包??检查here
  • 更多上下文也会有所帮助,即lme 对您不起作用有什么特殊原因吗?或者这纯粹是出于好奇?
  • 确实如此。你确实使用lme4 包作为一级残差
  • 差异是由于使用了不同的sigma。在第二个示例中,使用 sigma_long

标签: r regression lme4 mixed-models nlme


【解决方案1】:

glmmTMB 可以有效地用于对 1 级残差建模,方法是向模型添加观察级随机效应(如有必要,通过dispformula ~ 0 抑制 1 级方差。例如,比较相同的拟合在lmeglmmTMB

library(glmmTMB)
library(nlme)

data("sleepstudy" ,package="lme4")
ss <- sleepstudy
ss$times <- factor(ss$Days)  ## needed for glmmTMB

我最初尝试使用random = ~Days|Subject,但lmeglmmTMB 都不满意(过度拟合):

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 的好答案,我不得不调整起始值...

【讨论】:

  • 非常感谢,本!这是出于好奇;知道glmmTMB 允许随机效应 var-covar 建模,但不允许 1 级残差建模,这对我来说听起来有点奇怪。我还想知道glmmTMBlme() 之间是否有任何链接,您的代码非常清楚地显示了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-29
  • 1970-01-01
  • 2018-12-07
  • 2018-08-22
  • 2021-07-26
  • 2021-02-16
相关资源
最近更新 更多