[英]Running all Combinations of Dummy Variables Through a Regression Equation
我有一個問題,涉及從虛擬變量所有可能組合的回歸中提取輸出,同時保持連續預測變量不變。
問題在於我的模型包含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)
我的問題是:
如何為每種型號/地區組合生成預測價格表?
.*.
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)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.