簡體   English   中英

通過回歸方程運行虛擬變量的所有組合

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM