Estou analisando um conjunto de dados usando um modelo de efeitos mistos com um efeito fixo (condição) e dois efeitos aleatórios (participante devido ao design do sujeito e ao par). O modelo foi gerado com o lme4
pacote: exp.model<-lmer(outcome~condition+(1|participant)+(1|pair),data=exp)
.
Em seguida, realizei um teste de razão de verossimilhança desse modelo em relação ao modelo sem o efeito fixo (condição) e tenho uma diferença significativa. Existem três condições no meu conjunto de dados, por isso quero fazer uma comparação múltipla, mas não tenho certeza de qual método usar . Encontrei várias perguntas semelhantes no CrossValidated e em outros fóruns, mas ainda estou bastante confuso.
Pelo que vi, as pessoas sugeriram usar
1. O lsmeans
pacote - lsmeans(exp.model,pairwise~condition)
que me fornece a seguinte saída:
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. O multcomp
pacote de duas maneiras diferentes - usando mcp
glht(exp.model,mcp(condition="Tukey"))
resultando em
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)
e usando lsm
glht(exp.model,lsm(pairwise~condition))
resultando em
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)
Como você pode ver, os métodos fornecem resultados diferentes. Esta é minha primeira vez trabalhando com R e estatísticas, então algo pode estar errado, mas eu não saberia onde. Minhas perguntas são:
Quais são as diferenças entre os métodos apresentados? Li numa resposta a perguntas relacionadas que se trata dos graus de liberdade ( lsmeans
vs. glht
).
Existem algumas regras ou recomendações quando usar qual, ou seja, o método 1 é bom para esse tipo de conjunto de dados / modelo etc.? Qual resultado devo relatar? Sem conhecer melhor, eu provavelmente reportaria o valor p mais alto que consegui jogar pelo seguro, mas seria bom ter um motivo melhor. obrigado
fonte
lsmeans
usa o pacote pbkrtest, que fornece (1) cálculos de Kenward-Rogers df e (2) uma matriz de covariância ajustada com viés reduzido nas estimativas. Se você definir primeirolsm.options(disable.pbkrtest=TRUE)
, alsmeans
chamada comadjust="mvt"
produzirá os mesmos resultados queglht
, exceto por pequenas diferenças devido ao algoritmo aleatório usado pelos dois pacotes para a distribuição t multivariada.summary
métodoglht
permite vários métodos de teste de redução, além do ajuste de multiplicidade padrão de uma etapa (ICs simultâneos). Em um ponto completamente diferente, se você tiver mais de um fator,lsm
poderá criar os tipos usuais de comparação com bastante facilidade, emboramcp
não possa fazê-lo.