繁体   English   中英

混合建模-lme和lmer函数之间的结果不同

[英]Mixed Modelling - Different Results between lme and lmer functions

我目前正在研究Andy Field的书,《使用R发现统计信息》。第14章介绍了混合建模,他使用了nlme包中的lme函数。

他使用快速约会数据创建的模型如下:

speedDateModel <- lme(dateRating ~ looks + personality +
                 gender + looks:gender + personality:gender + 
                 looks:personality,
    random = ~1|participant/looks/personality)

我试图使用lme4包中的lmer函数来重新创建类似的模型; 但是,我的结果却不同。 我以为我有正确的语法,但也许没有?

speedDateModel.2 <- lmer(dateRating ~ looks + personality + gender + 
              looks:gender + personality:gender + 
              (1|participant) + (1|looks) + (1|personality), 
              data = speedData, REML = FALSE)

另外,当我运行这些模型的系数时,我注意到它仅对每个参与者产生随机截距。 然后,我试图创建一个同时产生随机截距和斜率的模型。 我似乎无法获得正确的语法来执行此功能。 任何帮助将不胜感激。

lme和相应的lmer公式之间的唯一区别应该是将随机和固定成分汇总为一个公式:

dateRating ~ looks + personality +
             gender + looks:gender + personality:gender + 
             looks:personality+ (1|participant/looks/personality)

仅当lookspersonality在每个嵌套级别具有唯一值时,才使用(1|participant) + (1|looks) + (1|personality)等价。

尚不清楚您要定义斜率的连续变量:如果您有一个连续变量x并分组g ,则(x|g)或等效地(1+x|g)将为您提供一个随机斜率模型( x应该也包含在模型的固定效应部分中,即完整公式应为y~x+(x|g) ...)

更新 :我从这里得到了数据,或者是一个允许重建数据的脚本文件。 菲尔德在他的书中犯了一个常见错误,这是我过去犯过的几次错误:由于在每个参与者/外观/个性组合的数据集中只有一个观察值,因此三元交互对于每个观察值只有一个层次。 在线性混合模型中,这意味着最低嵌套级别的方差将与剩余方差混淆。

您可以通过两种方式查看:

  • lme 看起来很适合模型,但是如果您尝试通过intervals()计算置信区间,则会得到
 intervals(speedDateModel)
 ## Error in intervals.lme(speedDateModel) : 
 ##   cannot get confidence intervals on var-cov components: 
 ##   Non-positive definite approximate variance-covariance
  • 如果您使用lmer尝试此操作, lmer得到:
## Error: number of levels of each grouping factor
##   must be < number of observations

在这两种情况下,这都是有问题的线索。 (如果您确实愿意, 可以lmer克服此问题:请参阅?lmerControl 。)

如果我们忽略最低的分组级别,则一切正常:

sd2 <- lmer(dateRating ~ looks + personality +
                 gender + looks:gender + personality:gender + 
                 looks:personality+
                     (1|participant/looks),
            data=speedData)

比较lmerlme固定效果:

all.equal(fixef(sd2),fixef(speedDateModel)) ## TRUE

此处的繁琐示例给出了另一个示例,并对此问题作了进一步说明。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM