【发布时间】:2012-05-20 16:50:38
【问题描述】:
我正在玩弄公式中的交互。我想知道是否可以对两个虚拟变量之一进行交互回归。这似乎适用于使用 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 使用的相同拟合例程”
【问题讨论】:
标签: r linear-regression