Estoy analizando algunos datos de comportamiento utilizando lme4
en R
, sobre todo después de excelentes tutoriales de Bodo invierno , pero no entiendo si yo estoy manejando adecuadamente las interacciones. Peor aún, nadie más involucrado en esta investigación utiliza modelos mixtos, por lo que estoy un poco a la deriva cuando se trata de asegurarme de que las cosas estén bien.
En lugar de simplemente pedir un grito de ayuda, pensé que debería hacer mi mejor esfuerzo para interpretar el problema, y luego pedir sus correcciones colectivas. Algunos otros apartados son:
- Mientras escribía, encontré esta pregunta , que muestra que
nlme
más directamente dan valores p para términos de interacción, pero creo que todavía es válido preguntar con relación alme4
. Livius'
La respuesta a esta pregunta proporcionó enlaces a muchas lecturas adicionales, que trataré de completar en los próximos días, por lo que comentaré con cualquier progreso que traiga.
En mis datos, tengo una variable dependiente dv
, una condition
manipulación (0 = control, 1 = condición experimental, que debería resultar en una mayor dv
), y también un requisito previo, etiquetado appropriate
: los ensayos codificados 1
para esto deberían mostrar el efecto, pero los ensayos codificados 0
podrían no, porque falta un factor crucial.
También he incluido dos intercepciones aleatorias, para subject
y para target
, que reflejan dv
valores correlacionados dentro de cada sujeto, y dentro de cada uno de los 14 problemas resueltos (cada participante resolvió un control y una versión experimental de cada problema).
library(lme4)
data = read.csv("data.csv")
null_model = lmer(dv ~ (1 | subject) + (1 | target), data = data)
mainfx_model = lmer(dv ~ condition + appropriate + (1 | subject) + (1 | target),
data = data)
interaction_model = lmer(dv ~ condition + appropriate + condition*appropriate +
(1 | subject) + (1 | target), data = data)
summary(interaction_model)
Salida:
## Linear mixed model fit by REML ['lmerMod']
## ...excluded for brevity....
## Random effects:
## Groups Name Variance Std.Dev.
## subject (Intercept) 0.006594 0.0812
## target (Intercept) 0.000557 0.0236
## Residual 0.210172 0.4584
## Number of obs: 690, groups: subject, 38; target, 14
##
## Fixed effects:
## Estimate Std. Error t value
## (Intercept) 0.2518 0.0501 5.03
## conditioncontrol 0.0579 0.0588 0.98
## appropriate -0.0358 0.0595 -0.60
## conditioncontrol:appropriate -0.1553 0.0740 -2.10
##
## Correlation of Fixed Effects:
## ...excluded for brevity.
ANOVA luego muestra interaction_model
un ajuste significativamente mejor que mainfx_model
, del cual concluyo que hay una interacción significativa presente (p = .035).
anova(mainfx_model, interaction_model)
Salida:
## ...excluded for brevity....
## Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)
## mainfx_model 6 913 940 -450 901
## interaction_model 7 910 942 -448 896 4.44 1 0.035 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
A partir de ahí, aíslo un subconjunto de los datos para los appropriate
que se cumple el requisito (es decir, appropriate = 1
), y para que se ajuste a un modelo nulo, y un modelo que incluya condition
como efecto, compare los dos modelos usando ANOVA nuevamente, y he aquí que condition
Es un predictor significativo.
good_data = data[data$appropriate == 1, ]
good_null_model = lmer(dv ~ (1 | subject) + (1 | target), data = good_data)
good_mainfx_model = lmer(dv ~ condition + (1 | subject) + (1 | target), data = good_data)
anova(good_null_model, good_mainfx_model)
Salida:
## Data: good_data
## models:
## good_null_model: dv ~ (1 | subject) + (1 | target)
## good_mainfx_model: dv ~ condition + (1 | subject) + (1 | target)
## Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)
## good_null_model 4 491 507 -241 483
## good_mainfx_model 5 487 507 -238 477 5.55 1 0.018 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
lme4
: stats.stackexchange.com/questions/118416/…