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

时间:2017-11-24 10:27:53

标签: r lsmeans pairwise

我正在进行阅读实验,比较4个条件下2组的阅读时间。 我将具有阅读条件(因子w 4级)和组(因子w 2级)的lmer模型作为因变量(数字)作为预测因子和注视持续时间。

m1= lmer(IA_FIRST_FIXATION_DURATION ~ condition * group + (1 + condition + group | PARTICIPANT_ID) + (1 | TRIAL_LABEL), data=subset(NWC1, IA_ID == "2"))

以下是输出的一部分:

 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时,我收到以下错误消息:

lsmeansLT(m1, pairwise~ condition *group)
Error in match(x, table, nomatch = 0L) : 'match' requires vector arguments

我不明白这个错误信息的含义。

我也试过difflsmeans并且它有效(参见下面的示例输出)。但difflsmeans不会更正多重比较的p值。

> 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库) 谢谢!

2 个答案:

答案 0 :(得分:1)

使用lsmeans包裹?

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 :(得分:0)

我将代码中的*更改为| 我使用了lsmeans并且工作正常。

lsmeans(m1,pairwise~condition | group)