我正在玩公式中的交互。我想知道是否可以对两个虚拟变量之一进行交互回归。这似乎适用于使用 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 <- lm(mpg ~ wt + cyl + gear + cyl:I(gear == "4"), data=mtcars)
summary(regular_lm)
现在是 rms 示例
library(rms)
dd <- datadist(mtcars)
options(datadist = "dd")
regular_ols <- ols(mpg ~ wt + cyl + gear + cyl:gear, data=mtcars)
regular_ols
# Fails with:
# Error in if (!length(fname) || !any(fname == zname)) { :
# missing value where TRUE/FALSE needed
regular_ols <- ols(mpg ~ wt + cyl + gear + cyl:I(gear == "4"), data=mtcars)
这个实验可能不是最明智的统计数据,因为估计值似乎发生了显着变化,但我有点好奇为什么 ols() 会失败,因为它应该执行“lm 使用的相同拟合例程”