交乘项-交叉项的中心化问题

发布时间:2020-05-21 阅读 287

交乘项设定下的中心化问题

作者:连玉君 (中山大学)
Email: arlionn@163.com

Stata连享会   主页 || 视频 || 推文

NEW!连享会·推文专辑:
Stata资源 | 数据处理 | Stata绘图 | Stata程序
结果输出 | 回归分析 | 时间序列 | 面板数据 | 离散数据
交乘调节 | DID | RDD | 因果推断 | SFA-TFP-DEA
文本分析+爬虫 | 空间计量 | 学术论文 | 软件工具

连享会 - Stata 暑期班

线上直播 9 天:2020.7.28-8.7
主讲嘉宾:连玉君 (中山大学) | 江艇 (中国人民大学)
课程主页https://gitee.com/arlionn/PX | 微信版

连享会 - 效率分析专题

已上线:可随时购买学习+全套课件,课程主页 已经放置板书和 FAQs
主讲嘉宾:连玉君 | 鲁晓东 | 张宁
课程主页微信版

连享会-效率分析专题视频


目录


1. 简介

本文曾用名「加入交乘项后符号变了!」。

连享会·交乘项专题:主页版公众号版知乎版

在前面的几篇推文中,我们对交乘项的基本设定、图示、边际效应分析等内容进行了较为细致的分析。最近适逢很多学生写毕业论文,有关交乘项的问题又涌上心头。其中,最突出的问题便是:为何加入交乘项后主变量变得不显著了,甚至符号都变掉了?

简单的解释是:此一时,彼一时!

因为,加入交乘项前后,主变量的系数含义发生了实质性的变化,二者不具可比性。本文的目的在于澄清这种差异,并介绍一种让主变量系数在加入交乘项前后不会发生大幅变化 (具有可比性) 的方法。

2. 为何加入交乘项后主变量符号会变化?

对于模型

系数 β1=y/x1|x2=x¯2,也就是当 x2 取样本均值 x¯2 时,x1 变动一个单位对 y 的影响。

当我们加入交乘项 x1x2 后,x1 的系数含义发生了很大的变化。

先看 x1 对 y 的边际影响:y/x1=θ1+θ3x2,这是大家都了解的基本结论:包含交乘项时,x1 对 y 的边际影响不再是常数,而是随着 x2 的取值不同而发生变化。

  • 解释:此时,一阶项 x1 的系数为 θ1=y/x1|x2=0。也就是说,在模型 (2) 中,一阶项 x1 的系数表示当 x2=0 时,x1 变动一个单位对 y 的影响。显然,模型 (1) 中的 β1 与 模型 (2) 中的 θ1 估计值不同,甚至发生符号变化是很正常的事情。
  • 举个简单的例子。假设 y 表示收入;x1 表示丑陋程度x2 表示教育年限,取值为 0, 1, 2, ……20,均值为 12。基本想法是想检验「教育能否扭转我在职场上的天生劣势?(你知道我为什么读 PhD 吗?)」。假设估计模型 (2) 得到的参数为 θ1=1.6θ3=0.2,即 y/x1=1.6+0.2x2。根据上面的数值,可以大致推断模型 (1) 中 x1 的系数约为 β11.6+0.2x¯2=1.6+0.2×12=0.8。大家可以自行分析一下 θ1 和 β1 的经济含义。

3. 如何尽力保证模型间的系数可比性?

若想让加入交乘项前后的模型 (1) 和模型 (2) 中主变量 (x1) 的系数具有可比性,可以采用如下模型设定形式 (参见 Balli H O, Sørensen B E. Interaction effects in econometrics[J]. Empirical Economics, 2013, 45(1): 583-603. [PDF]):

其中,x¯1 和 x¯2 分别表示 x1 和 x2 的样本均值。

此时,主变量 (x1) 的系数 γ1 会非常接近基于模型 (1) 得到的 β1

大家可能更加关心交乘项的系数是否会发生变化,答案是:不会!

因为,模型 (3) 相对于模型 (2) 无非是增加了一些一阶项和常数项,而交乘项并未发生变化。我们也可以用更为正式的方式来得到这一结论。对于模型 (2) 而言,[y/x1]/x2=θ3,而在模型 (3) 中 [y/x1]/x2=γ3

连享会计量方法专题……

4. 部分离差还是全部离差?

在模型 (3) 中 (x1x¯1) 称为 x1 的离差形式,其实就是对 x1 的每个观察值都做去均值处理。

因此,文献中也会采用如下模型设定形式:

按照上面的分析逻辑不难看出,这个模型与 模型 (3) 没有任何本质区别,因为展开后新增的项目 γ1x¯1 和 γ2x¯2 都是常数,即

其中,δ0=(γ0γ1x¯1γ2x¯2)。简言之,相对于模型 (3),由模型 (4) 中得到的 x1x2 以及 x1x2 的系数都是完全相同的,唯一差别在于常数项。

需要补充说明的是,无论是采用模型 (3) 还是模型 (4),本意都是为了方便对系数的含义进行解释,并不是所谓的克服共线性之类的说辞。

5. 模拟分析

参考 Balli et al. (2013, [PDF]) 文中的做法进行模拟,发现在使用交乘项时,在模型中用 (x1x¯1)(x2x¯2) 替换 x1x2,一次项的系数更容易解释一些。

Note: 这里的 x 表示上文中的 x1,这里的 z 表示上文中的  x2

  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
*-Source: /*Balli, H. O., B. E. Sørensen, 2013,    Interaction effects in econometrics,    Empirical Economics, 45 (1): 583-603.*/
/* Table 1The true model is Y = 3X1 + 5X2 + 8X1X2 + e where X1 = 1 + e1 and X2 = 1 + e2, ei~N(0,1) for i = 1, 2 (X1 and X2 are not correlated) and e~N(0,100). A constant is included but not reported. The sample size is 500 and the number of simulations is 20,000. Averages of estimated t statistics are shown in parentheses*/clear set obs 500set seed 135local rhox = 0gen x = 1 + rnormal()gen z = 1 + rnormal() + `rhox'*xgen e = rnormal(0,10)
gen y = 10 + 3*x + 5*z + 8*x*z + e
pwcorr y x z
center x z, prefix(c_)*-模型 (0)reg y x est store m0*-模型 (1)reg y x z est store m1*-模型 (2)reg y x z c.x#c.zest store m2*-模型 (3)reg y x z c.c_x#c.c_z // Balli2013, Eq.(3)est store m3*-模型 (4)reg y c_x c_z c.c_x#c.c_zest store m4
*-结果对比 local m "m0 m1 m2 m3 m4" local m "m1 m2 m3 m4" esttab `m' `s', nogap replace order(x z c_x c_z) /// b(%6.3f) s(N r2_a) drop(`drop') /// star(* 0.1 ** 0.05 *** 0.01) /// addnotes("*** 1% ** 5% * 10%")
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line

----------------------------------------------------------------------------Model (1) (2) (3) (4) ----------------------------------------------------------------------------x 9.979*** 2.904*** 10.047*** (17.66) (4.48) (21.68) z 12.898*** 5.450*** 13.101*** (22.53) (8.14) (27.90) c_x 10.047*** (21.68) c_z 13.101*** (27.90) x#z 7.479*** (15.59) c_x#c_z 7.479*** 7.479*** (15.59) (15.59) _cons 3.024*** 9.792*** 2.485*** 25.275*** (3.12) (10.81) (3.12) (53.61) ----------------------------------------------------------------------------N 500.000 500.000 500.000 500.000 r2_a 0.629 0.751 0.751 0.751 ----------------------------------------------------------------------------t statistics in parentheses*** 1% ** 5% * 10%
. sum y x z Variable | Obs Mean Std. Dev. Min Max-------------+--------------------------------------------------------- y | 500 25.55029 21.10401 -33.97629 103.5704 x | 500 1.023 1.018471 -2.755543 3.808831 z | 500 .9550672 1.005523 -1.766887 3.902355

结果分析:

  • 在模型 (1)-(3) 中,交乘项的系数和 t 值都完全相同;
  • 对比模型 (3) 和模型 (4),除了常数项外,其他变量的系数和 t 值完全相同;
  • 模型 (2) 和模型 (3) 中的一阶项系数之间的关系。在两个模型中 x 的系数分别为 2.904 和 10.047。z 的样本均值为 zm = 0.955。因此,对于模型 (2) 而言,当 z 取其样本时,dy/dx (z=zm) = 2.904 + 7.479*zm = 2.904 + 7.479*0.955 = 10.046。这与第三列中由模型 (3) 估计出的 x 的系数 (10.047) 非常接近。期间的微小差别主要源于四舍五入。
  • 模型 (1) 和模型 (3) 中的一阶项系数之间的关系。 这是我们最关心的事情。由上面的分析可知,虽然模型 (1) 和 (2) 中 x 的系数存在很大差异,但 (1) 和 (3) 中 x 的系数应该比较接近。我们看到的结果也的确如此。

事实上,在很多论文中,通常会先估计 y = a + b*x, 而不是 y = a + b1*x + b2*z ,即本文的模型 (1)。如果 corr(x,z)=0,这两个模型中得到的 x 的系数不会有明显差异,但如果 x 和 z 彼此相关,则简化模型 y = a + b*x 就会存在遗漏变量的问题,其系数是有偏估计。感兴趣的读者,可以把上述模拟分析代码中的 local rhox = 0 修改为 local rhox = 0.5local rhox = -0.5 等数值,并在结果呈现部分也列示出 m0 的结果,看看系数估计值会发生哪些变化。

连享会 - 文本分析与爬虫 - 专题视频

主讲嘉宾:司继春 || 游万海

连享会-文本分析与爬虫-专题视频教程
连享会-文本分析与爬虫-专题视频教程

6. 结论和实操建议

  • 若只关心交乘项的系数,则使用模型 (1)-(3) 中的任何一种形式,都不影响系数的统计推断。
  • 若希望让加入交乘项前后一阶项的系数容易解释,也具有可比性,可以在论文中呈现模型 (1) 和模型 (3) 的结果。
  • 如果 x2 是一个虚拟变量,则无需做中心化处理,在论文中呈现模型 (1) 和模型 (2) 的结果即可,此时基于模型 (2) 进行分析反而更为直观。

参考资料

后续写作安排

  • 离差形式的系数含义图示,边际效应图示
  • 包含内生变量以及内生变量的交乘项的情形
  • 包含两个以上内生变量
  • 估计方法
    • IV
    • 2SLS
    • 控制函数法 (Control Function Approach, see Ebbes, Papies, van Heerde, 2016, pp.28 讲的非常清楚)
    • 潜工具变量法 (LIV, see Ebbes, Papies, van Heerde, 2016)

相关课程

连享会-直播课 上线了!
http://lianxh.duanshu.com

免费公开课:


课程一览

支持回看,所有课程可以随时购买观看。

专题 嘉宾 直播/回看视频
Stata暑期班 连玉君
江艇
线上直播 9 天
2020.7.28-8.7
效率分析-专题 连玉君
鲁晓东
张 宁
视频-TFP-SFA-DEA
已上线,3天
文本分析/爬虫 游万海
司继春
视频-文本分析与爬虫
已上线,4天
空间计量系列 范巧 空间全局模型, 空间权重矩阵
空间动态面板, 空间DID
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
直击面板数据模型 [免费公开课,2小时]

Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。


关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。直播间 有很多视频课程,可以随时观看。
  • 连享会-主页知乎专栏,300+ 推文,实证分析不再抓狂。
  • 公众号推文分类: 计量专题 | 分类推文 | 资源工具。推文分成 内生性 | 空间计量 | 时序面板 | 结果输出 | 交乘调节 五类,主流方法介绍一目了然:DID, RDD, IV, GMM, FE, Probit 等。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:
    • 课程, 直播, 视频, 客服, 模型设定, 研究设计, 暑期班
    • stata, plus,Profile, 手册, SJ, 外部命令, profile, mata, 绘图, 编程, 数据, 可视化
    • DID,RDD, PSM,IV,DID, DDD, 合成控制法,内生性, 事件研究, 交乘, 平方项, 缺失值, 离群值, 缩尾, R2, 乱码, 结果
    • Probit, Logit, tobit, MLE, GMM, DEA, Bootstrap, bs, MC, TFP, 面板, 直击面板数据, 动态面板, VAR, 生存分析, 分位数
    • 空间, 空间计量, 连老师, 直播, 爬虫, 文本, 正则, python
    • Markdown, Markdown幻灯片, marp, 工具, 软件, Sai2, gInk, Annotator, 手写批注, 盈余管理, 特斯拉, 甲壳虫, 论文重现, 易懂教程, 码云, 教程, 知乎

连享会主页  lianxh.cn
连享会主页 lianxh.cn

连享会小程序:扫一扫,看推文,看视频……


扫码加入连享会微信群,提问交流更方便

✏ 连享会学习群-常见问题解答汇总:
https://gitee.com/arlionn/WD