在rms包中,具有交互作用的线性回归失败
我在玩公式中的交互。我想知道是否有可能对两个虚拟变量中的一个进行交互回归。这似乎适用于使用lm()函数的常规线性回归,但对于rms包中的ols()函数,相同的公式失败。有人知道为什么吗 这是我的例子在rms包中,具有交互作用的线性回归失败,r,linear-regression,R,Linear Regression,我在玩公式中的交互。我想知道是否有可能对两个虚拟变量中的一个进行交互回归。这似乎适用于使用lm()函数的常规线性回归,但对于rms包中的ols()函数,相同的公式失败。有人知道为什么吗 这是我的例子 data(mtcars) mtcars$gear <- factor(mtcars$gear) regular_lm <- lm(mpg ~ wt + cyl + gear + cyl:gear, data=mtcars) summary(regular_lm) regular_lm
data(mtcars)
mtcars$gear <- factor(mtcars$gear)
regular_lm <- lm(mpg ~ wt + cyl + gear + cyl:gear, data=mtcars)
summary(regular_lm)
regular_lm <- lm(mpg ~ wt + cyl + gear + cyl:I(gear == "4"), data=mtcars)
summary(regular_lm)
数据(mtcars)
mtcars$gear我不太清楚,但它与公式的计算方式有关,而不是与模型转换后的拟合方式有关。使用traceback()
表明问题发生在设计(eval.parent(m))
;使用选项(error=recover)
可以让您看到
Browse[1]> fname
[1] "wt" "cyl" "gear"
Browse[1]> zname
[1] NA
换句话说,zname
是一些未正确设置的内部变量,因为Design
函数不能很好地定义气缸和(齿轮==4)动态假人之间的交互作用
不过,这是可行的:
mtcars$cylgr <- with(mtcars,interaction(cyl,gear == "4"))
regular_ols <- ols(mpg ~ wt + cyl + gear + cylgr, data=mtcars)
mtcars$cylgr谢谢。我曾考虑过创建交互变量,但我有点害怕它会与预测/对比度函数交互
mtcars$cylgr <- with(mtcars,interaction(cyl,gear == "4"))
regular_ols <- ols(mpg ~ wt + cyl + gear + cylgr, data=mtcars)