Совместный тест на значимость с терминами взаимодействия: содержит неверные имена коэффициентов / переменных

Я пытаюсь выполнить совместный тест значимости в R:

library(car)
data("mtcars")
mylm <- lm(mpg ~ qsec + gear + am + am:qsec + am:hp, data=mtcars)

linearHypothesis(mylm, c("am + am:qsec + am:hp"))

Но я всегда сталкиваюсь с этой ошибкой:

Error in constants(lhs, cnames_symb) : 
  The hypothesis "am + am:qsec + am:hp" is not well formed: contains bad coefficient/variable names.

То, что я пытаюсь проверить, является ли

am + am:qsec + am:hp = 0

Я нашел в документации, как проверить все условия взаимодействия:

linearHypothesis(mylm, matchCoefs(mylm, ":"), verbose=TRUE)

Но я хочу проверить условия взаимодействия и условия уровня вместе. Это возможно?

1 ответ

Решение

Просто заметьте, что

mylm$coefficients
# (Intercept)        qsec        gear          am     qsec:am       am:hp 
# -12.2376256   0.8891289   4.1170265 -19.4050359   1.5298394  -0.0316123 

имеет qsec:am скорее, чем am:qsec, затем

linearHypothesis(mylm, c("am + qsec:am + am:hp"))

работает, но такой порядок не является чем-то очевидным. Например,

lm(mpg ~ am:qsec + am:hp, data = mtcars)$coef
# (Intercept)     am:qsec       am:hp 
#  17.1256930   0.7542508  -0.0456892
Другие вопросы по тегам