如何为混合效果模型选择 nlme 或 lme4 R 库?

机器算法验证 r 混合模式 lme4-nlme
2022-01-16 21:55:31

我已经拟合了一些使用lme4in的混合效果模型(尤其是纵向模型),R但我想真正掌握模型和与之相关的代码。

但是,在双脚潜入(并购买一些书籍)之前,我想确定我正在学习正确的图书馆。到目前为止我已经使用lme4了,因为我发现它比 更容易nlme,但如果nlme对我的目的更好,那么我觉得我应该使用它。

我确信两者都不是以简单的方式“更好”,但我会重视一些意见或想法。我的主要标准是:

  1. 易于使用(我是一名受过培训的心理学家,并不是特别精通统计或编码,但我正在学习)
  2. 拟合纵向数据的好功能(如果这里有区别 - 但这是我主要使用它们的目的)
  3. 好的(易于解释)图形摘要,再次不确定这里是否有区别,但我经常为比我技术水平更低的人制作图表,所以清晰的图表总是好的(我非常喜欢 lattice 中的 xyplot 函数() 为此原因)。
4个回答

这两个包都Lattice用作后端,但nlme有一些很好的特性,比如groupedData()( IMO)lmList()所缺少的。lme4然而,从实践的角度来看,两个最重要的标准似乎

  1. lme4nlme与其他链接函数一起扩展:在 中nlme,您无法拟合分布不是高斯分布的结果,lme4例如,可用于拟合混合效应逻辑回归。
  2. 在 中nlme,可以为随机效应指定方差-协方差矩阵(例如 AR(1));这是不可能的lme4

现在,lme4由于它的 C 部分和稀疏矩阵的使用,可以轻松处理非常大量的随机效应(因此,给定研究中的个体数量)。nlme软件包在某种程度上已被取代,lme4因此我不希望人们花费大量时间在nlme. 就个人而言,当我的模型中有持续响应时,我倾向于同时使用这两个包,但我现在已经熟悉了lme4拟合 GLMM 的方式。

与其买书,不如先看看 Doug Bates 关于 R-forge 的草稿:lme4: Mixed-effects Modeling with R。

正如 chl 所指出的,主要区别在于您可以为随机效应指定什么样的方差-协方差结构。lme4可以指定:

  • 对角协方差结构(即,通过类似的语法强制相互不相关的随机效应~ (1 | group)+ (0 + x1 | group) + (0 + x2 | group)
  • 或非结构化协方差矩阵(即估计所有相关性,~ (1 + x1 + x2 | group)
  • 或部分对角线、部分非结构化协方差(y ~ (1 + x1 | group) + (0 + x2 | group),您将估计 的随机截距和随机斜率x1之间的相关性,但 的随机斜率x2和随机截距之间以及 的随机斜率x2和随机斜率之间没有相关性x1)。

nlme为随机效应提供了更广泛的协方差结构。然而,我的经验是,对于大多数应用程序来说,它的灵活性lme4已经足够了。

我还将添加可能与许多纵向数据情况更相关的第三个功能差异:nlme 让我们为参数中的残差(即空间或时间自相关或异方差或协变量相关变异性)指定方差 - 协方差结构weights(cf ?varFunc),而lme4只允许观察的固定先验权重。

第四个区别是很难nlme拟合(部分)交叉随机效应,而这在lme4.

如果你坚持下去,你可能会没事的lme4

其他人已经很好地总结了这些差异。我的印象是它lme4更适合集群数据集,尤其是当您需要使用交叉随机效应时。然而,对于重复测量设计(包括许多纵向设计),nlme该工具仅nlme支持为残差指定相关结构。您可以使用带有对象的correlationsor参数来执行此操作。它还允许您使用对象对异方差进行建模。corcorStructvarFunc

实际上,R 中有许多包用于拟合超出lme4和的混合效果模型nlmeR 特别兴趣小组为混合模型运行了一个不错的wiki ,其中有一个非常好的常见问题解答和一个比较不同包的页面

至于我对实际使用lme4and的看法nlme:我发现lme4它通常更容易使用,因为它直接扩展了基本的 R 公式语法。(如果您需要使用广义加法模型,则该gamm4包将此语法进一步扩展,因此您有一个很好的平滑学习曲线。)正如其他人所提到的,lme4可以处理广义模型(其他链接函数和误差分布),而nlme对高斯链接函数的关注允许它做一些在一般情况下非常困难的事情(指定协方差结构和依赖于自由度计算的某些事情,比如 p 值,我鼓励你移动后者远离!)。