【问题标题】:glmmLasso function won't finish runningglmmLasso 函数无法完成运行
【发布时间】:2021-06-06 23:03:26
【问题描述】:

我正在尝试在 RStudio 中使用 glmmLasso 构建混合模型套索模型。不过,我正在寻求帮助。

我的模型方程如下:

glmmModel <- glmmLasso(outcome ~ year + married ,list(ID=~1), lambda = 100, family=gaussian(link="identity"), data=data1,control = list(print.iter=TRUE))

其中结果是连续变量,年份是收集数据的年份,已婚是受试者是否已婚的二元指标 (1/0)。我最终想在我的模型中包含更多的协变量,但为了首先成功运行它,现在我只是试图用这两个协变量运行一个模型。我的 data1 数据框是 48000 个观察值和 57 个变量。

但是,当我单击运行时,模型会运行数小时 (48+) 而不会停止。我得到的唯一反馈是“ITERATION 1”、“ITERATION 2”等......我有什么遗漏或做错了吗?请注意,我在只有 8 GB RAM 的机器上运行,但我认为这不是问题,对吧?我的数据集(48000 个观察值)并不是特别大(至少我不这么认为)。关于如何解决此问题的任何建议或想法将不胜感激。谢谢!

【问题讨论】:

    标签: r statistics ram glm mixed-models


    【解决方案1】:

    评论太长了,但我觉得你应该回答这个困惑。

    体验“缓慢”的性能并不少见。事实上,在许多 glmm 实现中,它比没有更常见。事实上,广义线性混合效应模型非常难以估计。对于纯高斯模型(无惩罚器),一系列证明为我们提供了 REML 估计器,可以非常有效地估计它,但对于广义模型,情况并非如此。因此请注意,随机效应模型矩阵可能会变得绝对庞大。请记住,对于每个随机效应,您都会获得一个块对角矩阵,因此即使对于小型数据,您也可能拥有一个包含 2000 多列的模型矩阵,需要通过 PIRLS(反演等)进行优化。

    一些包(glmmTMB、lme4 和某种程度上的 nlme)具有非常有效的实现,它们滥用随机效应矩阵的块对角性和高性能 C/C++ 库来执行优化的稀疏矩阵计算,而 @987654321 @package 使用 R-base 来执行它的所有计算。无论我们如何处理,它确实滥用稀疏计算并在 R 中实现其代码这一事实导致它缓慢

    作为旁注,我的论文项目有大约 24000 次观察,有 3 个随机效应变量(和一些奇怪的 20 个固定效应)。该数据集的拟合过程可能需要 15 分钟到 3 小时不等,具体取决于复杂性,主要由随机效应结构决定。

    所以这里的答案:

    是的 glmmLasso 会很慢。这可能需要数小时、数天甚至数周,具体取决于您的数据集。我建议使用跨独立组的分层(或/和聚类)子样本,使用较小的数据集(可能是 3000 - 4000?)拟合模型,以获得初始起点,并“希望”这些接近真实值.耐心点。如果您认为神经网络很复杂,欢迎来到广义混合效应模型的世界。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-05
      • 2019-04-21
      • 2020-01-04
      • 1970-01-01
      • 1970-01-01
      • 2016-08-27
      相关资源
      最近更新 更多