我想在r包boxTidwell
中使用car
来改善线性回归的结果。但是,它始终不起作用。代码是这样的:
library(car)
boxTidwell(mpg~cyl+disp+hp+drat+wt+qsec, data=mtcars)
结果显示
“lm.fit中的错误(cbind(1,x1.p,x2),y,...):'x'中的NA / NaN / Inf”
有人能告诉我错误的原因吗?如何让boxTidwell
运行?
答案 0 :(得分:0)
您的通话中有两个问题。
boxTidwell()
的文档所示,您需要提供第二个参数 other.x单侧公式给出了不是的预测因子 转型候选人,包括(例如)因素。
另一位answer提到“选项other.x
表示不会转换的回归条款。这将是您的所有分类变量。”
因此运行此代码(基于boxTidwell()
中的示例)将起作用:
boxTidwell(mpg ~ cyl + disp + hp, ~as.factor(am) + poly(gear, 2),
data = mtcars)
由于某些原因,使用3个以上的预测变量(如原始示例中所示)不起作用:
boxTidwell(mpg ~ cyl + disp + hp + drat + wt + qsec,
~as.factor(am) + poly(gear, 2),
data = mtcars)
lm.fit中的错误(cbind(1,x1.p,x2),y,...):'x'中的NA / NaN / Inf
Apparently,boxTidwell
适用于最多6个预测变量,但当我尝试仅使用其中的4个(cyl + disp + hp + drat
)运行代码时,它也会返回错误。