N - путь ANOVA в R
Я работаю над проведением теста ANOVA из эксперимента с латинскими квадратами. По какой-то причине функция aov() распознает только 2 из 3 используемых переменных.
batch = c(1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5)
day = c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5)
ingredient = c('A','B','C','D','E','A','B','C','D','E','A','B','C','D','E','A','B','C','D','E','A','B','C','D','E')
rxn.time = c(8,11,4,6,4,7,2,9,8,2,1,7,10,6,3,7,3,1,6,8,3,8,5,10,8)
rxn.exp = data.frame(batch, day, ingredient, rxn.time)
test.10 = aov(rxn.exp$rxn.time~as.factor(rxn.exp$batch)+as.factor(rxn.exp$day)+as.factor(ingredient))
summary(test.10)
Резюме дает вывод только для первых 2 факторов. Я попытался использовать только функцию factor() вместо as.factor, а также несколько других попыток заставить R выполнить тест по своему усмотрению с 3 различными источниками вариации плюс любой шум. Может кто-нибудь объяснить, почему R не сотрудничает и как это исправить?
1 ответ
Это просто потому, что комбинации "партия" и "ингредиент" одинаковы (если партия =1, ингредиент =A и т. Д.). Если вы используете случайные ингредиенты, это работает. Например:
ingredient = LETTERS[sample(1:5, size= length(batch), replace=T)]
rxn.exp = data.frame(batch=as.factor(batch), day=as.factor(day), ingredient=as.factor(ingredient), rxn.time=rxn.time)
test.10 = lm(rxn.time~batch+day+ingredient, data=rxn.exp)
summary(test.10)
Также обратите внимание, что я ссылаюсь на фрейм данных в функции lm.