linearHypothesis()测试I(X)中包含的术语系数

时间:2017-11-24 13:46:10

标签: r statistics linear-regression hypothesis-test

我在下面的模型中用lht命令测试系数:

fashion.lm<-lm(LOGS~D2+D3+D4+I(D1*LOGA)+I(D2*LOGA)+I(D3*LOGA)+I(D4*LOGA)+I(D1*LOGC)+I(D2*LOGC)+I(D3*LOGC)+I(D4*LOGC))

但是,当我尝试将I(D1*LOGA)放入lht()函数时,会产生错误:

library(car)
lht(fashion.lm,c("I(D1*LOGA)"))

> lht(fashion.lm,c("I(D1*LOGA)"))
Error in constants(lhs, cnames_symb) : 
  The hypothesis "I(D1*LOGA)" is not well formed: contains bad coefficient/variable names.
In addition: Warning message:
In constants(lhs, cnames_symb) : NAs introduced by coercion

我想知道如何在模型中正确地进行测试?我知道一个(不是那么聪明的方法)是在运行回归之前创建一个值等于D1*LOGA的变量。但是有更方便的方式还是这样做?

1 个答案:

答案 0 :(得分:1)

功能lht()I(D1*LOGA)视为无效字符。它不在I()

内执行操作

这是一个使用间接系数规范的解决方案:

mod.davis <- lm(weight ~ repwt + I(log(repwt)), data=Davis)
lht(mod.davis, hypothesis.matrix = names(coef(mod.davis)[3]))