Маргинальный тест ANOVA в R

Я пытаюсь выполнить маргинальный (также называемый типом III) ANOVA, используя следующий код. К сожалению, я получаю сообщение «Ошибка: оператор $ недействителен для атомарных векторов». Поиск в Google обнаружил, что другой человек получил ту же ошибку (

rm(list = ls())

data(iris)

iris.lm <- lm(formula = Sepal.Length ~ Sepal.Width + Petal.Length , data = iris)
print(anova(object = iris.lm))
print(anova(object = iris.lm , type = "marginal"))

person Stirling    schedule 20.02.2014    source источник
comment
может вы это перепутали с nlme::anova.lme?   -  person rawr    schedule 20.02.2014


Ответы (2)


Для дальнейшего использования функция Anova из пакета car принимает аргумент type (например, "III" или 3). Эту функцию не следует путать с функцией anova из стандартной библиотеки R, которая не принимает аргумент type.

person Stirling    schedule 20.02.2014
comment
Итак, на самом деле ответ на этот вопрос состоит в том, что плакат хочет использовать Anova() из cars пакета, а не anova() из базы. Я тоже совершил эту ошибку! Приятно столкнуться с этим комментарием, потому что я чувствую, что это, вероятно, случается часто! - person duHaas; 24.03.2014

Используя traceback, вы можете локализовать ошибку:

print(anova(object = iris.lm , type = "marginal"))
Error: $ operator is invalid for atomic vectors
> traceback()
7: deparse(x$terms[[2L]])
6: FUN(X[[2L]], ...)
5: lapply(objects, function(x) deparse(x$terms[[2L]]))
4: anova.lmlist(object, ...)
3: anova.lm(object = iris.lm, type = "marginal")
2: anova(object = iris.lm, type = "marginal")
1: print(anova(object = iris.lm, type = "marginal"))

Таким образом, вы получаете сообщение об ошибке, потому что пытаетесь вызвать terms для объекта, который его не поддерживает. Это воспроизводит ошибку:

 lapply(list(iris.lm,type='marginal'),terms)
 Error: $ operator is invalid for atomic vectors

Или просто :

terms('marginal')

Но почему вы ожидаете, что это сработает? Возможно, я что-то упускаю, но я думаю, что здесь не упоминается, что anova может использовать type в качестве аргумента.

person agstudy    schedule 20.02.2014