如何通过重复观察在大数据上拟合层次模型
Posted
技术标签:
【中文标题】如何通过重复观察在大数据上拟合层次模型【英文标题】:How to fit hierarchical models on big data with repeated observations 【发布时间】:2020-07-22 21:28:02 【问题描述】:我正在处理在线行为数据,其中每个用户都有多次伯努利试验。我熟悉在 R 中使用 lme4
拟合分层模型,但现在我的数据集有约 1MM 的唯一用户和 1-10 个观察值,lme4
模型在我的 Macbook Pro 上无休止地运行。我以前只为几千名用户拟合过这样的模型,而且运行时间是可控的。
library(lme4)
glmer(outcome ~ treatment + (1|user_id), family = 'binomial', data = mydata)
实际上我如何才能将分层模型拟合到如此大的数据集?
【问题讨论】:
【参考方案1】:有几种方法可以加快glmer
:
glmer
调用中设置nAGQ = 0
尝试在glmerControl
中指定"nloptwrap"
作为优化器
尝试在glmerControl
中指定calc.derivs = F
More info here
# code example
glmer(
outcome ~ condition + (1|user_id),
family = "binomial",
data = mydata,
nAGQ = 0,
control = glmerControl(optimizer = "nloptwrap", calc.derivs = FALSE)
)
【讨论】:
以上是关于如何通过重复观察在大数据上拟合层次模型的主要内容,如果未能解决你的问题,请参考以下文章