linearHypothesis() 测试 I(X) 中包含的项的系数
linearHypothesis() to test coefficients of terms enclosed in I(X)
我正要在以下模型中使用 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
的变量。但是有没有更方便的方法或做呢?
函数 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]))
我正要在以下模型中使用 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
的变量。但是有没有更方便的方法或做呢?
函数 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]))