我正在寻找适合相对较大数据集的generalized linear mixed-effects models
策略的建议。
考虑一下我在10年内就大约300支球队的美国篮球传球的8 million
数据。数据看起来像这样:
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
。我有理论上的动机来假设count
和length_pass
之间存在团队级差异,所以多级(即混合效应)模型似乎是合适的。
我的个人水平控制变量是length_pass
和year
。
在团队层面,我有mean_length_pass_team
。据Snijders, 2011说,这应该有助于我避免生态谬误。
我一直在使用lme4
和brms
软件包来估算这些型号,但是需要几天/几周才能将这些型号安装在我当地的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")
我正在寻找加快拟合过程的建议或新技术以适应广义线性混合效应模型:
lme4
和brms
的速度吗?step-wise
程序可以帮助提高拟合模型的速度?R
环境之外有没有可以帮助我适应这个的有趣选项?任何指针都非常感谢!
对于一般的速度改进,我建议使用openBLAS而不是原生BLAS。不幸的是,我不相信LME4依赖于BLAS。
但是,我也可以建议使用generating the LME4 models in parallel,它可以有效地减少你的等待时间。