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

时间:2017-08-13 03:09:34

标签: r lme4

在glmer中,随机效应通常是分布式的。我的研究涉及非高斯随机效应分布。有没有办法为glmer指定非高斯随机效应分布?我知道可以有user-defined links - 我希望有一些类似的随机效果分布选项。如果没有,我会非常感谢如何编辑/贡献lme4 source code以允许非高斯随机拦截分布。

1 个答案:

答案 0 :(得分:4)

你想要的基本上是不可能的; lme4的机制非常强烈地依赖于条件模式的高斯分布(在链接/线性预测器尺度上)。

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

## 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。

中实施