首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用lsmeans或difflsmeans对lmer进行成对比较

使用lsmeans或difflsmeans对lmer进行成对比较
EN

Stack Overflow用户
提问于 2017-11-24 18:27:53
回答 2查看 4.5K关注 0票数 2

我正在做一个阅读实验,在4个条件下比较两组的阅读时间。我运行了一个lmer模型,以阅读条件(因子w4水平)和组(因子w2水平)作为预测变量,固定持续时间作为因变量(数字)。

代码语言:javascript
复制
m1= lmer(IA_FIRST_FIXATION_DURATION ~ condition * group + (1 + condition + group | PARTICIPANT_ID) + (1 | TRIAL_LABEL), data=subset(NWC1, IA_ID == "2"))

以下是输出的一部分:

代码语言:javascript
复制
 Fixed effects:
                          Estimate Std. Error      df t value Pr(>|t|)    
(Intercept)                232.341      8.802 106.000  26.395  < 2e-16 ***
conditionFamUn              -2.122     11.193 462.900  -0.190 0.849742    
conditionNovelInf           37.234     11.547 146.300   3.225 0.001556 ** 
conditionNovelUn            44.425     11.897 133.100   3.734 0.000278 ***
groupL2                     68.245     15.381  60.200   4.437 3.95e-05 ***
conditionFamUn:groupL2     -11.414     15.710 586.700  -0.727 0.467783    
conditionNovelInf:groupL2  -15.760     16.536 127.300  -0.953 0.342374    
conditionNovelUn:groupL2   -20.165     16.948 117.000  -1.190 0.236515  

我需要做成对的比较,在过去我使用过lsmeans。现在它被弃用了,当我使用lsmeansLT时,我得到了以下错误消息:

代码语言:javascript
复制
lsmeansLT(m1, pairwise~ condition *group)
Error in match(x, table, nomatch = 0L) : 'match' requires vector arguments

我不明白这个错误信息是什么意思。

我也尝试了difflsmeans,它可以工作(参见下面的示例输出)。但difflsmeans不会校正多次比较的p值。

代码语言:javascript
复制
> difflsmeans(m1, test.effs=NULL, ddf="Satterthwaite")
Differences of LSMEANS:
                                            Estimate Standard Error    DF t-value Lower CI Upper CI p-value  
condition:group  FamInf L1 -  FamUn L1           2.1          11.19 463.0    0.19   -19.87    24.12   0.850    
condition:group  FamInf L1 -  NovelInf L1      -37.2          11.55 146.3   -3.22   -60.05   -14.41   0.002 ** 
condition:group  FamInf L1 -  NovelUn L1       -44.4          11.90 133.1   -3.73   -67.96   -20.89   3e-04 ***
condition:group  FamInf L1 -  FamInf L2        -68.2          15.38  60.2   -4.44   -99.01   -37.48  <2e-16 ***
condition:group  FamInf L1 -  FamUn L2         -54.7          14.65  83.5   -3.73   -83.85   -25.57   3e-04 ***
condition:group  FamInf L1 -  NovelInf L2      -89.7          18.60  48.1   -4.82  -127.12   -52.31  <2e-16 ***

有人能提供解决方案吗?我可以理解并修复lsmeansLT的错误,或者以某种方式调整p值并继续使用difflsmeans。(我已经加载了lsmeans和lmerTest库)谢谢!

EN

回答 2

Stack Overflow用户

发布于 2017-11-24 21:03:01

使用lsmeans包?

代码语言:javascript
复制
library(lme4)
m1 <- lmer(Informed.liking ~ Gender*Information +(1|Consumer), data=ham)

library(lsmeans)
lsmeans(m1, pairwise ~ Gender:Information)

#$lsmeans
# Gender Information   lsmean        SE     df lower.CL upper.CL
# 1      1           5.707317 0.2174879 153.61 5.277664 6.136970
# 2      1           5.556250 0.2201897 153.61 5.121259 5.991241
# 1      2           6.000000 0.2174879 153.61 5.570347 6.429653
# 2      2           5.662500 0.2201897 153.61 5.227509 6.097491

#Degrees-of-freedom method: satterthwaite 
#Confidence level used: 0.95 

#$contrasts
# contrast     estimate        SE     df t.ratio p.value
# 1,1 - 2,1  0.15106707 0.3094907 153.61   0.488  0.9616
# 1,1 - 1,2 -0.29268293 0.2347185 565.00  -1.247  0.5972
# 1,1 - 2,2  0.04481707 0.3094907 153.61   0.145  0.9989
# 2,1 - 1,2 -0.44375000 0.3094907 153.61  -1.434  0.4803
# 2,1 - 2,2 -0.10625000 0.2376343 565.00  -0.447  0.9702
# 1,2 - 2,2  0.33750000 0.3094907 153.61   1.091  0.6959
# 
#P value adjustment: tukey method for comparing a family of 4 estimates 
票数 1
EN

Stack Overflow用户

发布于 2018-04-30 22:45:50

我将代码中的*改为|,并使用了lsmeans,它工作得很好。

lsmeans(m1,成对~条件|组)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47471246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档