大数据:广义线性混合效应模型

5
我希望您能为我提供一些有关拟合广义线性混合效应模型的策略,以适用于相对较大的数据集。请注意,以下是需要进行处理的数据内容:我有关于10年内约300支球队中800万次美国篮球传球的数据。数据大致如下所示:
data <- data.frame(count = c(1,1,2,1,1,5),
               length_pass= c(1,2,5,7,1,3),
               year= c(1,1,1,2,2,2),
               mean_length_pass_team= c(15,15,9,14,14,8),
               team= c('A', 'A', 'B', 'A', 'A', 'B'))
data
 count length_pass year mean_length_pass_team team
1     1           1    1                    15    A
2     1           2    1                    15    A
3     2           5    1                     9    B
4     1           7    2                    14    A
5     1           1    2                    14    A
6     5           3    2                     8    B

我想解释球员传球前所需走的步数count。我有理论动机认为在countlength_pass之间存在团队层面的差异,因此多层次(即混合效应)模型似乎是合适的选择。
我的个体级别控制变量是length_passyear
在团队层面上,我有mean_length_pass_team。根据Snijders, 2011,这应该有助于我避免生态谬误。
我一直在使用lme4brms包来估计这些模型,但在我的本地12核128GB机器上拟合这些模型需要几天/几周的时间。
library(lme4)
model_a <- glmer(count ~ length_pass + year + mean_length_pass_team + (1 | team),
                 data=data,
                 family= "poisson",
                 control=glmerControl(optCtrl=list(maxfun=2e8))) 

library(brms)
options (mc.cores=parallel::detectCores ())
model_b <- brm(count ~ length_pass + year + mean_length_pass_team + (1 | team),
                 data=data,
                 family= "poisson")

我正在寻找加速拟合过程或拟合广义线性混合效应模型的新技术建议:
  • 如何提高lme4brms 模型拟合速度?
  • 是否有其他可考虑的软件包?
  • 是否有可以帮助增加模型拟合速度的逐步步骤程序?
  • 是否有R环境之外的有趣选项可以帮助我进行拟合?
非常感谢您的任何指引!

{btsdaf} - F. Privé
{btsdaf} - wake_wake
1
可能帮不上太多忙,但是https://dev59.com/eFcP5IYBdhLWcg3wP32t#44728498建议使用`nAGQ=0`来加速,或者尝试使用Julia。 - user20650
{btsdaf} - RobertMyles
2
{btsdaf} - RobertMyles
显示剩余2条评论
2个回答

1
我发现在MCMCglmm可以拟合的模型中,MCMCglmm包比brms要快得多(有时我发现brms可以拟合我无法用MCMCglmm拟合的模型)。您可能需要玩弄一下语法,但它应该是这样的:
    MCMCglmm(data = data, family = "poisson",
             fixed = count ~ year, 
             random = ~ team)

一个缺点是,我发现过去很难找到许多与模型的显式数学公式相关联的在线代码示例--很难判断您是否拟合了您想要拟合的模型。不过,您的模型似乎足够简单。

0

为了提高通用速度,我建议使用openBLAS而不是本地BLAS。不幸的是,我认为LME4并不依赖于BLAS。

但是,我还可以建议并行生成LME4模型,这将有效地将您的等待时间减半。


1
确实,lme4不使用BLAS,因为它需要一些高级线性代数,这些线性代数存储在“Eigen”软件包中... - Ben Bolker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接