Estoy analizando los resultados de un experimento de tiempo de reacción en R.
Ejecuté un ANOVA de medidas repetidas (1 factor dentro del sujeto con 2 niveles y 1 factor entre sujetos con 2 niveles). Ejecuté un modelo lineal mixto similar y quería resumir los resultados de lmer en forma de tabla ANOVA usando lmerTest::anova
.
No me malinterpreten: no esperaba resultados idénticos, sin embargo, no estoy seguro de los grados de libertad en los lmerTest::anova
resultados. Me parece que más bien refleja un ANOVA sin agregación a nivel de materia.
Soy consciente del hecho de que calcular los grados de libertad en los modelos de efectos mixtos es complicado, pero lmerTest::anova
se menciona como una posible solución en el ?pvalues
tema actualizado ( lme4
paquete).
¿Es correcto este cálculo? ¿Los resultados de lmerTest::anova
reflejar correctamente el modelo especificado?
Actualización: hice las diferencias individuales más grandes. Los grados de libertad en lmerTest::anova
son más diferentes de los simples anova, pero todavía no estoy seguro de por qué son tan grandes para el factor / interacción dentro del sujeto.
# mini example with ANT dataset from ez package
library(ez); library(lme4); library(lmerTest)
# repeated measures ANOVA with ez package
data(ANT)
ANT.2 <- subset(ANT, !error)
# update: make individual differences larger
baseline.shift <- rnorm(length(unique(ANT.2$subnum)), 0, 50)
ANT.2$rt <- ANT.2$rt + baseline.shift[as.numeric(ANT.2$subnum)]
anova.ez <- ezANOVA(data = ANT.2, dv = .(rt), wid = .(subnum),
within = .(direction), between = .(group))
anova.ez
# similarly with lmer and lmerTest::anova
model <- lmer(rt ~ group * direction + (1 | subnum), data = ANT.2)
lmerTest::anova(model)
# simple ANOVA on all available data
m <- lm(rt ~ group * direction, data = ANT.2)
anova(m)
Resultados del código anterior [ actualizado ]:
anova.ez
$ ANOVA
Effect DFn DFd F p p<.05 ges
2 group 1 18 2.6854464 0.11862957 0.1294475137
3 direction 1 18 0.9160571 0.35119193 0.0001690471
4 group:direction 1 18 4.9169156 0.03970473 * 0.0009066868
lmerTest :: anova (modelo)
Analysis of Variance Table of type 3 with Satterthwaite
approximation for degrees of freedom
Df Sum Sq Mean Sq F value Denom Pr(>F)
group 1 13293 13293 2.6830 18 0.1188
direction 1 1946 1946 0.3935 5169 0.5305
group:direction 1 11563 11563 2.3321 5169 0.1268
anova (m)
Analysis of Variance Table
Response: rt
Df Sum Sq Mean Sq F value Pr(>F)
group 1 1791568 1791568 242.3094 <2e-16 ***
direction 1 728 728 0.0985 0.7537
group:direction 1 12024 12024 1.6262 0.2023
Residuals 5187 38351225 7394
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
fuente
ezAnova
advertencia, ya que no debe ejecutar 2x2 anova si, de hecho, sus datos son de diseño 2x2x2.ez
podría ser redactada nuevamente; en realidad tiene dos partes que son importantes: (1) que los datos se están agregando y (2) cosas sobre diseños parciales. El n. ° 1 es más pertinente para la discrepancia, ya que explica que para hacer una anova tradicional de efectos no mixtos, uno debe agregar los datos a una sola observación por celda del diseño. En este caso, queremos una observación por sujeto por nivel de la variable "dirección" (mientras se mantienen las etiquetas de grupo para los sujetos). ezANOVA calcula esto automáticamente.summary(aov(rt ~ group*direction + Error(subnum/direction), data=ANT.2))
y da 16 (?) Dfs paragroup
y 18 paradirection
ygroup:direction
. El hecho de que haya ~ 125 observaciones por combinación de grupo / dirección es prácticamente irrelevante para RM-ANOVA, consulte, por ejemplo, mi propia pregunta stats.stackexchange.com/questions/286280 : la dirección se prueba, por así decirlo, contra el sujeto. Interacción de dirección.lmerTest
esas estimaciones ~ 125 dfs.lmerTest::anova(model2, ddf="Kenward-Roger")
devuelve 18,000 df paragroup
y17.987
df para los otros dos factores, lo cual está en excelente acuerdo con RM-ANOVA (según ezAnova). Mi conclusión es que la aproximación de Satterthwaite fallamodel2
por alguna razón.Generalmente estoy de acuerdo con el análisis de Ben, pero permítanme agregar un par de comentarios y un poco de intuición.
Primero, los resultados generales:
Ben describe el diseño en el que
subnum
está anidado engroup
whiledirection
y con el quegroup:direction
se cruzasubnum
. Esto significa que el término de error natural (es decir, el llamado "estrato de error de cierre")group
essubnum
mientras que el estrato de error de cierre para los otros términos (incluidossubnum
) son los residuos.Esta estructura se puede representar en un llamado diagrama de estructura factorial:
Aquí los términos aleatorios están encerrados entre paréntesis,
0
representa la media general (o intercepción),[I]
representa el término de error, los números de superguión son el número de niveles y los números de subguión son el número de grados de libertad asumiendo un diseño equilibrado. El diagrama indica que el término de error natural (que incluye el estrato de error) paragroup
essubnum
y que el numerador df parasubnum
, que es igual al denominador df paragroup
, es 18:20 menos 1 df paragroup
y 1 df para la media general. Una introducción más completa a los diagramas de estructura de factores está disponible en el capítulo 2 aquí: https://02429.compute.dtu.dk/eBook .Si los datos estuvieran exactamente equilibrados, podríamos construir las pruebas F a partir de una descomposición SSQ según lo dispuesto por
anova.lm
. Dado que el conjunto de datos está muy equilibrado, podemos obtener pruebas F aproximadas de la siguiente manera:Aquí, todos los valores de F y p se calculan suponiendo que todos los términos tienen los residuos como su estrato de error que los encierra, y eso es cierto para todos menos para 'grupo'. La prueba F 'equilibrada-correcta' para el grupo es:
donde usamos la
subnum
MS en lugar de laResiduals
MS en el denominador de valor F.Tenga en cuenta que estos valores coinciden bastante bien con los resultados de Satterthwaite:
Las diferencias restantes se deben a que los datos no están exactamente equilibrados.
El OP se compara
anova.lm
conanova.lmerModLmerTest
, lo cual está bien, pero para comparar like con like tenemos que usar los mismos contrastes. En este caso, hay una diferencia entreanova.lm
yanova.lmerModLmerTest
dado que producen pruebas de Tipo I y III por defecto, respectivamente, y para este conjunto de datos hay una diferencia (pequeña) entre los contrastes de Tipo I y III:Si el conjunto de datos se hubiera equilibrado completamente, los contrastes de tipo I habrían sido los mismos que los contrastes de tipo III (que no se ven afectados por el número observado de muestras).
Una última observación es que la 'lentitud' del método de Kenward-Roger no se debe al reajuste del modelo, sino a que implica cálculos con la matriz de varianza-covarianza marginal de las observaciones / residuos (5191x5191 en este caso) que no es El caso del método de Satterthwaite.
En cuanto al modelo2
En cuanto al modelo 2, la situación se vuelve más compleja y creo que es más fácil comenzar la discusión con otro modelo donde he incluido la interacción 'clásica' entre
subnum
ydirection
:Debido a que la varianza asociada con la interacción es esencialmente cero (en presencia del
subnum
efecto principal aleatorio), el término de interacción no tiene efecto en el cálculo de los grados de libertad del denominador, los valores F y los valores p :Sin embargo,
subnum:direction
es el estrato de error de cierre, porsubnum
lo que si eliminamossubnum
todos los SSQ asociados vuelven a caersubnum:direction
Ahora, el término de error natural para
group
,direction
ygroup:direction
essubnum:direction
y connlevels(with(ANT.2, subnum:direction))
= 40 y cuatro parámetros, los grados de libertad del denominador para esos términos deben ser aproximadamente 36:Estas pruebas F también se pueden aproximar con las pruebas F 'equilibradas correctas' :
ahora volviendo al modelo2:
Este modelo describe una estructura de covarianza de efecto aleatorio bastante complicada con una matriz de varianza-covarianza de 2x2. La parametrización predeterminada no es fácil de manejar y estamos mejor con una nueva parametrización del modelo:
Si comparamos
model2
amodel4
, tienen igualmente muchos efectos aleatorios; 2 para cada unosubnum
, es decir, 2 * 20 = 40 en total. Si bienmodel4
estipula un único parámetro de varianza para los 40 efectos aleatorios,model2
estipula que cadasubnum
par de efectos aleatorios tiene una distribución normal bivariada con una matriz de varianza-covarianza 2x2 cuyos parámetros están dados porEsto indica un ajuste excesivo, pero guardemos eso para otro día. El punto importante aquí es que
model4
es un caso especial demodel2
y que tambiénmodel
es un caso especial de . Hablar libremente (e intuitivamente) contiene o captura la variación asociada con el efecto principal , así como la interacción . En términos de los efectos aleatorios, podemos pensar en estos dos efectos o estructuras como capturar la variación entre filas y filas por columnas, respectivamente:model2
(direction | subnum)
subnum
direction:subnum
En este caso, estas estimaciones de efectos aleatorios, así como las estimaciones de parámetros de varianza, indican que realmente solo tenemos un efecto principal aleatorio de
subnum
(variación entre filas) presente aquí. A lo que todo esto lleva es al denominador Satterthwaite grados de libertad enes un compromiso entre estas estructuras de interacción y efecto principal: el grupo DenDF permanece en 18 (anidado
subnum
por diseño) perodirection
ygroup:direction
DenDF son compromisos entre 36 (model4
) y 5169 (model
).No creo que nada aquí indique que la aproximación Satterthwaite (o su implementación en lmerTest ) sea defectuosa.
La tabla equivalente con el método Kenward-Roger da
No es sorprendente que KR y Satterthwaite puedan diferir, pero a todos los efectos prácticos, la diferencia en los valores p es diminuta. Mi análisis anterior indica que el
DenDF
fordirection
ygroup:direction
no debería ser menor que ~ 36 y probablemente mayor que eso dado que básicamente solo tenemos el efecto principal aleatorio deldirection
presente, por lo que, en todo caso, creo que esto es una indicación de que el método KR esDenDF
demasiado bajo en este caso. Pero tenga en cuenta que los datos realmente no son compatibles con la(group | direction)
estructura, por lo que la comparación es un poco artificial: sería más interesante si el modelo fuera realmente compatible.fuente
model3
. Sin embargo, se utilizasubnum:direction
como término de error para la pruebadirection
. Mientras que aquí puede forzar que esto suceda solo excluyendo(1|subnum)
como enmodel4
. ¿Por qué? (2b) Además, RM-ANOVA produce df = 18 paradirection
, no 36 a medida que ingresamodel4
. ¿Por qué?summary(aov(rt ~ group*direction + Error(subnum/direction), data=ANT.2))
.subnum
ysubnum:direction
no son cero, entoncesanova(lm(rt2 ~ group * direction + subnum + subnum:direction, data = ANT.2))
da 18 df para los tres factores y esto es lo que recoge el método KR. Esto se puede ver yamodel3
donde KR da el 18 df basado en el diseño para todos los términos, incluso cuando la varianza de interacción es cero, mientras que Satterthwaite reconoce el término de varianza que desaparece y ajusta el df en consecuencia ...