原文:David M. Drukker,Understanding the generalized method of moments (GMM): A simple example
译者:童天天 (中南财经政法大学)
Stata 连享会:知乎 | 简书 | 码云 python 爬虫与文本分析专题-现场班
连享会-Python爬虫与文本分析现场班-山西大学 2019.5.17-19[h2]一起学空间计量……[/h2]
空间计量专题-西安 2019.6.27-30文中包含的链接在微信中无法生效。请点击本文底部左下角的,转入本文。
[h1]1. GMM 的基本思想[/h1]广义矩估计 (Generalized Method of Moment, 简称 GMM) 是一种构造估计量的方法,类似于极大似然法 (MLE) 。MLE 通过假设随机变量服从特定的分布,进而将待估参数嵌入似然函数,通过极大化联合概率密度函数得到参数的估计值。GMM 则是以随机变量遵循特定矩的假设,而不是对整个分布的假设,这些假设被称为矩条件。这使得 GMM 比 MLE 更稳健,但会导致估计量的有效性有所降低 (估计出的标准误比较大)。
假设待估参数的个数为 k,矩条件的个数为 l。当 k=l 时,称为“恰好识别”,当 k|z| [95% Conf. Interval][/code]
- -------------+----------------------------------------------------------------
复制代码- /d | .9107644 .0548098 16.62 0.000 .8033392 1.01819
复制代码- ------------------------------------------------------------------------------
复制代码- Instruments for equation 1: _cons`
复制代码 然后,使用 GMM 通过样本矩条件(2)估计参数。
- gmm ((y-{d})^2-2*{d}),instruments( ) onestep //方程2
复制代码
- Iteration 0: GMM criterion Q(b) = 5.4361161
复制代码- Iteration 1: GMM criterion Q(b) = .02909692
复制代码- Iteration 2: GMM criterion Q(b) = .00004009
复制代码- Iteration 3: GMM criterion Q(b) = 5.714e-11
复制代码- Iteration 4: GMM criterion Q(b) = 1.172e-22
复制代码
- note: model is exactly identified
复制代码
- Initial weight matrix: Unadjusted Number of obs = 500
复制代码
- ------------------------------------------------------------------------------
复制代码- | Coef. Std. Err. z P>|z| [95% Conf. Interval]
复制代码- -------------+----------------------------------------------------------------
复制代码- /d | .7620814 .1156756 6.59 0.000 .5353613 .9888015
复制代码- ------------------------------------------------------------------------------
复制代码- Instruments for equation 1: _cons
复制代码 比较得到的两个估计值结果,可以发现方程(1)得到的结果比方程(2)更接近真实值,方程(2)的标准误差更大,表明方程 (1) 提供了一个更有效的估计量。
现在,我们使用 GMM 通过 uniform weights 来估计参数。
- gmm (y-{d}) ((y-{d})^2-2*{d}),instruments( ) winitial(I) onestep
复制代码 (y-{d}) 表示第一个样本矩条件, ((y-{d})^2-2*{d}) 表示第二个样本矩条件。选项 winitial(I) 和 onestep 表示基于初始权重矩阵计算估计量。
- Iteration 0: GMM criterion Q(b) = 6.265608
复制代码- Iteration 1: GMM criterion Q(b) = .05343812
复制代码- Iteration 2: GMM criterion Q(b) = .01852592
复制代码- Iteration 3: GMM criterion Q(b) = .0185221
复制代码- Iteration 4: GMM criterion Q(b) = .0185221
复制代码
- Initial weight matrix: user Number of obs = 500
复制代码
- ------------------------------------------------------------------------------
复制代码- | Coef. Std. Err. z P>|z| [95% Conf. Interval]
复制代码- -------------+----------------------------------------------------------------
复制代码- /d | .7864099 .1050692 7.48 0.000 .5804781 .9923418
复制代码- ------------------------------------------------------------------------------
复制代码- Instruments for equation 1: _cons
复制代码- Instruments for equation 2: _cons
复制代码 最后,我们使用 GMM 通过 two-step optimal weights 估计参数。在 first-step 得到的一致估计量的基础下重新赋予新的权重。
- gmm (y-{d}) ((y-{d})^2-2*{d}),instruments( ) winitial(I)
复制代码
- Iteration 0: GMM criterion Q(b) = 6.265608
复制代码- Iteration 1: GMM criterion Q(b) = .05343812
复制代码- Iteration 2: GMM criterion Q(b) = .01852592
复制代码- Iteration 3: GMM criterion Q(b) = .0185221
复制代码- Iteration 4: GMM criterion Q(b) = .0185221
复制代码
- Iteration 0: GMM criterion Q(b) = .02888076
复制代码- Iteration 1: GMM criterion Q(b) = .00547223
复制代码- Iteration 2: GMM criterion Q(b) = .00546176
复制代码- Iteration 3: GMM criterion Q(b) = .00546175
复制代码
- Initial weight matrix: user Number of obs = 500
复制代码- GMM weight matrix: Robust
复制代码
- ------------------------------------------------------------------------------
复制代码- | Coef. Std. Err. z P>|z| [95% Conf. Interval]
复制代码- -------------+----------------------------------------------------------------
复制代码- /d | .9566219 .0493218 19.40 0.000 .8599529 1.053291
复制代码- ------------------------------------------------------------------------------
复制代码- Instruments for equation 1: _cons
复制代码- Instruments for equation 2: _cons
复制代码 可以发现,上述得到的四个估计量都是一致的。
下面我们运行一个蒙特卡罗模拟来比较它们的相对效率。
- postfile sim d_a d_v d_ml d_gmm d_gmme using efcomp, replace
复制代码- quietly generate double y = rchi2(1)
复制代码
- quietly gmm ( (y-{d=`d_a'})^2 - 2*{d}) , instruments( ) ///
复制代码- winitial(unadjusted) onestep conv_maxiter(200)
复制代码
- quietly mlexp (ln(chi2den({d=`d_a'},y)))
复制代码
- quietly gmm ( y - {d=`d_a'}) ( (y-{d})^2 - 2*{d}) , instruments( ) ///
复制代码- winitial(I) onestep conv_maxiter(200)
复制代码- local d_gmm = _b[d:_cons]
复制代码
- quietly gmm ( y - {d=`d_a'}) ( (y-{d})^2 - 2*{d}) , instruments( ) ///
复制代码- winitial(unadjusted, independent) conv_maxiter(200)
复制代码- local d_gmme = _b[d:_cons]
复制代码
- post sim (`d_a') (`d_v') (`d_ml') (`d_gmm') (`d_gmme')
复制代码
- Variable | Obs Mean Std. Dev. Min Max
复制代码- -------------+---------------------------------------------------------
复制代码- d_a | 2,000 1.00017 .0625367 .7792076 1.22256
复制代码- d_v | 1,996 1.003621 .1732559 .5623049 2.281469
复制代码- d_ml | 2,000 1.002876 .0395273 .8701175 1.120148
复制代码- d_gmm | 2,000 .9984172 .1415176 .5947328 1.589704
复制代码- d_gmme | 2,000 1.006765 .0540633 .8224731 1.188156
复制代码 结果表明,最大似然估计量标准误差最小,是最有效的(d_ml,std.dev.0.0395),其次是 optimal GMM 估计量(d_gmme,std.dev.0.0541),其次是样本平均值(d_a,std.dev.0.0625),最后是 uniformly-weighted 的 GMM 估计量(d_gmm,std.dev.0.1415),最后是样本方差矩条件(d_v,std.dev.0.1732)。
基于样本方差矩条件的估计量在 2000 次模拟中有 4 次没有收敛;这就是为什么当其他估计量有 2000 次观测时,D_v 上只有 1996 次观测的原因。即使我们使用样本平均值作为非线性规划求解的起始值,也会出现这些收敛失败。
为了更好地了解这些估计量的分布,我们绘制了它们估计量的密度图。
- kdensity d_a, n(`N') generate(x_a den_a) nograph
复制代码- kdensity d_v, n(`N') generate(x_v den_v) nograph
复制代码- kdensity d_ml, n(`N') generate(x_ml den_ml) nograph
复制代码- kdensity d_gmm, n(`N') generate(x_gmm den_gmm) nograph
复制代码- kdensity d_gmme, n(`N') generate(x_gmme den_gmme) nograph
复制代码- twoway (line den_a x_a, lpattern(solid)) ///
复制代码- (line den_v x_v, lpattern(dash)) ///
复制代码- (line den_ml x_ml, lpattern(dot)) ///
复制代码- (line den_gmm x_gmm, lpattern(dash_dot)) ///
复制代码- (line den_gmme x_gmme, lpattern(shordash))
复制代码
密度图说明了不同估计量的效率排名。uniformly weighted GMM 估计比样本平均值效率低,因为它对样本平均值施加的权重与基于样本方差的低效率估计值施加的权重相同。
在有效和无效估计量上放置相等权重的 GMM 估计量比在无效估计量上放置较少权重的 GMM 估计量效率低得多。下面,我们将展示 optimal GMM 估计的权重矩阵。
- matlist e(W), border(rows)
复制代码
- -------------------------------------
复制代码- -------------+-----------+-----------
复制代码- -------------+-----------+-----------
复制代码- _cons | -.2610053 | .0707775
复制代码- -------------------------------------
复制代码 在每个过度识别的情况下,GMM 估计量使用两个样本矩条件的加权平均值来估计平均值。第一个样本矩条件是样本平均值,第二个矩条件是样本方差。蒙特卡罗模拟结果表明,样本方差比样本平均值提供的平均值估计量的效率要低得多。
[h2]延伸阅读[/h2]- Stata 手册 GMM,[PDF],写得非常清楚。
- Zsohar, P., 2010, Short introduction to the generalized method of moments, Hungarian statistical review, 16: 150-170. [PDF], 写的非常清楚,与我想要的思路也很一致
- Drukker, 2010, PPT, An introduction to GMM estimation using Stata,介绍了 GMM 的基本思想,以及 GMM 与 MLE 的差别
- 【Stata 连享会(公众号:StataChina)】由中山大学连玉君老师团队创办,旨在定期与大家分享 Stata 应用的各种经验和技巧。
- 公众号推文同步发布于 CSDN-Stata连享会 、简书-Stata连享会 和 知乎-连玉君Stata专栏。可以在上述网站中搜索关键词或后关注我们。
- 点击推文底部【阅读原文】可以查看推文中的链接并下载相关资料。
- Stata连享会 精彩推文1 || 精彩推文2
- 欢迎赐稿: 欢迎将您的文章或笔记投稿至
- Stata连享会(公众号: StataChina)
复制代码 ,我们会保留您的署名;录用稿件达以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
- 意见和资料: 欢迎您的宝贵意见,您也可以来信索取推文中提及的程序和数据。
- 招募英才: 欢迎加入我们的团队,一起学习 Stata。合作编辑或撰写稿件五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
- 联系邮件: StataChina@163.com
欢迎加入Stata连享会(公众号: StataChina)[h2][/url][/h2][url=http://mp.weixin.qq.com/s?__biz=MzAwMzk4ODUzOQ==&mid=2247485104&idx=1&sn=8c47b6a91d36cd81fc57f9b9cdd550b6&chksm=9b338be4ac4402f2e2b7358a827202258691bdd76d656d07eca27ce50905f1d47dd6042e0071&scene=21#wechat_redirect]
[url=http://mp.weixin.qq.com/s?__biz=MzAwMzk4ODUzOQ==&mid=2247485064&idx=1&sn=58e05c5ef029356ddfe71cb6defefd4b&chksm=9b338bdcac4402caebd7ff2e33af05ad0133351e277040f5d365a3da2fdbf2d6036fe75f9789&scene=21#wechat_redirect][/url]
|
|