Estoy analizando algunos datos de comportamiento utilizando lme4en 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
nlmemá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 conditionmanipulació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 1para esto deberían mostrar el efecto, pero los ensayos codificados 0podrían no, porque falta un factor crucial.
También he incluido dos intercepciones aleatorias, para subjecty para target, que reflejan dvvalores 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_modelun 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 appropriateque se cumple el requisito (es decir, appropriate = 1), y para que se ajuste a un modelo nulo, y un modelo que incluya conditioncomo efecto, compare los dos modelos usando ANOVA nuevamente, y he aquí que conditionEs 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/…