我有一个问题,涉及从虚拟变量所有可能组合的回归中提取输出,同时保持连续预测变量不变。
问题是我的模型包含100多种交互组合,而手动计算所有这些组合将非常繁琐。有没有一种有效的方法来迭代计算输出?
我能想到的唯一方法是编写一个循环,该循环生成所有所需的组合,然后将其馈送到predict()
函数中。
某些上下文:
我试图通过汽车模型来确定汽车转售价格的区域差异。
我的模型如下所示:
lm(data, price ~ age + mileage + region_dummy_1 + ... + region_dummy_n + model_dummy_1 + ... + model_dummy_n + region_dummy_1 * model_dummy_1 + ... + region_dummy_1 * model_dummy_n)
我的问题是:
如何为每种型号/地区组合生成预测价格表?
答案 0 :(得分:0)
.*.
lm(price ~ .*.)
> df <- data.frame(y = rnorm(100,0,1),
+ x1 = rnorm(100,0,1),
+ x2 = rnorm(100,0,1),
+ x3 = rnorm(100,0,1))
>
> lm(y ~ .*., data = df)
Call:
lm(formula = y ~ . * ., data = df)
Coefficients:
(Intercept) x1 x2 x3 x1:x2 x1:x3
-0.02036 0.08147 0.02354 -0.03055 0.05752 -0.02399
x2:x3
0.24065
.
是“所有预测变量”的简写,并且*
包括双向交互项。
例如,考虑一个包含3列的数据框: Y(独立变量)和 2个预测变量(X1和X2)。语法lm(Y ~ X1*X2)
是lm(Y ~ X1 + X2 + X1:X2)
的简写,其中X1:X2
是交互项。
扩展这个简单的案例,假设我们有一个包含3个预测变量的数据框,分别是 X1,X2和X3 。 lm(Y ~ .*.)
等同于lm(Y ~ X1 + X2 + X3 + X1:X2 + X1:X3 + X2:X3)
。