¿Por qué estos 2 enfoques para aplicar modelos mixtos arrojan resultados diferentes?

8

Estoy volviendo a analizar los datos de un colega. Los datos y el código R están aquí .

Es un diseño 2x2x2x2x3 completamente dentro de Ss. Una de las variables predictoras cue, es una variable de dos niveles que cuando se contrae a un puntaje de diferencia refleja un valor pertinente a la teoría. Anteriormente colapsó cuea un puntaje de diferencia dentro de cada sujeto y condición, luego calculó un ANOVA, produciendo un MSE que luego podría usar para comparaciones planificadas del puntaje de diferencia media de cada condición contra cero. Tendrás que confiar en que ella no estaba pescando y que tenía una buena base teórica para hacer las 24 pruebas.

Pensé que vería si había alguna diferencia cuando, en cambio, usara modelos de efectos mixtos para representar los datos. Como se muestra en el código, tomé dos enfoques:

Método 1: modele los datos como un diseño 2x2x2x2x3, obtenga muestras a posteriori de este modelo, calcule la cuepuntuación de diferencia para cada condición dentro de cada muestra, calcule el intervalo de predicción del 95% para la puntuación de diferencia de referencia dentro de cada condición.

Método 2: colapsar cuea una puntuación de diferencia dentro de cada sujeto y condición, modelar los datos como un diseño 2x2x2x3, obtener muestras a posteriori de este modelo, calcular el intervalo de predicción del 95% para la puntuación de diferencia de referencia dentro de cada condición.

Parece que el método 1 produce intervalos de predicción más amplios que el método 2, con la consecuencia de que si uno usa la superposición con cero como criterio de "significancia", solo el 25% de los puntajes son "significativos" en el método 1, mientras que el 75% de los puntajes son son "significativos" bajo el método 2. Notablemente, los patrones de significancia obtenidos por el método 2 son más parecidos a los resultados originales basados ​​en ANOVA que los patrones obtenidos por el método 1.

¿Alguna idea de lo que está pasando aquí?

Mike Lawrence
fuente

Respuestas:

3

No es sorprendente ver tanta diferencia con lmer o lme. Un modelo simple con una intercepción aleatoria (por ejemplo, (1 | id) en su caso) a veces puede fallar al capturar completamente los efectos aleatorios. Para ver por qué sucede esto, permítame usar un conjunto de datos mucho más simple que el suyo para demostrar la sutil diferencia. Con los datos 'dat' del hilo que copio aquí:

dat <- structure(list(sex = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L,
2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L,
2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("f",
"m"), class = "factor"), prevalence = c(0, 0.375, 0.133333333333333,
0.176470588235294, 0.1875, 0, 0, 1, 1, 0.5, 0.6, 0.333333333333333,
0.5, 0, 0.333333333333333, 0, 0.5, 0, 0.625, 0.333333333333333,
0.5, 0, 0.333333333333333, 0.153846153846154, 0.222222222222222,
0.5, 1, 0.5, 0, 0.277777777777778, 0.125, 0, 0, 0.428571428571429,
0.451612903225806, 0.362068965517241), tripsite = structure(c(1L,
1L, 4L, 4L, 14L, 14L, 5L, 5L, 8L, 8L, 15L, 15L, 6L, 6L, 9L, 9L,
11L, 11L, 16L, 16L, 2L, 2L, 7L, 7L, 10L, 10L, 13L, 13L, 17L,
17L, 3L, 3L, 12L, 12L, 18L, 18L), .Label = c("1.2", "4.2", "5.2",
"1.3", "2.3", "3.3", "4.3", "2.4", "3.4", "4.4", "3.5", "5.5",
"4.6", "1.9", "2.9", "3.9", "4.9", "5.9"), class = "factor")), .Names =
c("sex","prevalence", "tripsite"), row.names = c(1L, 2L, 3L, 4L, 9L,
10L, 11L, 12L, 13L, 14L, 17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L,
27L, 28L, 29L, 30L, 31L, 32L, 33L, 34L, 35L, 36L, 38L, 39L, 40L,
41L, 42L, 43L, 45L, 46L), class = "data.frame")

una prueba t pareada (o un caso especial de ANOVA unidireccional dentro del sujeto / medidas repetidas) sería como su Método 2:

t0 <- with(dat,t.test(prevalence[sex=="f"],prevalence[sex=="m"],paired=TRUE,var.equal=TRUE))
(fstat0 <- t0$statistic^2)         #0.789627

Su versión lme correspondiente a su Método 1 sería:

a1 <- anova(lme(prevalence~sex,random=~1|tripsite,data=dat,method="REML"))
(fstat1 <- a1[["F-value"]][2])   # 0.8056624

Lo mismo para la contraparte de Lmer:

a2 <- anova(lmer(prevalence~sex+(1|tripsite), data=dat))
(fstat2 <- a2[["F value"]][2])  # 0.8056624

Aunque la diferencia con este simple ejemplo es pequeña, muestra que la prueba t pareada tiene una suposición mucho más fuerte sobre los dos niveles ("f" y "m") del factor ("sexo"), que los dos niveles están correlacionados, y tal suposición está ausente en el modelo lme / lmer anterior. Tal diferencia de suposición también existe entre los dos métodos en su caso.

Para conciliar la diferencia, podemos continuar modelando 'dat' con una pendiente aleatoria (o matriz simétrica o incluso simetría compuesta) en lme / lmer:

a3 <- anova(lme(prevalence~sex,random=~sex-1|tripsite,data=dat,method="REML"))
(fstat3 <- a3[["F-value"]][2]) # 0.789627

a31 <- anova(lme(prevalence~sex,random=list(tripsite=pdCompSymm(~sex-1)),data=dat,method="REML")))
(fstat31 <- a31[["F-value"]][2]) # 0.789627

a4 <- anova(lmer(prevalence~sex+(sex-1|tripsite), data=dat))
(fstat4 <- a4[["F value"]][2]) # 0.789627

Sin embargo, con múltiples factores en su caso, múltiples pendientes aleatorias (u otras especificaciones de estructura de efectos aleatorios) pueden volverse difíciles de manejar con lme / lmer si no es imposible.

Bluepole
fuente
Buena llamada. Ahora veo que colapsar para indicar una puntuación de diferencia antes del análisis es equivalente a permitir que el efecto de señal varíe según el participante.
Mike Lawrence