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


85

我使用lme4in 拟合了一些混合效果模型(尤其是纵向模型),R但希望真正掌握这些模型以及它们附带的代码。

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

我敢肯定,两者都不是简单化的“更好”,但我会重视一些意见或想法。我的主要标准是:

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

和往常一样,希望这个问题不要太含糊,并在此先感谢您的智慧!

Answers:


68

这两个软件包都Lattice用作后端,但是nlme具有(IMO)中缺少的groupedData()和的一些不错的功能。从实践的角度来看,两个最重要的标准似乎是:lmList()lme4

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

现在,lme4由于其C部分和稀疏矩阵的使用,可以轻松处理非常大量的随机效应(因此,在给定研究中的个体数)。该nlme软件包已被取代,lme4因此我不会期望人们花费大量时间在之上开发附件nlme。就个人而言,当我对模型进行连续响应时,我倾向于同时使用两个软件包,但是现在我精通lme4于拟合GLMM的方法。

与其买书,不如先看看Doug Bates关于R- forge的草稿:lme4:使用R进行混合效果建模


5
@ 2)更精确地说,lme4您可以为随机效应指定对角协方差结构(即,独立的随机效应)或非结构化协方差矩阵(即,必须估计所有相关性)或部分对角,部分非结构化协方差矩阵。我还要添加一些功能上的差异,这可能与许多纵向数据情况更相关: nlme让我们为残差指定方差-协方差结构(即,空间或时间自相关或异方差), lme4而并非如此。
fabians 2010年

@fabians(+1)啊,谢谢!没意识到lme4允许选择不同的VC结构。最好将它与您可能拥有的其他想法一起添加到自己的响应中。我会投票。顺便说一句,我也意识到这lmList()也是可用的lme4。我似乎还记得有关R-sig-ME的讨论。
chl 2010年

还有更快的选择吗?我需要使用大型数据集来拟合模型,并且在计算机上花费将近一个小时的时间。有许多快速回归软件包,但似乎没有一个能够处理随机效应。
skan,

52

正如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参数(参见?varFunc),而lme4只允许使用固定的先验权重进行观测。

第四个区别是,很难nlme(部分)适应交叉随机效应,但这在中不是问题lme4

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


1
可能的例外情况(如您所指出的)是能够在nlme中而不是lme4中加入时间自相关。如果数据集足够大,并且数据具有这种结构,则这可能是nlme的一大优势。
Ben Bolker 2010年

22

其他人则很好地总结了差异。我的印象是,lme4它更适合于群集数据集,尤其是当您需要使用交叉随机效果时。但是,对于重复测量设计(包括许多纵向设计),nlme该工具是唯一的,因为它仅nlme支持指定残差的相关结构。您可以对一个对象使用correlationsor cor参数corStruct。它还允许您使用varFunc对象对异方差建模。


13

实际上,R中有许多软件包可用于拟合超出lme4和的混合效果模型nlme。R特别兴趣小组为混合模型提供了一个不错的Wiki,它有一个很好的FAQ比较不同软件包页面

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.