Вот пошаговый пример того, как воспроизвести ezANOVA
результаты с nlme::lme
.
Данные
Мы читаем в данных и гарантируем, что все категориальные переменныеявляются factor
с.
# Read in data
library(tidyverse);
df <- read.csv("castRTs.csv");
df <- df %>%
mutate(
blockType = factor(blockType),
linesTTL = factor(linesTTL));
Результаты ezANOVA
В качестве проверки мы воспроизводим ez::ezANOVA
результаты.
## ANOVA using ez::ezANOVA
library(ez);
model1 <- ezANOVA(
data = df,
dv = RT2,
wid = subjectnbr,
within = .(blockType, linesTTL),
type = 2,
detailed = TRUE,
return_aov = FALSE);
model1;
# $ANOVA
# Effect DFn DFd SSn SSd F p
#1 (Intercept) 1 13 2047405.6654 34886.767 762.9332235 6.260010e-13
#2 blockType 1 13 236.5412 5011.442 0.6136028 4.474711e-01
#3 linesTTL 1 13 6584.7222 7294.620 11.7348665 4.514589e-03
#4 blockType:linesTTL 1 13 1019.1854 2521.860 5.2538251 3.922784e-02
# p<.05 ges
#1 * 0.976293831
#2 0.004735442
#3 * 0.116958989
#4 * 0.020088855
Результаты nlme::lme
Теперь мы запускаем nlme::lme
## ANOVA using nlme::lme
library(nlme);
model2 <- anova(lme(
RT2 ~ blockType * linesTTL,
random = list(subjectnbr = pdBlocked(list(~1, pdIdent(~blockType - 1), pdIdent(~linesTTL - 1)))),
data = df))
model2;
# numDF denDF F-value p-value
#(Intercept) 1 39 762.9332 <.0001
#blockType 1 39 0.6136 0.4382
#linesTTL 1 39 11.7349 0.0015
#blockType:linesTTL 1 39 5.2538 0.0274
Результаты / заключение
Мы видим, что результаты F-теста обоих методов идентичны.Несколько сложная структура определения эффекта random
в lme
проистекает из того факта, что у вас есть два скрещенных случайных эффекта.Здесь «скрещенный» означает, что для каждой комбинации blockType
и linesTTL
существует наблюдение для каждого subjectnbr
.
Некоторые дополнительные (необязательные) сведения
Чтобы понять роль pdBlocked
и pdIdent
, нам нужно взглянуть на соответствующую двухуровневую модель смешанных эффектов
Переменные предиктора - это ваши категориальные переменные blockType
и linesTTL
, которые обычно кодируются с использованием фиктивных переменных.
Матрица дисперсии-ковариации для случайных эффектов может принимать различные формы в зависимости от базовой корреляционной структуры ваших коэффициентов случайных эффектов.Чтобы соответствовать предположениям о двухуровневой повторяющейся мере ANOVA, мы должны указать блочно-диагональную дисперсионно-ковариационную матрицу pdBlocked
, где мы создадим диагональные блоки для смещения ~1
и для категориальных переменных-предикторов blockType
pdIdent(~blockType - 1)
и linesTTL
pdIdent(~linesTTL - 1)
соответственно.Обратите внимание, что нам нужно вычесть смещение из двух последних блоков (поскольку мы уже учли смещение).
Некоторые релевантные / интересные ресурсы
Пинейро и Бейтс, модели смешанных эффектов в S и S-PLUS, Springer (2000)
Потвин и Шуц, Статистическая мощность для двухфакторных повторных измерений ANOVA, Методы исследования поведения, Instruments & Computers, 32, 347-356 (2000)
Деминг Ми, Как понимать и применять модели со смешанным эффектом, Департамент биостатистики, Университет Вандербильта