如何在GLMM中加快固定效果的计算?


9

我正在进行仿真研究,需要从广义线性混合模型(实际上,是固定效果的两个估算值的一个乘积,一个是GLMM,另一个是LMM的乘积)的自举估计。要做好这项研究,每次大约需要进行1000次或1500次引导复制的1000次模拟。这需要在我的计算机上花费大量时间(很多天)。

How can I speed up the computation of these fixed effects?

更具体地讲,我对对象进行了三种方式的重复测量,从而产生了变量X,M和Y,其中X和M是连续的,而Y是二进制的。我们有两个回归方程 其中Y用于底层潜连续可变和误差不会IID。 我们要引导的统计信息是。因此,每个引导复制都需要安装LMM和GLMM。我的R代码是(使用lme4)

中号=α0+α1个X+ϵ1个
ÿ=β0+β1个X+β2中号+ϵ2
ÿ
α1β2
    stat=function(dat){
        a=fixef(lmer(M~X+(X|person),data=dat))["X"]
        b=fixef(glmer(Y~X+M+(X+M|person),data=dat,family="binomial"))["M"]
        return(a*b)
    }

我意识到如果我将拟合为线性模型,我将获得相同的估算值,这样可以节省一些时间,但是对于,相同的技巧不起作用。α1β2

我是否只需要购买速度更快的计算机?:)


1
@BR这里的瓶颈是什么?基本上,花时间在Rprof
suncoolsu 2011年

1
一种方法是只忽略GLMM的“混合”部分。只是适合普通的GLM,估计值不会有太大变化,但是它们的标准误差可能会发生变化
概率

@probabilityislogic。除了您的发言,我还认为,答案是否会有很大不同,取决于小组人数和小组中的个人行为。正如Gelman和Hill所说:混合效应模型的结果将介于合并与不合并之间。(上面是针对贝叶斯分层模型的,但是混合模型是完成此操作的经典方法。)
suncoolsu 2011年

@probabilityislogic:这对LMM有效,但是对于GLMM似乎失败了(这意味着我在相同数据上运行了带有或不带有额外M的模型,结果结果却大不相同)。当然,除非在glmer的实现中存在错误。
BR

@suncoolsu:瓶颈是GLMM的估计,这可能需要几秒钟的时间(尤其是具有几种随机效应)。但是,执行1000 * 1000次,即需要280小时的计算时间。安装GLM大约需要1/100的时间。
BR

Answers:


4

尽管很难知道多少,它应该有助于指定起始值。在进行仿真和自举时,您应该知道“真”值或未自举的估计值,或两者都知道。尝试使用中的start =选项glmer

您还可以考虑调查声明收敛的容限是否比您需要的严格。我不清楚如何从lme4文档中更改它们。


4

在购买新计算机之前,还要考虑另外两种可能性。

  1. 并行计算-自举很容易并行运行。如果您的计算机是相当新的,则可能有四个核心。看看R中的多核库。
  2. 云计算也是一种可能性,而且价格合理。我有使用亚马逊云运行R脚本的同事。他们发现这非常划算。

1
感谢您的回答。不知何故,我忽略了我有两个内核的事实(我的计算机不是很新)。我应该早就看过多核的。
BR

2

它可能是一台速度更快的计算机。但这是一个可行的技巧。

产生模拟 Y,但仅以 Y,然后只对模拟对象执行OLS或LMM Y 价值观。

假设您的链接功能是 g(.)。这说明您如何从Y=1Y 值,很可能是逻辑函数 g(z)=log(z1z)

因此,如果您假设 YYBernoulli(p),然后将jeffreys用作概率,则得到β的后验 pBeta(Yobs+12,1Yobs+12)。从中进行模拟应该像照明,如果不是,则需要一台速度更快的计算机。此外,样本是独立的,因此无需检查任何“收敛”诊断(例如在MCMC中),并且您可能不需要那么多的样本-100可能适合您的情况。如果您有二项式Ys,然后替换 1 在上面的后面 ni,每个二项式的试验次数 Yi

所以你有一组模拟值 psim。然后,将链接函数应用于这些值中的每一个,以获取Ysim=g(psim)。将LMM安装到Ysim,这可能比GLMM程序要快。您基本上可以忽略原始的二进制值(但不要删除它们!),只需使用“模拟矩阵”(N×S,在哪里 N 是样本量,并且 S 是模拟次数)。

因此,在您的程序中,我将替换 gmler()lmer() 功能,以及 Y 只需一次模拟,您便可以创建某种循环,将 lmer() 对每个模拟函数,然后取平均值作为 b。就像是

a=
b=0
do s=1,,S
best=lmer(Ys)
b=b+1s(bestb)
end
return(ab)

让我知道是否需要更清楚地说明


感谢您的回答,我需要一点时间来消化它(并且我已经有周六晚上的计划了)。它足够不同,以至于我不清楚它是否能提供与GLMM方法相同的答案,但是我需要更多地考虑它。
BR
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.