Гомозначественная тест для двусторонней ановой

StackOverflow https://stackoverflow.com/questions/2933253

  •  05-10-2019
  •  | 
  •  

Вопрос

Я использовал 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 Не применимо, так как работает только тогда, когда есть две группы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top