Ja analizując niektóre dane behawioralne używając lme4
w R
, głównie po doskonałych tutoriali Bodo zimowy , ale nie rozumiem, jeśli mam właściwie obsługi interakcji. Co gorsza, nikt inny, kto bierze udział w tych badaniach, nie używa mieszanych modeli, więc jestem nieco zaniepokojony, jeśli chodzi o upewnienie się, że wszystko jest w porządku.
Zamiast po prostu poprosić o pomoc, pomyślałem, że powinienem dołożyć wszelkich starań, aby zinterpretować problem, a następnie poprosić o zbiorowe poprawki. Kilka innych oprócz:
- Podczas pisania znalazłem to pytanie , pokazując, że
nlme
bardziej bezpośrednio podam wartości p dla terminów interakcji, ale myślę, że nadal warto zadawać pytania w odniesieniu dolme4
. Livius'
odpowiedź na to pytanie zawierała linki do wielu dodatkowych lektur, które będę starał się przejść w ciągu najbliższych kilku dni, więc będę komentować wszelkie postępy, które przyniosą.
W moich danych mam zmienną zależną dv
, condition
manipulację (0 = kontrola, 1 = warunek eksperymentalny, co powinno skutkować wyższą dv
), a także warunek wstępny, oznaczony appropriate
: próby zakodowane 1
w tym celu powinny wykazywać efekt, ale próby zakodowane 0
mogą nie, ponieważ brakuje kluczowego czynnika.
I przypadkowe również dwa przecięcia, o subject
, i target
, co odzwierciedla skorelowanych dv
wartości w ramach każdego przedmiotu, a w każdej z 14 problemy rozwiązane (każdy uczestnik rozwiązane zarówno na kontrolną i doświadczalną wersji każdej problem).
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)
Wynik:
## 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 wykazuje wtedy interaction_model
znacznie lepsze dopasowanie niż mainfx_model
, z czego dochodzę do wniosku, że występuje znacząca interakcja (p = 0,035).
anova(mainfx_model, interaction_model)
Wynik:
## ...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
Stamtąd izoluję podzbiór danych, dla których appropriate
wymóg jest spełniony (tj. appropriate = 1
), I dla tego pasuje model zerowy, a model obejmujący condition
jako efekt, porównaj dwa modele za pomocą ANOVA ponownie, i oto znajdź, że condition
jest znaczącym predyktorem.
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)
Wynik:
## 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/…