Гомозначественная тест для двусторонней ановой
Вопрос
Я использовал var.test
а также bartlett.test
Чтобы проверить основные предположения Anova, среди прочего, гомокачественность (однородность, равенство отклонений). Процедура довольно проста для одностороннего ANOVA:
bartlett.test(x ~ g) # where x is numeric, and g is a factor
var.test(x ~ g)
Но, для 2x2 столов, то есть двусторонняя Анова, я хочу сделать что-то вроде этого:
bartlett.test(x ~ c(g1, g2)) # or with list; see latter:
var.test(x ~ list(g1, g2))
Конечно, предположения Anova можно проверить с графическими процедурами, но как насчет «Арифметический вариант»? Это, вообще управляемое? Как вы тестируете гомокачественность во двоилевой Анова?
Решение
Тестирование гипотезы - это неправильный инструмент для ослабления достоверности допущений модели. Если размер выборки небольшой, у вас нет возможности обнаружить любые различия дисперсионов, даже если различия дисперсионов велики. Если у вас большой размер выборки, у вас есть мощность для обнаружения даже самых тривиальных отклонений от равной дисперсии, поэтому вы почти всегда отвергаете нуль. Исследования моделирования показали, что предварительное тестирование модели предположения приводит к ошибкам ненадежного типа I.
Глядя на остатки по всем клетку - хороший индикатор, или если ваши данные являются нормальными, вы можете использовать AIC или BIC с / без равных вариантов в качестве процедуры выбора.
Если вы думаете, что есть неравные отклонения, отбросьте предположение с чем-то вроде:
library(car)
model.lm <- lm(formula=x ~ g1 + g2 + g1*g2,data=dat,na.action=na.omit)
Anova(model.lm,type='II',white.adjust='hc3')
Вы не теряете большой мощности с надежным способом (HetroScedastic согласованные ковариационные матрицы), поэтому, если под сомнением идти надежным.
Другие советы
Вы можете проверить гетероскудастику, используя Тестирование Fligner-Killeen однородности вариантов. Предположим, что ваша модель что-то вроде
model<-aov(gain~diet*supplement)
fligner.test(gain~diet*supplement)
Fligner-Killeen test of homogeneity of variances
data: gain by diet by supplement
Fligner-Killeen:med chi-squared = 2.0236, df = 2, p-value = 0.3636
Вы могли бы использовать Bartlett.test.test. (Но это больше тест не нормальности, чем равенство отклонений)
bartlett.test(gain~diet*supplement)
Bartlett test of homogeneity of variances
data: gain by diet by supplement
Bartlett's K-squared = 2.2513, df = 2, p-value = 0.3244
Более того, вы могли бы выполнить Levene test
Для равных групповых отклонений как как в одностороннем, так и в двухстороннем анове. Реализации теста Левене можно найти в пакетах машина (ссылка исправлена), S20X. а также Лоузап
levene.test(gain~diet*supplement) # car package version
Levene's Test for Homogeneity of Variance
Df F value Pr(>F)
group 11 1.1034 0.3866
36
Для bartlett.test
bartlett.test(split(x,list(g1,g2)))
var.test
Не применимо, так как работает только тогда, когда есть две группы.