Тест на гомосексуализм для двухстороннего ANOVA
Я использовал var.test
и bartlett.test
для проверки базовых допущений ANOVA, среди прочих, гомосексуализма (гомогенности, равенства дисперсий). Процедура достаточно проста для одностороннего ANOVA:
bartlett.test(x ~ g) # where x is numeric, and g is a factor
var.test(x ~ g)
Но для таблиц 2x2, т.е. двухсторонних ANOVA, я хочу сделать что-то вроде этого:
bartlett.test(x ~ c(g1, g2)) # or with list; see latter:
var.test(x ~ list(g1, g2))
Конечно, предположения ANOVA могут быть проверены с помощью графических процедур, но как насчет "арифметической опции"? Разве это вообще невозможно? Как вы тестируете гомосексуализм в двухстороннем ANOVA?
Ответы
Ответ 1
Тестирование гипотез - это неправильный инструмент для оценки достоверности модельных допущений. Если размер выборки мал, у вас нет возможности обнаруживать различия в различиях, даже если различия в различиях велики. Если у вас большой размер выборки, у вас есть возможность обнаруживать даже самые тривиальные отклонения от равной дисперсии, поэтому вы почти всегда отклоняете нуль. Моделирующие исследования показали, что предварительное тестирование модельного предположения приводит к ненадежным ошибкам типа 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')
Вы не теряете много силы с помощью надежного метода (хетросбедастически совместимые матрицы ковариации), поэтому, если сомневаетесь, будьте надежны.
Ответ 2
Вы можете проверить гетеросексуальность, используя тест 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 (но это скорее тест не нормальности, чем равенство дисперсий)
bartlett.test(gain~diet*supplement)
Bartlett test of homogeneity of variances
data: gain by diet by supplement
Bartlett K-squared = 2.2513, df = 2, p-value = 0.3244
Кроме того, вы можете выполнить Levene test
для равных групповых дисперсий как в одностороннем, так и в двухстороннем ANOVA. Реализации теста Levene можно найти в пакетах car (ссылка исправлена), s20x и lawstat
levene.test(gain~diet*supplement) # car package version
Levene Test for Homogeneity of Variance
Df F value Pr(>F)
group 11 1.1034 0.3866
36
Ответ 3
Для bartlett.test
bartlett.test(split(x,list(g1,g2)))
var.test
неприменим, поскольку он работает только при наличии двух групп.