lmer模型使用哪种多重比较方法:lsmeans或glht?


16

我正在使用具有一个固定效果(条件)和两个随机效果(由于主题设计和配对而导致的参与者)的混合效果模型分析数据集。该模型是使用lme4包生成的exp.model<-lmer(outcome~condition+(1|participant)+(1|pair),data=exp)

接下来,我针对没有固定效果(条件)的模型对该模型进行了似然比检验,结果有显着差异。我的数据集中有3个条件,因此我想进行多重比较,但不确定使用哪种方法。我在CrossValidated和其他论坛上发现了许多类似的问题,但我仍然很困惑。

据我所见,人们建议使用

1.lsmeans包- lsmeans(exp.model,pairwise~condition)这给了我下面的输出:

condition     lsmean         SE    df  lower.CL  upper.CL
 Condition1 0.6538060 0.03272705 47.98 0.5880030 0.7196089
 Condition2 0.7027413 0.03272705 47.98 0.6369384 0.7685443
 Condition3 0.7580522 0.03272705 47.98 0.6922493 0.8238552

Confidence level used: 0.95 

$contrasts
 contrast                   estimate         SE    df t.ratio p.value
 Condition1 - Condition2 -0.04893538 0.03813262 62.07  -1.283  0.4099
 Condition1 - Condition3 -0.10424628 0.03813262 62.07  -2.734  0.0219
 Condition2 - Condition3 -0.05531090 0.03813262 62.07  -1.450  0.3217

P value adjustment: tukey method for comparing a family of 3 estimates 

2.multcomp包以两种不同方式-使用mcp glht(exp.model,mcp(condition="Tukey"))导致

     Simultaneous Tests for General Linear Hypotheses

Multiple Comparisons of Means: Tukey Contrasts


Fit: lmer(formula = outcome ~ condition + (1 | participant) + (1 | pair), 
    data = exp, REML = FALSE)

Linear Hypotheses:
                             Estimate Std. Error z value Pr(>|z|)  
Condition2 - Condition1 == 0  0.04894    0.03749   1.305    0.392  
Condition3 - Condition1 == 0  0.10425    0.03749   2.781    0.015 *
Condition3 - Condition2 == 0  0.05531    0.03749   1.475    0.303  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1
(Adjusted p values reported -- single-step method)

并使用lsm glht(exp.model,lsm(pairwise~condition))导致

Note: df set to 62

     Simultaneous Tests for General Linear Hypotheses

Fit: lmer(formula = outcome ~ condition + (1 | participant) + (1 | pair), 
    data = exp, REML = FALSE)

Linear Hypotheses:
                             Estimate Std. Error t value Pr(>|t|)  
Condition1 - Condition2 == 0 -0.04894    0.03749  -1.305   0.3977  
Condition1 - Condition3 == 0 -0.10425    0.03749  -2.781   0.0195 *
Condition2 - Condition3 == 0 -0.05531    0.03749  -1.475   0.3098  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1
(Adjusted p values reported -- single-step method)

如您所见,这些方法给出了不同的结果。这是我第一次使用R和统计信息,因此可能出了一些问题,但我不知道在哪里。我的问题是:

所介绍的方法之间有什么区别?我在回答有关一个相关问题的答案时说,这是关于自由度(lsmeansvs. glht)的。 是否有一些规则或建议何时使用哪种规则,即方法1是否适合这种类型的数据集/模型等? 我应该报告哪个结果?在不知道更好的情况下,我可能只会报告最高的p值,因此我必须谨慎行事,但有更好的理由会很好。谢谢

Answers:


17

没有完整的答案...

glht(myfit, mcp(myfactor="Tukey"))与其他两种方法的区别在于,这种方法使用“ z”统计量(正态分布),而其他方法使用“ t”统计量(学生分布)。“ z”统计量与具有无限自由度的“ t”统计量相同。该方法是一种渐近方法,与其他方法相比,它提供较小的p值和较短的置信区间。如果数据集较小,则p值可能会太小,置信区间可能会太短。

当我运行时lsmeans(myfit, pairwise~myfactor),出现以下消息:

Loading required namespace: pbkrtest

这意味着lsmeans(对于lmer模型)使用pbkrtest针对“ t”统计量的自由度实施Kenward&Rogers方法的软件包。此方法旨在提供比渐近方法更好的p值和置信区间(自由度大时没有区别)。

现在,有关的区别lsmeans(myfit, pairwise~myfactor)$contrastsglht(myfit, lsm(pairwise~factor),刚才我做了一些测试,我的意见是以下的:

  • lsmlsmeans程序包和multcomp程序包之间的接口(请参阅参考资料?lsm

  • 对于平衡的设计,结果之间没有区别

  • 对于不平衡的设计,我观察到结果之间的细微差异(标准误差和t比率)

不幸的是,我不知道这些差异的原因是什么。看起来仅是为了获得线性假设矩阵和自由度而进行的lsm调用lsmeans,但是lsmeans使用了一种不同的方法来计算标准误差。


感谢您的详细回复!我完全错过了测试统计量之间的差异...您提到对于渐近方法,值可能太小而CI太窄。我的数据集包含约30名参与者,所以我想我会坚持t统计量。当您说Kenward&Rogers方法导致更好的p值时,您是说更准确或更小?因此,差异是由于df和SE计算方法的差异引起的,而并非由于我正确理解了其中一种在模型中的使用不正确。有没有办法在这里选择“最佳”方法?
schvaba986 '16

11
(我是lsmeans程序包开发人员)lsmeans使用pbkrtest程序包,该程序包用于(1)Kenward-Rogers df计算和(2)调整后的协方差矩阵,其估计值的偏差有所减少。如果您首先设置lsm.options(disable.pbkrtest=TRUE),则lsmeans调用adjust="mvt"会产生与相同的结果glht,但由于两个软件包对多元t分布使用了随机算法而导致的细微差异。
Russ Lenth

3
但是,我建议在不禁用pbkrtest的情况下进行“ mvt”调整,这是因为存在偏差调整,并且在没有df的情况下,渐近(z)值基本上假定为无穷大df,从而产生了不切实际的低P值。
Russ Lenth

3
顺便说一下,除了默认的一步(同时CIs)多重性调整之外,该summary方法还glht允许使用各种降压测试方法。另一方面,如果您有多个因素,则lsm可以很容易地创建通常的比较类型,而mcp根本无法做到。
Russ Lenth
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.