lmer(来自R包lme4)如何计算对数似然?

时间:2014-01-07 19:29:04

标签: r lmer random-effects

我正在尝试理解lmer的功能。我已经找到了很多关于如何使用命令的信息,但没有太多关于它实际做了什么(除了一些神秘的评论:http://www.bioconductor.org/help/course-materials/2008/PHSIntro/lme4Intro-handout-6.pdf)。我正在玩下面这个简单的例子:

library(data.table)
library(lme4)
options(digits=15)

n<-1000
m<-100
data<-data.table(id=sample(1:m,n,replace=T),key="id")
b<-rnorm(m)
data$y<-rand[data$id]+rnorm(n)*0.1
fitted<-lmer(b~(1|id),data=data,verbose=T)
fitted

我理解lmer拟合形式为Y_ {ij} = beta + B_i + epsilon_ {ij}的模型,其中epsilon_ {ij}和B_i分别是具有方差sigma ^ 2和tau ^ 2的独立法线。如果theta = tau / sigma是固定的,我用正确的均值和最小方差计算了β的估计值

c = sum_{i,j} alpha_i y_{ij}

,其中

alpha_i = lambda/(1 + theta^2 n_i)
lambda = 1/[\sum_i n_i/(1+theta^2 n_i)]
n_i = number of observations from group i

我还计算了sigma ^ 2的以下无偏估计:

s ^ 2 = \ sum_ {i,j} alpha_i(y_ {ij} - c)^ 2 /(1 + theta ^ 2 - lambda)

这些估计似乎与lmer产生的结果一致。但是,我无法弄清楚在这种情况下如何定义对数似然。我计算了概率密度

pd(Y_{ij}=y_{ij}) = \prod_{i,j}[f_sigma(y_{ij}-ybar_i)]
    * prod_i[f_{sqrt(sigma^2/n_i+tau^2)}(ybar_i-beta) sigma sqrt(2 pi/n_i)]

,其中

ybar_i = \sum_j y_{ij}/n_i (the mean of observations in group i)
f_sigma(x) = 1/(sqrt{2 pi}sigma) exp(-x^2/(2 sigma)) (normal density with sd sigma)

但上述记录不是lmer产生的。在这种情况下如何计算对数似然(对于奖励标记,为什么)?

修改:更改了一致性的表示法,删除了标准偏差估算的错误公式。

1 个答案:

答案 0 :(得分:14)

评论中的链接包含答案。下面我在这个简单的例子中简化了公式,因为结果有些直观。

lmer适合Y_{ij} = \beta + B_i + \epsilon_{ij}形式的模型,其中\epsilon_{ij}B_i分别是变量\sigma^2\tau^2的独立法线。因此,Y_{ij}B_i的联合概率分布是

\left(\prod_{i,j}f_{\sigma^2}(y_{ij}-\beta-b_i)\right)\left(\prod_i f_{\tau^2}(b_i)\right)

,其中

f_{\sigma^2}(x)=\frac{1}{\sqrt{2\pi\sigma^2}}e^{-\frac{x^2}{2\sigma^2}}

通过将其与b_i(未观察到)相结合来获得可能性

\left(\prod_{i,j}f_{\sigma^2}(y_{ij}-\bar y_i)\right)\left(\prod_i f_{\sigma^2/n_i+\tau^2}(\bar y_i-\beta)\sqrt{2\pi\sigma^2/n_i}\right)

其中n_i是来自组i的观察次数,而\bar y_i是来自组i的观察值的平均值。这有点直观,因为第一项捕获在每个组内传播,应该有方差\sigma^2,第二项捕获组之间的传播。请注意,\sigma^2/n_i+\tau^2\bar y_i的差异。

然而,默认情况下(REML = T)lmer最大化不是可能性,而是“REML标准”,通过将其与\beta进行额外整合而获得

\left(\prod_{i,j}f_{\sigma^2}(y_{ij}-\bar y_i)\right)\left(\prod_i f_{\sigma^2/n_i+\tau^2}(\bar y_i-\hat\beta)\sqrt{2\pi\sigma^2/n_i}\right)\sqrt{\frac{2\pi\sigma^2}{\sum_i\frac{n_i}{1+n_i\theta^2}}}

下面给出了\hat\beta

最大化可能性(REML = F)

如果\theta=\tau/\sigma已修复,我们可以明确找到最大可能性的\beta\sigma。他们结果是

\hat\beta=\frac{\sum_{i,j}y_{ij}/(1+n_i\theta^2)}{\sum_i n_i/(1+n_i\theta^2)}

\hat\sigma^2=\frac{1}{n}\left(\sum_{i,j}(y_{ij}-\bar y_i)^2+\sum_i\frac{n_i}{1+n_i\theta^2}(\bar y_i-\hat\beta)^2\right)

注意\hat\sigma^2有两个关于组内和组之间变异的术语,\hat\beta介于y_{ij}的平均值和\bar y_i的平均值之间,具体取决于值{ \theta

将这些代入可能性,我们只能用l来表示对数似然\theta

-2l=\sum_i\log(1+n_i\theta^2)+n(1+\log(2\pi\hat\sigma^2))

lmer迭代以找到最小化此值的\theta的值。在输出中,-2ll分别显示在“deviance”和“logLik”字段中(如果REML = F)。

最大化限制可能性(REML = T)

由于REML标准不依赖\beta,我们对\beta使用与上述相同的估算值。我们估计\sigma以最大化REML标准:

\hat\beta=\frac{\sum_{i,j}y_{ij}/(1+n_i\theta^2)}{\sum_i n_i/(1+n_i\theta^2)}

\hat\sigma^2=\frac{1}{n-1}\left(\sum_{i,j}(y_{ij}-\bar y_i)^2+\sum_i\frac{n_i}{1+n_i\theta^2}(\bar y_i-\hat\beta)^2\right)

受限制的对数似然l_R

给出

-2l_R=\sum_i\log(1+n_i\theta^2)+(n-1)(1+\log(2\pi\hat\sigma^2))+\log\left(\sum_i\frac{n_i}{1+n_i\theta^2}\right)

在lmer的输出中,-2l_Rl_R分别显示在“REMLdev”和“logLik”字段中(如果REML = T)。