1

我正在将几个分类变量和连续变量混合在一起进行回归。为了简化我的问题,我想创建一个回归模型,该模型可以预测给定某个驾驶员在不同区域的行驶里程的行驶时间。也就是说,我的训练数据中有 5 个不同的驱动程序和 2 个区域。

我知道我可能需要建立 5*2=10 的回归模型来进行预测。我在 R 中使用的是

m <- lm(driving_time ~ factor(driver)+factor(zone)+miles)

但似乎 R 并没有消耗这个组合。我的问题是是否有任何聪明的方法可以在 R 中自动进行扩展。或者我必须一个一个地编写 10 个回归模型。谢谢你。

4

1 回答 1

1

请阅读?formula+在公式中意味着将该变量作为主要影响。您似乎正在寻找 和 之间的交互driverzone。您可以使用运算符创建交互项:。还有一个捷径可以通过*运营商获得主效应和交互效应。

关于您是否还想miles进行交互存在一些混淆,但我假设不在这里,因为您只提到 2 x 5 项。

foo <- transform(foo, driver = factor(driver), zone = factor(zone))
m <- lm(driving_time ~ driver * zone + miles, data = foo)

在这里,我假设您的数据在 data frame 中foo第一行通过在拟合之前将感兴趣的变量转换为因子,将数据处理与模型规范/拟合分开。

然后,该公式指定 的主效应和交互效应,driver以及zone的主效应miles

如果您想要所有三个之间的交互,那么:

m <- lm(driving_time ~ driver * zone * miles, data = foo)

或者

m <- lm(driving_time ~ (driver + zone + miles)^3, data = foo)

会为你做的。

于 2013-02-27T16:30:59.103 回答