Вот пошаговый пример того, как воспроизвести результаты ezANOVA
с помощью nlme::lme
.
Данные
Мы читаем данные и убеждаемся, что все категориальные переменные равны factor
s.
# 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
, нам нужно взглянуть на соответствующую двухуровневую модель смешанного эффекта.
![введите здесь описание изображения](https://i.stack.imgur.com/0UEFG.png)
Переменные-предикторы
— это ваши категориальные переменные blockType
и linesTTL
, которые обычно кодируются с использованием фиктивных переменных.
Матрица дисперсии-ковариации для случайных эффектов
может принимать различные формы в зависимости от базовой структуры корреляции ваших коэффициентов случайного эффекта. Чтобы соответствовать предположениям двухуровневого повторного измерения ANOVA, мы должны указать матрицу блочно-диагональной дисперсии-ковариации pdBlocked
, где мы создаем диагональные блоки для смещения ~1
и для категориальных переменных-предикторов blockType
pdIdent(~blockType - 1)
и linesTTL
pdIdent(~linesTTL - 1)
, соответственно. Обратите внимание, что нам нужно вычесть смещение из двух последних блоков (поскольку мы уже учли смещение).
Некоторые актуальные/интересные ресурсы
Пиньейро и Бейтс, Модели смешанных эффектов в S и S-PLUS , Спрингер (2000)
Потвин и Шутц, Статистическая мощность для двухфакторных повторных измерений ANOVA, Методы исследования поведения , Инструменты и компьютеры, 32, 347–356 (2000)
Деминг Ми, Как понимать и применять смешанные модели эффектов, кафедра биостатистики, университет Вандербильта
person
Maurits Evers
schedule
13.06.2018
ezANOVA
. Я думаю, что проблема связана с вашей спецификацией случайных эффектов вlme
, где вам нужно учитывать, что случайные эффектыblockType:subjectnbr
иlinesTTL:subjectnbr
пересекаются. Эти двухфакторные модели случайных эффектов могут быть довольно сложными для указания вlme
. Чтобы дать более конкретную помощь, нам нужен воспроизводимый пример с данными. - person Maurits Evers   schedule 13.06.2018ezANOVA
с помощьюnlme::lme
. Я также немного изменил заголовок вашего вопроса, чтобы лучше отразить постановку проблемы в основной части вашего сообщения. - person Maurits Evers   schedule 14.06.2018