如何在回归中编码二进制(0/1)预测变量?数值与因子

机器算法验证 回归 多重回归
2022-03-31 11:45:13

我正在开发一个回归模型,我的大部分变量都是 0/1 变量。

应该将这些变量视为模型中的因子变量,还是可以将它们保留为数字 0,1?

2个回答

在线性回归中,如果它们是自变量并且 1 和 0 是唯一可能的结果,那么任何一种方式都可以。

建模为二进制,但将其指定为连续的(数据和语法属于 Stata 12):

. sysuse auto
. reg mpg foreign

      Source |       SS       df       MS              Number of obs =      74
-------------+------------------------------           F(  1,    72) =   13.18
       Model |  378.153515     1  378.153515           Prob > F      =  0.0005
    Residual |  2065.30594    72  28.6848048           R-squared     =  0.1548
-------------+------------------------------           Adj R-squared =  0.1430
       Total |  2443.45946    73  33.4720474           Root MSE      =  5.3558

------------------------------------------------------------------------------
         mpg |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
     foreign |   4.945804   1.362162     3.63   0.001     2.230384    7.661225
       _cons |   19.82692   .7427186    26.70   0.000     18.34634    21.30751
------------------------------------------------------------------------------

建模为因子:

. reg mpg i.foreign

      Source |       SS       df       MS              Number of obs =      74
-------------+------------------------------           F(  1,    72) =   13.18
       Model |  378.153515     1  378.153515           Prob > F      =  0.0005
    Residual |  2065.30594    72  28.6848048           R-squared     =  0.1548
-------------+------------------------------           Adj R-squared =  0.1430
       Total |  2443.45946    73  33.4720474           Root MSE      =  5.3558

------------------------------------------------------------------------------
         mpg |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
   1.foreign |   4.945804   1.362162     3.63   0.001     2.230384    7.661225
       _cons |   19.82692   .7427186    26.70   0.000     18.34634    21.30751
------------------------------------------------------------------------------

值得注意的是,如果建模为连续变量(尽管记住它实际上是二进制的),参考组总是编码为 0。然而,在某些统计软件中,建模为因子的二进制变量可能会将其参考组交换为任何= 1. ANOVA 和 F 统计量不会受到影响,但回归系数可能会发生变化(由于重新分配了参考组。)仔细检查输出。

在 R 中,它们是因子还是数值变量都没有关系。但请务必通过指示family=binomial例如一般线性模型或混合效应模型来表明您正在进行逻辑回归。

如果不指出这一点,假设的分布方差将有所不同。在二项式族中,方差(离散参数)取为 1,与高斯族不同。