广义矩估计

矩估计就是用样本矩代替总体矩进行统计推断的方法。
举例:正态参数估计问题, x_i\sim N(\mu,\sigma^2),估计μ和σ。

Ex_i=\muE(x_i^2)=\mu^2+\sigma^2
而根据大数定理,在一定的条件下:
\bar{x_i}-\mu=o_p(1),\bar{x_i^2}=\mu^2+\sigma^2+o_p(1)
当样本量足够大的时候,样本矩与总体矩只差了一个无穷小量,用样本矩代替总体矩得到参数的估计,我们把op(1)去掉,同时把未知的总体参数写成其估计值,也就是带hat的形式,得到了:

\hat{\mu}=\bar{x_i}, \hat{\sigma^2}=\bar{x_i^2}-\bar{x_i}^2
如此,我们得到了两个总体矩的点估计。在这个简单的例子里面,你只要把上面的大数定理的结论带到上面两个式子里面,很容易的就可以证明出两个点估计是一致的估计量。

当然,值得注意的是,即便我使用的是矩条件,σ的估计也不是无偏的。一般而言,除了特殊情况,不管是MLE还是MM还是GMM,都不一定可以得到无偏的估计量。特别是在比较复杂的应用里面,一致就很不错了,无偏性的讨论真的繁琐。

在上面的例子中,我们只使用了两个矩条件。然而我们知道,正态分布的矩是有无穷多个可以用的,那么我们是不是可以使用更多的矩条件呢?

但是有个问题不好解决。在这个例子里面,我们有两个未知参数,如果只使用一阶矩,那么只有一个方程解两个未知数,显然是不可能的。像上面一样,我们用两个矩条件解两个未知数,就解出来了。然而,当我们用一到三阶矩,总共三个方程求解的时候,三个方程求解两个未知数,可能无解。

方程数多了,反而没有解了,为什么呢?其实很简单,用三个方程中的任意两个方程,都可以求出一组解,那么三个方程我们就可以求出三组解。所以应该如何把这些矩条件都用上呢?

到这里我们不妨引入一些记号。还是使用上面的例子,我们把上面的三个矩条件写到一个向量里面去,记:
g(x_i,\theta)=\left[ x_i-\mu, x_i^2-\mu^2-\sigma^2, x_i^3-\mu^3-3\mu\sigma^2\right]' , \theta=\{\mu, \sigma^2\}(其实这里三阶矩有问题)
我们可以得到一个3*1的列向量,并且:
Eg(x_i,\theta)=0
上面就是我们要用的矩条件。而根据上面的思路,用其样本矩代替总体矩:
\frac{1}{N}\sum_i g(x_i,\hat{\theta})=0
解这个方程应该就可以得到参数θ的估计。但是正如上面所说的,三个方程两个未知数,并不能确保这个方程有解,所以必须想一些其他办法。

一个比较自然的想法是,上面的矩条件等于0,虽然我不太可能保证三个方程同时等于0,但是仿照OLS,我们可以让他们的平方和最小,也就是:
\min_{\hat{\theta}} \left[ \frac{1}{N}\sum_i g(x_i,\hat{\theta}) \right] ' \left[ \frac{1}{N}\sum_i g(x_i,\hat{\theta}) \right]
这样我们就能保证三个矩条件的样本矩都足够贴近于0,当然不可能同时为0。这样不就综合使用了三个矩条件的信息么?

更一般的,由于上面的g函数是一个3*1的列向量,我们可以使用一个权重矩阵W来赋予每个矩条件以不同的权重:
\min_{\hat{\theta}} \left[ \frac{1}{N}\sum_i g(x_i,\hat{\theta}) \right] ' W \left[ \frac{1}{N}\sum_i g(x_i,\hat{\theta}) \right]
只要这个W是一个正定矩阵,那么仍然可以保证每个样本矩都足够贴近于0。

那么问题来了,既然对W的要求只要求正定矩阵,那么使用不同的权重矩阵就有可能得到不同的结果。问题是,有没有一个最优的权重矩阵呢?当然是有的。可以证明,最优的权重矩阵应该是:
\left[E g(x_i,\theta)g(x_i,\theta)' \right] ^{-1}
使用这个权重矩阵,就得到了最有效的估计。

比如上面的例子,用gretl分别估计两个矩条件、三个矩条件使用单位阵作为W、三个矩条件使用最优权重矩阵做估计:
nulldata 1000
set seed 1988
series x=randgen(N,1,2)
series x2=x^2
series x3=x^3
series e
series e2
series e3
scalar mu=0
scalar sigma2=1
matrix W2=I(2)
gmm
    series e=x-mu
    series e2=x2-sigma2-mu^2
    orthog e; const
    orthog e2; const
    weights W2
    params mu sigma2
end gmm
matrix W3=I(3)
scalar mu=0
scalar sigma2=1
gmm
    series e=x-mu
    series e2=x2-sigma2-mu^2
    series e3=x3-3*mu*sigma2-mu^3
    orthog e; const
    orthog e2; const
    orthog e3; const
    weights W3
    params mu sigma2
end gmm
scalar mu=0
scalar sigma2=1
gmm
    series e=x-mu
    series e2=x2-sigma2-mu^2
    series e3=x3-3*mu*sigma2-mu^3
    orthog e; const
    orthog e2; const
    orthog e3; const
    weights W3
    params mu sigma2
end gmm --iterate

首先是使用两个矩条件的结果:

<img src="https://pic3.zhimg.com/50/3bdf0748c172560b313c2c3da71bb4c7_hd.jpg" data-rawwidth="477" data-rawheight="148" class="origin_image zh-lightbox-thumb" width="477" data-original="https://pic3.zhimg.com/3bdf0748c172560b313c2c3da71bb4c7_r.jpg">
两个未知参数,两个矩条件,不存在过度识别的问题,存在唯一解的,所以不管是否使用最优权重矩阵,得到的结果都是一样的。

三个矩条件,这个时候使用什么样的权重矩阵就不一样了。先使用单位阵作为权重矩阵:

<img src="https://pic3.zhimg.com/50/63959e97aa2d91e43672c8521a6385b5_hd.jpg" data-rawwidth="465" data-rawheight="148" class="origin_image zh-lightbox-thumb" width="465" data-original="https://pic3.zhimg.com/63959e97aa2d91e43672c8521a6385b5_r.jpg">
这里需要注意的是,即使使用了更多的矩条件,估计量的standard error还是变大了。感兴趣的可以做一个蒙特卡洛模拟试试,一定是会变大的。为什么呢?因为没有使用最优的权重矩阵,所以使用单位阵作为权重矩阵得到的结果不是最有效的。那么如果使用最优的权重矩阵呢?结果:
<img src="https://pic4.zhimg.com/50/06743b94dc8f22efb8582ecacec19684_hd.jpg" data-rawwidth="474" data-rawheight="163" class="origin_image zh-lightbox-thumb" width="474" data-original="https://pic4.zhimg.com/06743b94dc8f22efb8582ecacec19684_r.jpg">
嘿!standard error是变小了,但是跟使用两个矩条件的好像没有什么本质变化

因为这里举的这个例子太特殊了,我们使用的前两个矩条件,刚好是一个充分统计量,也就是说,使用额外的矩条件不会带来附加信息的。但是如果是其他情况,一般来说更多的矩条件是可以带来更多的信息的,比如工具变量的回归。

另外如果细心观察,最后一张表格多了一个J-test。这又是啥呢?

这个东西就比较有意思了。知道现在,我们都是假设使用的矩条件成立,那么这些矩条件真的是成立的么?未必啊。比如,如果x本来就不服从正态分布,那么使用上面的估计显然是错的。那么是不是可以检验矩条件是否成立呢?

一般来说,如果你有K个未知的参数,以及K个矩条件,那么矩条件是不能检验的。但是如果你有更多的矩条件,那么就有了检验的可能。这个检验的直觉很简单,比如上面的例子里面,我们有3个矩条件。我可不可以先使用前两个矩条件估计这两个参数,然后把这两个参数带入到第三个矩条件里面,看看是不是充分接近于0,如果充分接近,那么看来这三个矩条件彼此印证了。

实际使用的时候没有那么麻烦。可以证明,当使用了最优的权重矩阵的时候,GMM的目标函数渐进服从卡方分布,因而只要检验这个卡方分布就可以了,也就是上面的J-test。p-value为0.6884,看来这三个矩条件没有矛盾的地方。

但是一定要注意,即使通过了这个检验,也不代表矩条件一定是成立的,因为有可能三个矩条件都是错的,只不过错的方向是一致的。比如这个例子里面,有可能x的分布前三阶矩跟正态分布是一样的,但第四阶就不一样了。因而通过这个检验不代表x一定服从正态分布。当然,如果通不过,可以比较自信的说,x不服从正态分布。

比如,我们把上面的数据生成过程改为gamma分布,得到的结果:

<img src="https://pic4.zhimg.com/50/0d4b24d1b6e01a241c7c581aaf93455c_hd.jpg" data-rawwidth="471" data-rawheight="157" class="origin_image zh-lightbox-thumb" width="471" data-original="https://pic4.zhimg.com/0d4b24d1b6e01a241c7c581aaf93455c_r.jpg">
p-value为0.0000,拒绝了原假设,也就是说,三个矩条件不同时成立,数据很有可能不是从正态分布中生成的。


我们现在线性模型y_{i} =x'_{i}\beta +\varepsilon _{i}的框架下讨论,这样比较清晰。
假设y是因变量,x是原自变量,z是工具自变量(可以和原自变量一致,也可以不一致)
我们定义g_{i}=z_{i}*\varepsilon _{i}
所谓矩条件,就是我们假设模型的真实参数和总体,满足这样一个条件:
E(g(z,\beta ))=0
也就是E(z_{i}*(y_{i}-x'_{i}\beta ))=0
然后在这个条件下,我们用某种方法去估计参数\beta
看上去是不是很混乱?OK让我们做一个小小的变换~~~
假设向量xi=zi,也就是说工具变量和自变量完全一样。这时候矩条件就变成了:
E(x_{i}*(y_{i}-x'_{i}\beta ))=0
回想起来这是啥了没?就是简单的线性投影条件呀!它的sample analogue是啥?就是OLS!
好,OLS首先被装到了GMM这个框里。
但是当zi不完全和xi一样的时候呢?那我们就得分类讨论了。

1.如果zi里的变量数量小于xi,那就是under-identified(识别不足),这个时候我们没办法用GMM估计。(想想简单IV里最基本的估计条件就是IV数量比内生变量数量多)

2.如果zi里的变量数量等于xi里的,那就是just-identified(恰好识别),这个时候我们的sample analogue和用样本估计参数的方法都很直接而且简单,就是用简单算术平均。
定义g_{n}=\frac{1}{n} *\sum_{i=1}^{n}{z_{i}*(y_{i}-x'_{i}\beta) }
估计方法就是直接让g_{n}=0,解出对应的\beta 就好了,没啥花样儿。
所以我们很清楚可以看到,恰好识别的时候,GMM Estimator就是:
\hat{\beta } _{GMM}=(\sum_{i=1}^{n}{z_{i}x'_{i}})^{-1}*(\sum_{i=1}^{n}{z_{i}y_{i}} )
是不是很熟悉?YES!就是简单的IV Estimator~
当zi=xi时,就直接变成OLS Estimator了。

3.如果zi里的变量数量大于xi里的,那就是over-identified(过度识别),这就到了GMM不一样的地方了。这时候我们不能直接简单用g_{n}=0的条件去求解\beta了,因为这时候我们的矩条件比未知数要多,也就是说方程组里的方程数量比未知数多,一般情况下找不到解。咋办?那我们就找一个解得出来的方程组,并且要让g_{n}尽量“靠近”零。因为g_{n}其实是空间里的一个点,所以我们这里用一个小技巧,把这种靠近,定义为最小化g_{n}这个点,和原点的空间距离。
我们定义J(\hat{\beta},\hat{W})=n* g'_{n}(\hat{\beta})\hat{W}g_{n}(\hat{\beta})
这个J就是我们要的距离。W是一个对称且正定的矩阵,表示我们对这个空间距离的某种度量。当W=I的时候,我们定义的这个距离就是简单的欧式空间距离。
前面乘以一个n没啥别的意思,是为了某些统计量比较好算......
所以我们估计参数\beta的方法就是:
\hat{\beta}_{GMM}=argmin_{\hat{\beta}}J(\hat{\beta},\hat{W})
取一个让距离最小的\hat{\beta},就得到了我们要的GMM估计量。简单求个导,解一下一阶条件我们就有了显性表达式:
\hat{\beta}_{GMM}=(S'_{zx}\hat{W}S_{zx})^{-1}S'_{zx}\hat{W}S_{zy}
其中S_{zx}=\sum_{i-=1}^{n}{z_{i}x'_{i}}S_{zy}=\sum_{i-=1}^{n}{z_{i}y_{i}}
这就是单方程GMM的一般解。
当我们选取不同的W矩阵,也就是选择不同的空间距离度量时,GMM会变成各种我们熟悉的estimator,比如2SLS等等。
以上是关于线性模型的。

更一般的GMM,其实差别不是很大,无非是去掉了矩条件是线性的这个假设。这时候我们有:
E(g(x,\beta ))=0
x是自变量, \beta是真实参数
同样我们也是最小化一个空间距离:
J(\hat{\beta},\hat{W})=n* g'_{n}(\hat{\beta})\hat{W}g_{n}(\hat{\beta})
\hat{\beta}_{GMM}=argmin_{\hat{\beta}}J(\hat{\beta},\hat{W})
只不过在具体求解的时候,如果g是一个很复杂的非线性函数的话,那就不一定有解析解,需要用数值逼近,然后渐进方差要用delta method计算。


再比如工具变量的2SLS,可以发现矩条件不过就是:
E[(y_i-x_i'\beta)z_i]=0
套一下上面的公式,最优权重矩阵(的逆)为:

E[(y_i-x_i'\beta_0)z_i z_i'(y_i-x_i'\beta_0)']=E[e_i^2z_i z_i']=\sigma^2Ez_iz_i'
带入到目标函数中,就得到了2SLS。

甚至,一些其他的估计量,比如MLE、M-estimator等,在一定的条件下也可以转化为GMM,因为这些估计量的一阶条件可以看成是矩条件。所以GMM也就变成了一个统一的框架。

为什么GMM这么受欢迎呢?因为GMM把复杂的统计过程抽象化成为一个(看似)简单的过程:找矩条件。只要你能找到矩条件,你就能估计。GMM把估计的繁琐细节全都抽象了,面对一个模型,你所需要做的所有事情就是找到矩条件,证明这个模型是可以识别的,然后什么也不用管,一股脑儿塞进去,结果就出来了。

所以呢如果你去看一些稍微复杂的模型,基本都可以归结为矩条件。

至于题主提到的资产定价,刚好Gretl提供了一个可以使用的数据集和code。资产定价最简单的模型应该就是C-CAPM了,其重要结论就可以直接归结为这么一个矩条件:

<img src="https://pic3.zhimg.com/50/abe33d569eb12ea1e069e51ca893e1ff_hd.jpg" data-rawwidth="256" data-rawheight="60" class="content_image" width="256">
其中Ft为第t期所知道的所有信息,包括Ct、rt等等。所以根据这个式子,如果令
<img src="https://pic3.zhimg.com/50/d1787777dde54ca25e0d70224cd365b3_hd.jpg" data-rawwidth="223" data-rawheight="57" class="content_image" width="223">
那么e_t跟Ct、rt等等都是正交的,自然可以作为矩条件来用。
本模拟最优权重阵的结果就是这样:

<img src="https://pic1.zhimg.com/50/97024c1dfdbf64d0a9e462adf934337d_hd.jpg" data-rawwidth="226" data-rawheight="40" class="content_image" width="226"> 那么问题来了,要估计最优权重阵就要估计参数,要估计参数就要知道最优权重阵(循环一二起,要估计最优权重阵就要估计参数,要估计参数就要知道最优权重阵…)。

第一种叫one-step GMM,玩不出来我就不玩了呗,没有胡屠夫还不吃带毛猪了,我找不到最优权重阵,我找个过的去权重阵差不多意思意思,反正满足内生性条件之后,大样本性质总归是好的,至于小样本性质,那再说吧。

一般Wn =In(单位阵)或者 =inv(Z’Z)(工具变量阵乘积的逆)

第二种叫做two-step GMM,现在不是有了参数的一个估计了嘛,那往前再走一步咯,我根据参数得到最优权重阵的一个估计,

<img src="https://pic1.zhimg.com/50/97024c1dfdbf64d0a9e462adf934337d_hd.jpg" data-rawwidth="226" data-rawheight="40" class="content_image" width="226"> 然后再来一次GMM估计嘛。

第一二种方法有一个小小的缺陷,就是初始权重阵的选取,会影响到参数的数值(numerical value)。

第三种叫做Iterated Efficient(迭代有效)GMM,怎么讲,2步迭代不够那3步迭代,3步不够迭代4步,总有一步,会得到最优的估计的。那怎么判定是不是差不多最优了呢,一般用这次迭代得到的新参数和上次的参数做差,差充分小的时候,就表示逼近已经很成功了。

第四种方法理解起来复杂,叫做Continuous-updating (连续更新)GMM。GMM估计是在最小化方程

<img src="https://pic1.zhimg.com/50/62a1e4fa19ade8f313296496d74d3e34_hd.jpg" data-rawwidth="287" data-rawheight="53" class="content_image" width="287">

然后最优权重阵W=


<img src="https://pic1.zhimg.com/50/97024c1dfdbf64d0a9e462adf934337d_hd.jpg" data-rawwidth="226" data-rawheight="40" class="content_image" width="226">

我们直接代进去嘛,这样这个估计方程里面不就没有W只有参数了,然后估计参数就好了。

第三第四种方法的解,不依赖初始权重阵。理论上说,第三第四种方法的估计应该是渐进等价的,当然小样本性质可能有所差异。

但要注意,如果矩条件不是线性的,那么啥好说的大家都是非线性参数估计;如果矩条件是个线性的,前三种就是线性估计第四种方法还是非线性估计,相比来说,计算更加繁重,但其有限样本性质要稍好些,另外如果存在弱工具变量的问题,其也相对稳健(robust)。

Gretl自带了Hall的数据集,在user guide第206页开始给出了说明和代码,以及结果,感兴趣的可以去看看,很简单的一个程序。
摘自知乎:https://www.zhihu.com/question/41312883

  • 14
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值