楼主: zdlspace
8407 13

[程序分享] 交叉项:中心化与多重共线性 [推广有奖]

  • 1关注
  • 83粉丝

已卖:1033份资源

学科带头人

93%

还不是VIP/贵宾

-

威望
2
论坛币
5229 个
通用积分
8133.6012
学术水平
520 点
热心指数
536 点
信用等级
509 点
经验
52340 点
帖子
1681
精华
0
在线时间
2717 小时
注册时间
2013-7-21
最后登录
2025-11-22

楼主
zdlspace 学生认证  发表于 2021-2-4 02:15:58 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
关于交叉项问题,很多人认为在模型中加入交叉项时需要对变量进行中心化,认为这样能够解决多重共线性问题,实际上这种想法是错误的。首先我们从源头上解释有这种想法的原因,我们举一个例子看看。
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input double(y x1 x2)
  4. 4 2 3
  5. 5 3 4
  6. 4 4 7
  7. 7 5 6
  8. 8 3 5
  9. 9 7 7
  10. 8 8 3
  11. end
  12. gen x1_x2=x1*x2    //生成交叉项
  13. collin x1 x2 x1_x2
  14. (obs=7)

  15.   Collinearity Diagnostics

  16.                         SQRT                   R-
  17.   Variable      VIF     VIF    Tolerance    Squared
  18. ----------------------------------------------------
  19.         x1      8.37    2.89    0.1194      0.8806
  20.         x2      8.92    2.99    0.1121      0.8879
  21.      x1_x2     18.87    4.34    0.0530      0.9470
  22. ----------------------------------------------------
  23.   Mean VIF     12.05

  24.                            Cond
  25.         Eigenval          Index
  26. ---------------------------------
  27.     1     3.7550          1.0000
  28.     2     0.1435          5.1162
  29.     3     0.0979          6.1938
  30.     4     0.0037         31.8179
  31. ---------------------------------
  32. Condition Number        31.8179
  33. Eigenvalues & Cond Index computed from scaled raw sscp (w/ intercept)
  34. Det(correlation matrix)    0.0514
复制代码




这里的condition number 为31.8179,大于15而且大于30,于是很多人会认为多重共线性相当严重。实际上这是错误的想法,对共线性的检验,我们应该采用中心化后的变量进行collin检验,这样才能真正判断是否存在共线性,我们采用collin,corr命令对中心化后的变量进行多重共线性检验。

  1. (obs=7)

  2.   Collinearity Diagnostics

  3.                         SQRT                   R-
  4.   Variable      VIF     VIF    Tolerance    Squared
  5. ----------------------------------------------------
  6.         x1      8.37    2.89    0.1194      0.8806
  7.         x2      8.92    2.99    0.1121      0.8879
  8.      x1_x2     18.87    4.34    0.0530      0.9470
  9. ----------------------------------------------------
  10.   Mean VIF     12.05

  11.                            Cond
  12.         Eigenval          Index
  13. ---------------------------------
  14.     1     2.1439          1.0000
  15.     2     0.8271          1.6100
  16.     3     0.0290          8.5989
  17. ---------------------------------
  18. Condition Number         8.5989
  19. Eigenvalues & Cond Index computed from deviation sscp (no intercept)
  20. Det(correlation matrix)    0.0514
复制代码

此时我们会发现,condition number=8.5989<15,说明模型并不存在多重共线性。这个结果才是我们需要汇报在文章中的(如果你想检验共线性的,当然我基本上不做共线性检验)。这就是很多人误以为中心化能减少共线性的原因,因为他认为中心化和非中心化能得到不同的结果,而我认为共线性检验的正确做法是上述第二种,也就是说x1 x2的共线性检验应该是中心化后再做collin检验。
实际上你会发现,无论你在模型中使用原始变量还是中心化变量,对系数估计并没有影响,这一点在黄河泉老师的PPT里讲的比较详细,我就不班门弄斧了。简单给出结果,大家看一下:
  1. center x1 x2

  2. reg y x1 x2 x1_x2



  3.       Source |       SS           df       MS      Number of obs   =         7
  4. -------------+----------------------------------   F(3, 3)         =      1.06
  5.        Model |  13.2183951         3  4.40613169   Prob > F        =    0.4821
  6.     Residual |  12.4958906         3  4.16529688   R-squared       =    0.5140
  7. -------------+----------------------------------   Adj R-squared   =    0.0281
  8.        Total |  25.7142857         6  4.28571429   Root MSE        =    2.0409

  9. ------------------------------------------------------------------------------
  10.            y |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
  11. -------------+----------------------------------------------------------------
  12.           x1 |      0.257      1.083     0.24   0.828       -3.191       3.705
  13.           x2 |     -0.428      1.437    -0.30   0.785       -5.001       4.146
  14.        x1_x2 |      0.095      0.253     0.38   0.732       -0.711       0.902
  15.        _cons |      5.160      6.156     0.84   0.463      -14.431      24.751
  16. ------------------------------------------------------------------------------

  17. . reg y c_x1 c_x2 c.x1#c.x2


  18.       Source |       SS           df       MS      Number of obs   =         7
  19. -------------+----------------------------------   F(3, 3)         =      1.06
  20.        Model |  13.2183951         3  4.40613169   Prob > F        =    0.4821
  21.     Residual |  12.4958906         3  4.16529688   R-squared       =    0.5140
  22. -------------+----------------------------------   Adj R-squared   =    0.0281
  23.        Total |  25.7142857         6  4.28571429   Root MSE        =    2.0409

  24. ------------------------------------------------------------------------------
  25.            y |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
  26. -------------+----------------------------------------------------------------
  27.         c_x1 |      0.257      1.083     0.24   0.828       -3.191       3.705
  28.         c_x2 |     -0.428      1.437    -0.30   0.785       -5.001       4.146
  29.              |
  30.    c.x1#c.x2 |      0.095      0.253     0.38   0.732       -0.711       0.902
  31.              |
  32.        _cons |      4.197      5.987     0.70   0.534      -14.857      23.251
  33. ------------------------------------------------------------------------------



  34. . reg y c.c_x1##c.c_x2

  35.       Source |       SS           df       MS      Number of obs   =         7
  36. -------------+----------------------------------   F(3, 3)         =      1.06
  37.        Model |  13.2183951         3  4.40613169   Prob > F        =    0.4821
  38.     Residual |  12.4958906         3  4.16529688   R-squared       =    0.5140
  39. -------------+----------------------------------   Adj R-squared   =    0.0281
  40.        Total |  25.7142857         6  4.28571429   Root MSE        =    2.0409

  41. -------------------------------------------------------------------------------
  42.             y |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
  43. --------------+----------------------------------------------------------------
  44.          c_x1 |      0.733      0.456     1.61   0.207       -0.719       2.186
  45.          c_x2 |      0.008      0.525     0.02   0.989       -1.663       1.679
  46.               |
  47. c.c_x1#c.c_x2 |      0.095      0.253     0.38   0.732       -0.711       0.902
  48.               |
  49.         _cons |      6.374      0.785     8.12   0.004        3.876       8.872
  50. -------------------------------------------------------------------------------


  51. . reg y x1 x2 c.c_x1#c.c_x2

  52.       Source |       SS           df       MS      Number of obs   =         7
  53. -------------+----------------------------------   F(3, 3)         =      1.06
  54.        Model |  13.2183951         3  4.40613169   Prob > F        =    0.4821
  55.     Residual |  12.4958906         3  4.16529688   R-squared       =    0.5140
  56. -------------+----------------------------------   Adj R-squared   =    0.0281
  57.        Total |  25.7142857         6  4.28571429   Root MSE        =    2.0409

  58. -------------------------------------------------------------------------------
  59.             y |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
  60. --------------+----------------------------------------------------------------
  61.            x1 |      0.733      0.456     1.61   0.207       -0.719       2.186
  62.            x2 |      0.008      0.525     0.02   0.989       -1.663       1.679
  63.               |
  64. c.c_x1#c.c_x2 |      0.095      0.253     0.38   0.732       -0.711       0.902
  65.               |
  66.         _cons |      2.983      2.868     1.04   0.375       -6.143      12.109
  67. -------------------------------------------------------------------------------
复制代码


实际上上述结果是完全一致的,前两种可能要结合经济含义手动算一下就可以得到后两种的结果。
  1. reg y x1 x2 x1_x2
  2. sum x2
  3. dis _b[x1]+`r(mean)'*_b[x1_x2]
  4. .73314654
  5. sum x1
  6. dis _b[x2]+`r(mean)'*_b[x1_x2]
  7. .0078985
复制代码

所以说中心化并不会解决多重共线性问题,如果你看懂我一开始说道理,原因很简单,那就是我们检验共线性时应该直接对中心化的变量做检验,这样得到的结果就是原始变量的多重共线性检验结果。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:多重共线性 多重共线 交叉项 共线性 中心化

已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 鼓励积极发帖讨论

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

Raymond
Stata 17.0, MP(4)

沙发
Bono 发表于 2021-7-8 08:11:40
那为啥还要中心化?

藤椅
zdlspace 学生认证  发表于 2021-7-8 10:45:31
Bono 发表于 2021-7-8 08:11
那为啥还要中心化?
所以交叉项这里不必中心化

板凳
zdlspace 学生认证  发表于 2021-7-8 10:45:35
Bono 发表于 2021-7-8 08:11
那为啥还要中心化?
所以交叉项这里不必中心化

报纸
苦鬼2014 学生认证  发表于 2021-7-8 11:01:36
知行合一,感谢分享知识.

地板
Bono 发表于 2021-7-8 11:24:09
zdlspace 发表于 2021-7-8 10:45
所以交叉项这里不必中心化
如果要中心化的话,
c_x1#c_x2

c.c_x1#c.c_x2
有什么区别

7
zdlspace 学生认证  发表于 2021-7-8 11:33:57
Bono 发表于 2021-7-8 11:24
如果要中心化的话,
c_x1#c_x2
这是因子变量的写法,第二种是对的,第一种是错的,Stata识别不了

8
Bono 发表于 2021-7-8 16:57:31
zdlspace 发表于 2021-7-8 11:33
这是因子变量的写法,第二种是对的,第一种是错的,Stata识别不了
谢谢!
经常在不同的论文里面看到有对变量“中心化”和“去中心化”两种处理方式,请问“中心化”和“去中心化”有什么区别?为什么要这么处理?谢谢!

9
zdlspace 学生认证  发表于 2021-7-8 18:02:58
Bono 发表于 2021-7-8 16:57
谢谢!
经常在不同的论文里面看到有对变量“中心化”和“去中心化”两种处理方式,请问“中心化”和“去 ...
在我这个帖子中,是否中心化,效果一样。

10
Bono 发表于 2021-7-9 14:56:50
zdlspace 发表于 2021-7-8 18:02
在我这个帖子中,是否中心化,效果一样。
好的,谢谢!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-9 14:11