Я пытаюсь выполнить повторные измерения Anova в R с последующими некоторыми конкретными контрастами в этом наборе данных. Я думаю, что правильный подход будет использовать
Anova()
из пакета автомобилей.
Позволяет проиллюстрировать мой вопрос на примере взят из ?Anova
используя
OBrienKaiser
данные (Примечание: Я опущен гендерный фактор из примера):
Мы имеем конструкцию с одним между субъектами фактором, лечением (3 уровня: контроль, A, B), и 2 повторными -измерения (в рамках предметов) факторы, фаза (3 уровня: предварительный тест, пост-тест, наблюдение) и час (5 уровней: от 1 до 5).
Стандартная таблица ANOVA задается как (в отличие от примера (Anova) я переключился на тип 3 Суммы квадратов, это то, чего хочет мое поле):
require(car)
phase <- factor(rep(c("pretest", "posttest", "followup"), c(5, 5, 5)),
levels=c("pretest", "posttest", "followup"))
hour <- ordered(rep(1:5, 3))
idata <- data.frame(phase, hour)
mod.ok <- lm(cbind(pre.1, pre.2, pre.3, pre.4, pre.5, post.1, post.2, post.3, post.4, post.5, fup.1, fup.2, fup.3, fup.4, fup.5) ~ treatment, data=OBrienKaiser)
av.ok <- Anova(mod.ok, idata=idata, idesign=~phase*hour, type = 3)
summary(av.ok, multivariate=FALSE)
Теперь представьте, что взаимодействие наивысшего порядка было бы значительным (что не так), и мы хотели бы изучить его далее со следующими контрастами:
есть ли разница между часами 1 и 2 по сравнению с часами 3 (контраст 1) и между часами 1 и 2 по сравнению с 4 и 5 часами (контраст 2) в условиях лечения (A и B вместе)?
Другими словами, как мне указать эти контрасты:
((treatment %in% c("A", "B")) & (hour %in% 1:2))
против((treatment %in% c("A", "B")) & (hour %in% 3))
((treatment %in% c("A", "B")) & (hour %in% 1:2))
против((treatment %in% c("A", "B")) & (hour %in% 4:5))
Моя идея состояла бы в том, чтобы запустить другую ANOVA, пропуская ненужное условие лечения (контроль):
mod2 <- lm(cbind(pre.1, pre.2, pre.3, pre.4, pre.5, post.1, post.2, post.3, post.4, post.5, fup.1, fup.2, fup.3, fup.4, fup.5) ~ treatment, data=OBrienKaiser, subset = treatment != "control")
av2 <- Anova(mod2, idata=idata, idesign=~phase*hour, type = 3)
summary(av2, multivariate=FALSE)
Тем не менее, я до сих пор не знаю, как настроить соответствующую контрастную матрицу внутри объекта, сравнивая часы 1 и 2 с 3 и 1 и 2 с 4 и 5. И я не уверен, что если вы пропустите ненужную группу лечения, это действительно хорошая идея, так как она меняет общий термин ошибки.
Прежде чем идти, Anova()
я тоже думал о том, чтобы пойти lme
. Однако существуют небольшие различия в значениях F и p между ANOVA из учебника и тем, что возвращается из- anove(lme)
за возможных отрицательных отклонений в стандартном ANOVA (которые не допускаются вlme
). Относительно того, кто-то указал мне, gls
что позволяет подогнать повторные измерения ANOVA, однако, это не имеет контрастного аргумента.
Чтобы уточнить: я хочу F или t-тест (используя суммы квадратов типа III), который отвечает, являются ли желаемые контрасты значительными или нет.
Обновить:
Я уже задавал очень похожий вопрос по R-help, ответа не было .
Подобные вопросы были заданы на R-help некоторое время назад. Тем не менее, ответы также не решили проблему.
Обновление (2015):
Поскольку этот вопрос все еще порождает некоторую активность, определение тезисов и, в основном, всех других контрастов теперь может быть сделано относительно легко с помощью afex
пакета в сочетании с lsmeans
пакетом, как описано в виньетке afex .
treatment
, 3) для каждого человека, среднего по уровнямprePostFup
, 4) для каждого человека, среднего по часам 1,2 (= группа данных 1) а также в течение часов 3,4 (= группа данных 2), 5) выполнить t-тест для 2 зависимых групп. Так как Maxwell & Delaney (2004), а также Kirk (1995) не рекомендуют делать контрасты с объединенным термином ошибки в рамках внутренних проектов, это может быть простой альтернативой.Ответы:
Этот метод обычно считается «старомодным», поэтому, хотя это и возможно, синтаксис сложен, и я подозреваю, что меньше людей знают, как манипулировать командами anova, чтобы получить то, что вы хотите. Более распространенным методом является использование
glht
модели на основе вероятности изnlme
илиlme4
. (Я, конечно, могу быть ошибочным при других ответах.)Тем не менее, если бы мне нужно было сделать это, я бы не стал беспокоиться о командах anova; Я просто подгонял бы эквивалентную модель, используя
lm
, выбирал правильный термин ошибки для этого контраста и сам вычислял F-тест (или, эквивалентно, t-тест, поскольку есть только 1 df). Это требует, чтобы все было сбалансировано и имело сферичность, но если у вас его нет, вам, вероятно, все равно следует использовать модель, основанную на вероятности. Возможно, вы сможете несколько исправить несферичность, используя поправки Гринхауса-Гейзера или Хюйна-Фельдта, которые (я полагаю) используют ту же F-статистику, но изменяют df члена ошибки.Если вы действительно хотите использовать
car
, вы можете найти полезные виньетки heplot ; они описывают, как определяются матрицы вcar
пакете.Используя метод Каракала (для контрастов 1 & 2 - 3 и 1 & 2 - 4 & 5), я получаю
Вот как я получу те же самые p-значения:
Преобразуйте данные в длинный формат и запустите,
lm
чтобы получить все условия SS.Составьте альтернативную контрастную матрицу для часового семестра.
Убедитесь, что мои контрасты дают те же SS, что и контрасты по умолчанию (и такие же, как у полной модели).
Получить SS и DF только для двух контрастов, которые я хочу.
Получить р-значения.
При желании настроить для сферичности.
источник
heplots
виньетку, это действительно хорошее резюме того, что происходит с точки зрения общей линейной модели.Если вы хотите / должны использовать контрасты с объединенным термином ошибки из соответствующего ANOVA, вы можете сделать следующее. К сожалению, это будет долго, и я не знаю, как это сделать удобнее. Тем не менее, я думаю, что результаты верны, поскольку они проверены по Максвеллу и Делани (см. Ниже).
Вы хотите сравнить группы первых внутри фактора
hour
в схеме SPF-p.qr (запись Кирка (1995): схема сплит-график -факториал 1 между факторомtreatment
с p группами, сначала внутри фактораhour
с q группами, затем внутри фактораprePostFup
с р группы). Следующее предполагает одинаковые размерыtreatment
групп и сферичность.Прежде всего обратите внимание, что основной эффект для
hour
того же самого после усредненияprePostFup
, таким образом, переключается на более простую схему SPF-pq, которая содержит толькоtreatment
иhour
как IV.Теперь обратите внимание, что в SPF-pq ANOVA эффект для
hour
проверяется на взаимодействиеid:hour
, т. Е. Это взаимодействие обеспечивает ошибку для теста. Теперь контрасты дляhour
групп можно проверить так же, как в одностороннем ANOVA между субъектами, просто подставив термин ошибки и соответствующие степени свободы. Самый простой способ получить SS и df этого взаимодействия - соответствовать моделиlm()
.Но давайте также посчитаем все вручную здесь.
hour:id
Anova()
car
источник