Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:曹钰潇 (中山大学)
邮箱:caoyx25@mail2.sysu.edu.cn
编者按:本文主要摘译自下文,特此致谢!
Source:Quantile regressions I -Link-
目录
分位数回归 (Quantile regression,QR) 是回归分析的方法之一,最早由 Roger Koenker 和 Gilbert Bassett 于 1978 年提出。自其出现以来,已经发展出了大量细分模型和估计方法。
今天,我们将集中于三种分位数回归模型:条件分位数回归 (Koenker 和 Bassett,1978),无条件分位数回归 (Firpo Fortin 和 Lemieux,2009),以及分位数处理效应 (Firpo,2007),它们之间的区别和解释常常让人混淆。
那么,它们之间的区别是什么?什么导致了这些区别呢?
正如分位数回归模型主要测量因变量的分布那样,以上三种模型的区别也主要与我们对因变量的测量类型有关。接下来,我们将在线性回归模型的基础上,区分个体边际效应、条件边际效应以及无条件边际效应,以帮助我们更好地理解 QR 模型的含义。
假设你对分析自变量
现在让我们做一个强的假设,即这些变量之间的关系可以写成一个线性函数。具体来说,假设数据生成过程 (DGP) 为:
同时假设误差项
这个 “基本模型” 比 “入门级” 计量经济学书的单变量模型更先进:首先,模型系数是线性的,但与解释变量没有关系。其次,观察到的因子
接着从个体层面重写一下模型:
我们利用 Stata 生成数据:
. * 设定种子, 生成 250 个观察值
. clear
. set seed 102
. set obs 250
. * 假设 x 服从卡方分布, v 服从标准正态分布, 同时设定前 5 个观察值以便研究
. * 为作图方便, 利用缺失值将 x 限制在一个范围内
. gen x = rchi2(3)/2
. replace x=. if x>5
. replace x=.75 in 1
. replace x=2 in 2/3
. replace x=4 in 4
. replace x=4.5 in 5
. gen v = rnormal()*.5
. * 模拟数据
. gen y = 5 + 3*x -0.5*x^2+ v(1+x)
(10 missing values generated)
. * 设置id以便作图
. gen id = _n
. * 生成数据图形
. set scheme s1color
. twoway (scatter y x, color(navy%20)) (scatter y x in 1/5, color(navy%80) mlabel(id) ///
> mlabcolor(black)), ytitle("Outcome y") xtitle("Independent var X") legend(off)
. graph export qr_fig1.png
上图展现了模拟样本的分布。按照 DGP,
那么,我们该如何解释这个模型呢?
解释的第一种方法是对数据中的每一个人或观测点进行解释。然而,这是一种很少会看到的解释方式,因为它要求我们知道 DGP 的每一个信息,这不仅包括特征
通过将
这里有几点需要注意:
我们也可以根据 DGP 得到边际效应的准确值,如果
接下来,我们假设
* 数据清理
. gen dx=1
. gen xdx=x+dx
. gen xdxr=x+dx+0.1
. gen y_dy = 5 + 3*(xdx) -0.5*(xdx)^2+ v * (1+(xdx))
. * 画图
. twoway (scatter y x in 1/5, mlabel(id) mlabcolor(black) mlabpos(12) color(navy%80)) ///
> (scatter y_dy xdx in 1/5, mlabcolor(black) mlabpos(12) ms(d) color(maroon%80)) ///
> (pcarrow y x y_dy xdx in 1/5, color(black%40)) ///
> (rcap y y_dy xdxr in 1/5, color(black%40)) ///
> (scatter y x, color(navy%10)) (scatter y_dy xdx, color(maroon%10) ms(d)), ///
> ytitle("Outcome y") xtitle("Indep var X") xlabels(0/5) ///
> legend(order(1 "f(x,v)" 2 "f(x+dx,v)" 4 "{&Delta}y") col(3))
. graph export qr_fig2.png
如图所示,不同观测点的
我们也可以把边际效应的近似值与准确值进行比较:
. * 近似值
. gen mfx_aprox=3-x+v
. label var mfx_aprox "LL approximation"
. * 准确值
. gen mfx_exact=(y_dy-y)
. label var mfx_exact "Exact effect"
. list x v mfx_aprox mfx_exact in 1/5, sep(0)
+-----------------------------------------+
| x v mfx_aprox mfx_exact |
|-----------------------------------------|
1. | .75 .5645621 2.814562 2.314562 |
2. | 2 .1400093 1.140009 .6400089 |
3. | 2 -.1684819 .8315181 .3315182 |
4. | 4 .0549622 -.9450378 -1.445037 |
5. | 4.5 -.5240271 -2.024027 -2.524027 |
+-----------------------------------------+
对于观察点 1 ,增加 1 单位
第一种解释表明,同样的 “政策” 适用于具有相同观察特征
相比之下,第二种解释是更实际的,它不是试图量化
首先回顾一下 DGP:
如果我们把期望值的条件
使用零条件均值假设
此时,如果我们采取与第一种解释相同的方法,可以得到方程 (6) 相对于
接下来,我们运用 Stata 得到以
. * E(y|X)
. gen yy = 5 + 3*x -0.5*x^2
. * E(y'|(X+dx))
. gen yy_dy = 5 + 3(x+dx) -0.5(x+dx)^2
. * 画图
. twoway (scatter y x in 1/5, color(navy%25)) ///
> (scatter y_dy xdx in 1/5, ms(d) color(maroon%25)) ///
> (pcarrow y x y_dy xdx in 1/5, color(black%40)) ///
> (function 5 + 3*x -0.5*x^2, range(0 6) color(black%60)) ///
> (scatter y x, color(navy%10)) (scatter y_dy xdx, color(maroon%10) ms(d)) ///
> (scatter yy x if inlist(id,1,3,4,5), ///
> mlabel(id) mlabcol(black) mlabpos(12) color(navy%80)) ///
> (scatter yy_dy xdx if inlist(id,1,3,4,5), ///
> mlabel(id) mlabcol(black) mlabpos(6) color(maroon%80) ms(d) ), ///
> ytitle("Outcome y") xtitle("Indep var X") xlabels(0/5) ///
> legend(order(1 "f(x,v)" 2 "f(x+dx,v)" 4 "E(y|X)") col(3))
. graph export qr_fig3.png
如图所示,变化前后所有的预期均值都落在同一条 “线” 上——条件均值函数。不同于第一种解释适用于 “我”,解释回归系数的第二种方式适用于 “像我这样的人”。这意味着,这些影响并不适用于任何特定的观察值,而是发生在与 “我” 有相同特征的观察值中的平均情况,这就是条件效应的性质。
例如,观察值点 2 和点 3,它们都设定了特征
换句话说,第二种解释指的是在所有具有相同特征
因此再次强调:第二种解释需要从群体 (由其特征定义) 的角度思考,而不是从个人的角度思考。
第二种解释是我们最熟悉的一种,因为这也是大多数教科书所采用的解释方法。它也可能是我们最感兴趣的一种,因为它是我们在 “微观” 层面上最接近测量影响的方法。而第三种解释可以被认为是更多的 “宏观” 层面的解释。
从政策制定者的角度来看,第三种解释可能更实用,因为可以了解到由于一项改变了所有人
首先仍然考虑一下 DGP:
或者更好的是条件期望形式:
因为我们对均值的无条件影响感兴趣,所以应该用无条件均值的方式来写这个方程:
为了进一步简化,我们还要使用:
最后,无条件均值结果方程就可以写成:
从方程中可以发现:
为简化方程,我们需要一个影响
因此,方程可以简化为只与
通过此方程我们可以直接计算出平均变化,不过需要注意:
接下来我们利用 Stata 来获得结果。
. X 的均值
. /*
> 因为 2*X~Chi(3), E(X)=0.5*k =1.5, Var(X)=0.5*k=1.5
> 所以 E(y)=5 + 3*E(x) -0.5*E(x)^2-0.5*Var(X)
> E(Y) = 7.625 E(Y') = 8.625
> */
. twoway (scatter y x, color(navy%15)) (scatter y_dy xdx, ms(d) color(maroon%15)) ///
> (function 5 + 3*x -0.5*x^2, range(0 6) color(black%60)) ///
> (scatteri 7.625 1.5 "Before",mcolor(navy) msize(small) mlabcolor(black)) ///
> (scatteri 8.625 2.5 "After", mcolor(maroon) msize(small) mlabcolor(black)) ///
> (pcarrowi 7.625 1.5 8.625 2.5, color(black)), ///
> xline(1.5, lcolor(navy%50)) xline(2.5, lcolor(maroon%50)) ///
> yline(7.625, lcolor(navy%50)) yline(8.625, lcolor(maroon%50)) ///
> ylabel( 0(5)15 7.625 8.625, angle(0)) ///
> legend(order(1 "f(x,v)" 2 "f(x+dx,v)" 4 "E(y)" 5 "E(y')") col(4)) ///
> ytitle("Outcome y") xtitle("Indep var X")
. graph export qr_fig4.png
此图中,蓝点表示
如果每个观察值
在线性回归模型的框架内,本文介绍了一种不同的方式来思考个人、条件和无条件的边际效应,这些解释之间的差异取决于我们在进行解释时的对象是谁。
在数学上,边际效应可以被描述如下:
个体边际效应 (每个人):
条件边际效应 (某类人):
无条件边际效应 (所有人):
Note:产生如下推文列表的 Stata 命令为:
lianxh 边际, m
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh