Dummy Variable(虚拟变量)#

Dummy Variable(虚拟变量)经常出现在回归分析中, 而回归分析中往往涉及到以时间序列(time-series)为主的数据集,如股票数据、销售数据波动等。 这时候为了知道某时间段(例如,每个月、每日或者每个小时)对数据的影响,我们可以通过Dummy Coding(虚拟编码)的方法将时间序列转化为Dummy Variable(虚拟变量)用于线性回归, 这新的Dummy Variable(虚拟变量)将使用 1 和 0 表示

如下面所示,其中四个组中每个组中有四个观测值:


+-----------------------------------+
| group |  g1  |  g2  |  g3  |  g4  |
|-------|------+------+------+------|
|       |   1  |   2  |   5  |  10  |
|       |   3  |   3  |   6  |  10  |
|       |   2  |   4  |   4  |   9  |
|       |   2  |   3  |   5  |  11  |
+-----------------------------------+
| mean  |   2  |   3  |   5  |  10  |
+-----------------------------------+

对于此示例,总共有 4 组(g1-g4),因此我们需要创建 3 个Dummy Variable(虚拟变量)

以下是展示如何创建虚拟变量,我们将称之为d1,d2和d3

  • 对于 d1,第1组(group1) 中的每个观测值将编码为 1,对于所有其他组的编码则为 0

  • 然后,如果观测值在 第2组(group2) 中,则用 1 对 d2 进行编码,否则为0。

  • 对于 d3,第3组(group3) 中的观测值将编码为 1,其他组的观测值将编码为 0。

  • 对于 d4,没有 d4。不需要 d4,因为 d1-d3 具有确定哪个观测值位于哪个组中所需的所有信息。

下面是用于回归过程时的数据集:


 y  grp  d1   d2   d3
 1   1    1    0    0
 3   1    1    0    0
 2   1    1    0    0
 2   1    1    0    0
 2   2    0    1    0
 3   2    0    1    0
 4   2    0    1    0
 3   2    0    1    0
 5   3    0    0    1
 6   3    0    0    1
 4   3    0    0    1
 5   3    0    0    1
10   4    0    0    0
10   4    0    0    0
 9   4    0    0    0
11   4    0    0    0

请注意,

  • 第1组(group1) 中的每个观测值的虚拟代码值为 1(对于 d1),对于其他观测值,虚拟代码值为 0。

  • 第2组(group2) 中的 d2 为 1,否则为 0,

  • 第3组(group3) d3 等于 1,其他则为0。

  • 第4组(group4) 中的观测值在 d1、d2 和 d3 上全部为0。

  • 这三个虚拟变量包含确定哪些观测值包含在哪个组中所需的所有信息。如果您在 第1组(group1) 中,则 d1 等于 1,而 d2 和 d3 为零。

 F(3, 12) = 76.00  P = 0.0000  R-squared = 0.95

-------------------------------------------------
       y |      Coef.   Std. Err.      t    P>|t|
---------+---------------------------------------
      d1 |         -8   .5773503   -13.86   0.000
      d2 |         -7   .5773503   -12.12   0.000
      d3 |         -5   .5773503    -8.66   0.000
constant |         10   .4082483    24.49   0.000
-------------------------------------------------

参考#