¿Qué método de comparación múltiple usar para un modelo lmer: lsmeans o glht?

15

Estoy analizando un conjunto de datos utilizando un modelo de efectos mixtos con un efecto fijo (condición) y dos efectos aleatorios (participante debido al diseño del sujeto y al par). El modelo se ha generado con el lme4paquete: exp.model<-lmer(outcome~condition+(1|participant)+(1|pair),data=exp).

A continuación, realicé una prueba de razón de probabilidad de este modelo contra el modelo sin el efecto fijo (condición) y tengo una diferencia significativa. Hay 3 condiciones en mi conjunto de datos, por lo que quiero hacer una comparación múltiple, pero no estoy seguro de qué método usar . Encontré varias preguntas similares en CrossValidated y otros foros, pero todavía estoy bastante confundido.

Por lo que he visto, la gente ha sugerido usar

1. El lsmeanspaquete, lsmeans(exp.model,pairwise~condition)que me da el siguiente resultado:

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. El multcomppaquete de dos maneras diferentes - con ayuda de mcp glht(exp.model,mcp(condition="Tukey"))lo que resulta en

     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)

y el uso lsm glht(exp.model,lsm(pairwise~condition))resultante en

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 puede ver, los métodos dan resultados diferentes. Esta es la primera vez que trabajo con R y estadísticas, por lo que algo podría estar mal, pero no sabría dónde. Mis preguntas son:

¿Cuáles son las diferencias entre los métodos presentados? Leí en una respuesta a preguntas relacionadas que se trata de los grados de libertad ( lsmeansvs. glht). ¿Existen algunas reglas o recomendaciones sobre cuándo usar cuál, es decir, el método 1 es bueno para este tipo de conjunto / modelo de datos, etc.? ¿Qué resultado debo informar? Sin saberlo, probablemente solo iría y reportaría el valor p más alto que pude jugar a lo seguro, pero sería bueno tener una mejor razón. Gracias

schvaba986
fuente

Respuestas:

17

No es una respuesta completa ...

La diferencia entre glht(myfit, mcp(myfactor="Tukey"))y los otros dos métodos es que de esta manera se usa una estadística "z" (distribución normal), mientras que los otros usan una estadística "t" (distribución de Student). La estadística "z" es lo mismo que una estadística "t" con un grado infinito de libertad. Este método es asintótico y proporciona valores p más pequeños e intervalos de confianza más cortos que los otros. Los valores p pueden ser demasiado pequeños y los intervalos de confianza pueden ser demasiado cortos si el conjunto de datos es pequeño.

Cuando ejecuto lsmeans(myfit, pairwise~myfactor)el siguiente mensaje aparece:

Loading required namespace: pbkrtest

Eso significa que lsmeans(para un lmermodelo) usa el pbkrtestpaquete que implementa el método de Kenward & Rogers para los grados de libertad de la estadística "t". Este método tiene la intención de proporcionar mejores valores de p e intervalos de confianza que el asintótico (no hay diferencia cuando el grado de libertad es grande).

Ahora, sobre la diferencia entre lsmeans(myfit, pairwise~myfactor)$contrastsy glht(myfit, lsm(pairwise~factor), acabo de hacer algunas pruebas y mis observaciones son las siguientes:

  • lsmes una interfaz entre el lsmeanspaquete y el multcomppaquete (ver ?lsm)

  • para un diseño equilibrado no hay diferencia entre los resultados

  • para un diseño desequilibrado, observé pequeñas diferencias entre los resultados (los errores estándar y la relación t)

Lamentablemente, no sé cuál es la causa de estas diferencias. Parecen lsmllamadas lsmeanssolo para obtener la matriz de hipótesis lineales y los grados de libertad, pero lsmeansutiliza una forma diferente de calcular los errores estándar.

Stéphane Laurent
fuente
¡Gracias por la respuesta detallada! Perdí completamente la diferencia en el estadístico de prueba ... Usted menciona que los valores pueden ser demasiado pequeños y los IC demasiado estrechos para el método asintótico. Mi conjunto de datos consta de ~ 30 participantes, así que supongo que me atendré a la estadística t. Cuando dice que el método de Kenward & Rogers conduce a mejores valores de p, ¿quiere decir más preciso o más pequeño? Entonces, las diferencias se deben a diferencias en los métodos de cálculo de df y SE y no al uso incorrecto de uno de ellos con mi modelo, si lo entendí correctamente. ¿Hay alguna manera de elegir el "mejor" método aquí?
schvaba986
11
(Soy el desarrollador del paquete lsmeans ) lsmeansutiliza el paquete pbkrtest, que proporciona (1) cálculos de Kenward-Rogers df y (2) una matriz de covarianza ajustada con sesgo reducido en las estimaciones. Si configura por primera vez lsm.options(disable.pbkrtest=TRUE), la lsmeansllamada con adjust="mvt"producirá los mismos resultados que glht, excepto por pequeñas diferencias debido al algoritmo aleatorio utilizado por ambos paquetes para la distribución t multivariada.
Russ Lenth
3
Sin embargo, sugiero el ajuste "mvt" sin deshabilitar pbkrtest, debido al ajuste de sesgo y al hecho de que sin df, los valores asintóticos (z) asumen esencialmente df infinito, produciendo así valores de P poco realistas.
Russ Lenth
3
Por cierto, el summarymétodo glhtpermite varios métodos de prueba reductores además del ajuste de multiplicidad predeterminado de un paso (CI simultáneos). En un punto completamente diferente, si tiene más de un factor, lsmpuede crear los tipos habituales de comparaciones con bastante facilidad, mientras mcpque no puede hacerlo en absoluto.
Russ Lenth