Таким образом, предполагая, что есть смысл проверить допущение нормальности для ановы (см. 1 и 2 )
Как это можно проверить в R?
Я ожидал бы сделать что-то вроде:
## From Venables and Ripley (2002) p.165.
utils::data(npk, package="MASS")
npk.aovE <- aov(yield ~ N*P*K + Error(block), npk)
residuals(npk.aovE)
qqnorm(residuals(npk.aov))
Что не работает, так как «остатки» не имеют метода (и не предсказывают, в этом отношении) для случая повторных измерений anova.
Так что же делать в этом случае?
Могут ли остатки просто быть извлечены из одной и той же подходящей модели без условия ошибки? Я недостаточно знаком с литературой, чтобы знать, действительно ли это так или нет, заранее спасибо за любые предложения.
источник
names(npk.aovE)
возвращает `[1]" (Intercept) "" block "" Within "`Другой вариант - использовать
lme
функциюnlme
пакета (а затем передать полученную модельanova
). Вы можете использоватьresiduals
на его выходе.источник
Я думаю, что допущение нормальности можно оценить для каждого из повторных измерений, прежде чем проводить анализ. Я бы изменил структуру данных таким образом, чтобы каждый столбец соответствовал повторяемой мере, а затем выполнил shapiro.test для каждого из этих столбцов.
источник
Венейблс и Рипли объясняют, как проводить остаточную диагностику для схемы повторных измерений, позже в своей книге (стр. 284), в разделе о случайных и смешанных эффектах.
Функция остатков (или остаток) реализована для результатов aov для каждого слоя:
из их примера:
oats.aov <- aov(Y ~ N + V + Error(B/V), data=oats, qr=T)
Чтобы получить установленные значения или остатки:
«Таким образом,
fitted(oats.aov[[4]])
иresid(oats.aov[[4]])
являются векторами длины 54, представляющими установленные значения и остатки от последней страты».Важно отметить, что они добавляют:
«Невозможно связать их однозначно с сюжетами оригинального эксперимента».
Для диагностики они используют проекцию:
Они также показывают, что модель может быть выполнена с использованием lme, как написал другой пользователь.
источник
Вот два варианта, с aov и с lme (я думаю, что второй предпочтительнее):
Исходный пример был получен без взаимодействия (
Lme.mod <- lme(Y ~ N * V, random = ~1 | B/V, data = oats)
), но, похоже, он работает с ним (и дает разные результаты, поэтому он что-то делает).Вот и все...
но для полноты:
1 - Краткое изложение модели
2 - тест Тьюки с повторными измерениями anova (3 часа в поисках этого !!).
3 - Графики нормальности и гомоскедастичности
источник