glmer 的用户定义随机截距分布

User-defined random intercept distribution for glmer

在 glmer 中,随机效应呈正态分布。我的研究涉及非高斯随机效应分布。有没有办法为 glmer 指定非高斯随机效应分布?我知道可以 user-defined links -- I'm hoping there's some similar option for random effects distributions. If not, I'd appreciate insights for how to edit/contribute to lme4 source code 允许非高斯随机截距分布。

你想要的基本不可能; lme4 的机制非常依赖于条件模式的高斯分布(在 link/linear-predictor 尺度上)。

如果我想用随机效应的非高斯分布拟合模型,我会使用贝叶斯工具箱方法(JAGS 或 Stan,或 PyMC ...)。 Richard McElreath 的 rethinking 包可能会提供一个 相对 无痛的前端来构建适当的 Stan 模型......例如,下面的代码假设一个 t 分布而不是高斯随机effect 和 "works"(即运行没有错误 - 我会警告你,要让它进行可靠的估计仍然需要大量工作)

## devtools::install_github("rmcelreath/rethinking")
## also need to install rstan ...
library(lme4)
library(rethinking)

f2 <- alist(
    Reaction ~ dnorm( mu , sigma ),
    mu <- b0 + b0j[Subject] + b1*Days,
    b0j[Subject] ~ dstudent(df, 0 , sigma_group ),
    b0 ~ dnorm( 0 , 10 ),
    b1 ~ dnorm( 0 , 10 ),
    sigma ~ dlnorm( 0 , 1 ),
    sigma_group ~ dlnorm( 0 , 1 ),
    df ~ dlnorm(5,1)
)

m1 <- map2stan(f2, data=sleepstudy, verbose=TRUE)

一些算法被设计用于在更传统的频率论者、基于优化的框架(例如,Google scholar search on "non-Gaussian random effects")中使用非高斯随机效应进行混合建模,但我不知道它们中的任何一个具有已在 R 中实现。