glmm中的R结构G结构是什么?

机器算法验证 r 贝叶斯 混合模式 lme4-nlme
2022-02-03 22:01:09

我最近一直在使用这个MCMCglmm包。我对文档中提到的 R 结构和 G 结构感到困惑。这些似乎与随机效应有关 - 特别是指定它们的先验分布的参数,但文档中的讨论似乎假设读者知道这些术语是什么。例如:

具有 3 个可能元素的先验规范的可选列表:R(R-结构)G(G-结构)和 B(固定效应)............ 方差结构的先验(R 和 G ) 是具有预期 (co) 方差 (V) 和置信度参数 (nu) 的逆Wishart 列表

...取自这里

编辑:请注意,我已经根据 Stephane 的评论重新编写了剩下的问题。

在线性预测变量为的简单方差分量模型的背景下,任何人都可以阐明什么是 R 结构和 G 结构

β0+e0ij+u0j
e0ijN(0,σ0e2)u0jN(0,σ0u2)

我用一些附带的数据做了下面的例子MCMCglmm

> require(MCMCglmm)
> require(lme4)
> data(PlodiaRB)
> prior1 = list(R = list(V = 1, fix=1), G = list(G1 = list(V = 1, nu = 0.002)))
> m1 <- MCMCglmm(Pupated ~1, random = ~FSfamily, family = "categorical", 
+ data = PlodiaRB, prior = prior1, verbose = FALSE)
> summary(m1)


 G-structure:  ~FSfamily

         post.mean l-95% CI u-95% CI eff.samp
FSfamily    0.8529   0.2951    1.455      160

 R-structure:  ~units

      post.mean l-95% CI u-95% CI eff.samp
units         1        1        1        0

 Location effects: Pupated ~ 1 

            post.mean l-95% CI u-95% CI eff.samp  pMCMC    
(Intercept)   -1.1630  -1.4558  -0.8119    463.1 <0.001 ***
---

> prior2 = list(R = list(V = 1, nu = 0), G = list(G1 = list(V = 1, nu = 0.002)))
> m2 <- MCMCglmm(Pupated ~1, random = ~FSfamily, family = "categorical", 
+ data = PlodiaRB, prior = prior2, verbose = FALSE)
> summary(m2)


 G-structure:  ~FSfamily

         post.mean l-95% CI u-95% CI eff.samp
FSfamily    0.8325   0.3101    1.438    79.25

 R-structure:  ~units

      post.mean l-95% CI u-95% CI eff.samp
units    0.7212  0.04808    2.427    3.125

 Location effects: Pupated ~ 1 

            post.mean l-95% CI u-95% CI eff.samp  pMCMC    
(Intercept)   -1.1042  -1.5191  -0.7078    20.99 <0.001 ***
---

> m2 <- glmer(Pupated ~ 1+ (1|FSfamily), family="binomial",data=PlodiaRB)
> summary(m2)
Generalized linear mixed model fit by the Laplace approximation 
Formula: Pupated ~ 1 + (1 | FSfamily) 
   Data: PlodiaRB 
  AIC  BIC logLik deviance
 1020 1029   -508     1016
Random effects:
 Groups   Name        Variance Std.Dev.
 FSfamily (Intercept) 0.56023  0.74849 
Number of obs: 874, groups: FSfamily, 49

Fixed effects:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  -0.9861     0.1344  -7.336  2.2e-13 ***

因此,根据 Stephane 的评论,我认为 G 结构适用于σ0u2. 但是评论也说R结构是为了σ0e2但这似乎没有出现在lme4输出中。

请注意,结果lme4/glmer()与 MCMC 的两个示例一致MCMCglmm

所以,是R结构σ0e2为什么这不出现在输出中lme4/glmer()

2个回答

我迟到了游戏,但有一些注意事项。R结构是残差结构。在您的情况下,“结构”只有一个元素(但不一定是这种情况)。对于高斯响应变量,残差方差,σe2通常是估计的。对于二元结果,它保持不变。由于MCMCglmm的设置方式,您无法将其修复为零,但将其修复为相对标准1(对于概率模型也是如此)。对于计数数据(例如,具有泊松分布),您无需对其进行修复,这会自动估计过度离散参数。

G结构是随机效应结构。同样在您的情况下,只是一个随机截距,但是如果您有多个随机效应,它们将形成一个方差-协方差矩阵,G.

最后一点,由于残差方差不固定为零,因此估计值将与来自 的估计值不匹配glmer你需要重新调整它们。这是一个小例子(不使用随机效应,但它概括了)。请注意 R 结构方差如何固定为 1。

# example showing how close the match is to ML without separation
m2 <- MCMCglmm(vs ~ mpg, data = mtcars, family = "categorical",
  prior = list(
    B = list(mu = c(0, 0), V = diag(2) * 1e10),
    R = list(V = 1, fix = 1)),
  nitt = 1e6, thin = 500, burnin = 10000)
summary(m2)

这是二项式族的重新缩放常数:

k <- ((16*sqrt(3))/(15*pi))^2

现在除以它,得到后验模式

posterior.mode(m2$Sol/(sqrt(1 + k)))

这应该与我们从中得到的相当接近glm

summary(glm(vs ~mpg, data = mtcars, family = binomial))

我更愿意在下面发表我的评论作为评论,但这还不够。这些是问题而不是答案(类似于@gung,我对这个话题感觉不够强烈)。

我的印象是 MCMCglmm 没有实现“真正的”贝叶斯 glmm。真正的贝叶斯模型在本文的第 2 节中进行了描述。与常客模型类似,有g(E(yu))=Xβ+Zu并且对色散参数有一个先验要求ϕ1除了固定参数β和随机效应的“G”方差u.

但是根据这个 MCMCglmm vignette,在 MCMCglmm 中实现的模型由下式给出 g(E(yu,e))=Xβ+Zu+e, 不涉及色散参数ϕ1. 它与经典的常客模型不同。

因此,没有类似物,我不会感到惊讶σe与glmer。

请为这些粗鲁的评论道歉,我只是快速浏览了一下。