问题

如何用简单的例子解释什么是 Generalized Method of Moments (GMM)?

回答
说到数据分析里的那些高级方法,很多人听到“矩”这个词就觉得云里雾里。但其实,广义矩估计法(Generalized Method of Moments,简称GMM)没那么神秘,它就像我们在生活中遇到的一个常见问题,只不过用数学的方式给它套上了一个更严谨的框架。

咱们先抛开那些复杂的公式,用一个大家都能理解的例子来聊聊。

想象一下,你是个喜欢侦探小说的人,现在你手里有本推理小说,里面讲的是一个发生在很久以前的盗窃案。

这本小说里,作者给了一些线索,但这些线索都不够直接指向唯一的凶手。比如说:

线索一:案发现场留下的脚印大小,大概是某个特定范围内的。
线索二:目击者说,凶手当时穿了一件深色的衣服,而且身材不高不矮。
线索三:案发前后,有几个人在附近出现过,他们的活动轨迹和时间点有点可疑。

你的目标是什么呢?目标是找出那个最有可能的凶手。

这里的“凶手”,在统计学里,就可以类比成我们想要估计的未知参数。 比如,凶手的身高、他的体型、他当时穿的衣服的颜色等等。这些我们不知道,但我们想通过现有信息来“猜”出来。

而那些线索,就是我们手里的“数据”。 脚印大小、目击者描述、活动轨迹,这些都是我们观察到的现象。

现在的问题是,我们怎么从这些不那么“完美”的线索里,找出“最合理”的凶手呢?

这里就轮到GMM出场了。GMM的核心思想是:“如果我的猜测是对的,那么我观察到的这些线索,应该跟我猜测的凶手应该具有的特征之间,存在某种特定的‘关系’。”

我们把这个“关系”叫做“矩条件”或者“正交条件”。用咱们的例子来说,就是:

如果我猜这个凶手身高是175cm,那么我通过脚印数据推算出来的身高范围,应该跟175cm“比较接近”。
如果我猜凶手穿的是黑色衣服,那么目击者描述的“深色衣服”这个信息,应该跟我猜测的颜色“比较符合”。
如果我猜的是某个嫌疑人,那么他的活动轨迹应该跟案发的时间、地点“比较吻合”。

“矩”这个词,其实就是用来衡量这种“关系”的,它是一种对数据(或数据与模型)的一种统计学描述。 最简单的矩就是数据的平均值(一阶矩),它描述了数据的中心趋势。更复杂的矩可以描述数据的离散程度(方差)、偏度和峰度等等。

GMM就是要我们找到这样一些“矩条件”,这些条件应该满足一个很重要的特性:当我们的“猜测”(即未知参数)是真实值的时候,这些“矩条件”的平均值应该等于零。

打个比方,如果某个凶手的真实身高是175cm,那么我们用脚印数据估计出来的一个关于身高的“误差项”(比如,脚印估计身高 真实身高),这些误差项的平均值,应该趋近于零。如果它是正的,说明我们的估计值普遍偏高;如果是负的,普遍偏低。

那么问题来了,我们怎么找到这些“矩条件”呢?

在GMM里,我们通常会利用一些“工具变量”。这些工具变量有这么几个特点:

1. 跟我们想要估计的未知参数(凶手特征)相关。 比如,如果我们要估计凶手的身高,那么案发时附近出现的其他人的平均身高,可能就跟凶手身高有关联。
2. 不直接受到我们正在研究的那个“事件”(盗窃案本身)的直接影响。 比如,案发时下雨了,下雨这个现象可能跟凶手身高无关,但如果它影响了案发现场留下的脚印的清晰程度,那它就跟我们的数据产生了间接联系。我们想要找的工具变量,是要能够间接帮助我们估计参数,但本身又不直接“污染”数据的。
3. 容易观测和计算。 就像我们要从案发现场的蛛丝马迹里,找出一些可行的线索一样。

有了这些工具变量,我们就可以构造出我们的“矩条件”。举个简单的例子:

假设我们要估计凶手的身高($eta$)。我们手里有凶手的脚印数据($X$,可以看作是影响身高的因素)和案发地点的一些其他人的平均身高($Z$,作为工具变量)。

我们知道,如果凶手身高是 $eta$,那么(凶手身高 $eta$) 应该是一个“合理的”误差。

那么,我们可以构造一个“矩条件”:
$E[(X cdot eta) Y] = 0$

其中,$Y$是我们实际测量到的跟凶手身高有关的某个量(比如说,从脚印数据反推的某个身高的“代理变量”)。

但是,这个公式里面直接有 $Y$,我们想估计 $eta$,而 $Y$ 本身可能也跟我们无法观测的因素有关,也就是可能有内生性的问题。

这时候,工具变量 $Z$ 就派上用场了。我们不能直接用 $E[(X cdot eta) Y] = 0$,因为 $Y$ 有问题。

我们可以利用工具变量 $Z$ 的性质,构造一个新的矩条件,这个条件保证了:
$E[Z cdot (Y X cdot eta)] = 0$

为什么这样可以?因为我们假设了工具变量 $Z$ 跟我们模型中的“误差项”($Y X cdot eta$)是不相关的,所以它们的乘积的期望值应该是零。

GMM 的核心就是利用这些“矩条件”来估计未知参数。

我们手里有很多样本数据,每一个样本数据都会给我们提供一个“样本矩”(就是把期望值换成样本平均值)。比如,我们有一百个案发的地点,每个地点都能得到脚印数据、目标区域的其他人身高数据等等。

我们现在有一组“样本矩条件”:
$frac{1}{N} sum_{i=1}^{N} [Z_i cdot (Y_i X_i cdot eta)] = 0$

这里,$N$ 是我们拥有的样本数量。

但是,我们有一个参数 $eta$ 要估计,但是我们有多个这样的矩条件(因为我们有多个工具变量,或者我们对一个工具变量可以构造多个不同形式的矩条件)。这就是“广义”的由来——我们不仅仅满足一个条件,而是要同时满足多个条件。

问题来了:我们怎么找到一个 $eta$,能让这些样本矩条件“最接近于零”呢?

因为我们是估计值,不可能让所有样本矩都恰好等于零。所以GMM的目标是找到一个 $eta$,使得这些样本矩的“平方和”被最小化。

你可以想象成,你给每个样本矩一个“分数”(比如说平方值),然后你找到一个 $eta$,能让所有样本矩的“分数”加起来是最小的。那个能让总分数最小的 $eta$,就是我们用GMM估计出来的最“合理”的凶手身高(或者其他特征)。

这个“最小化平方和”的过程,就需要一个“权重矩阵”来决定给哪些样本矩“更高的权重”。这个权重矩阵的选择也很讲究,通常是根据样本矩的协方差矩阵来确定的,这样可以得到最有效率的估计。

简单总结一下GMM的逻辑:

1. 明确目标: 我们想估计什么?(比如凶手的身高)
2. 寻找线索: 我们有什么数据?(比如脚印、目击者描述)
3. 建立理论联系: 如果我们的猜测是对的,那么数据应该满足什么“矩条件”?(比如,根据凶手身高推算的脚印特征,应该跟实际脚印数据“不冲突”)
4. 引入工具: 寻找能够帮助我们满足这些“矩条件”,并且与我们研究的目标(凶手身高)相关,但又不直接被“事件”污染的“工具变量”。
5. 估计求解: 找到一个未知参数(凶手身高),使得根据我们数据计算出来的“矩条件”的平方和最小。

为什么说GMM很“广义”和强大?

灵活性: 只要你能找到一些合理的“矩条件”,就可以用GMM来估计参数,不局限于特定的模型形式(比如必须是正态分布等)。这就好像,即使线索不全,只要你能找到一些可以用来佐证的“逻辑关系”,你就能推理下去。
处理内生性: GMM最核心的优势之一就是处理模型中的“内生性”问题。在很多经济学或社会科学的研究中,我们想要估计的变量可能受到其他未观测到的因素影响,导致模型估计失真。GMM通过工具变量,可以在一定程度上解决这个问题。就像在推理案子时,我们不能直接信任所有目击者的话,但可以找到一些旁证(工具变量),来帮助我们判断哪个目击者的话更可信。
效率: 当我们选择合适的权重矩阵时,GMM能够得到最优(最有效率)的估计量。

所以,下回当你听到GMM这个词时,别被那些数学符号吓到。它本质上就是一种非常务实的思想:通过寻找数据和我们理论模型之间的“统计上的不冲突”,来估计那些我们不知道的“真相”。就像一个侦探,从蛛丝马迹中寻找证据,不断修正自己的猜测,直到找到那个最符合所有证据的“凶手”。

网友意见

user avatar

既然被邀请和提到,在这里我来写一个最简单的GMM快速入门手册吧,因为这个技术听起来非常的高大上,但其实非常简单。如果你有本科的统计知识,看懂下文是不成问题的。

GMM的全名是Generalized Method of Moments,也就是广义矩估计。只看这个名字的话,如果去掉「广义」这个词,可能学过本科统计的人都认识,就是「矩估计」。

矩估计是什么呢?简单的说,就是用样本矩代替总体矩进行统计推断的方法。一个最基础的例子是正态总体的参数估计问题。如果,如何估计μ和σ呢?

本科的统计学一般会介绍两种方法:极大似然估计和矩估计。其中矩估计是我们今天的主角。观察到:

而根据大数定理,在一定的条件下,我们有:

也就是说,当样本量足够大的时候,样本矩与总体矩只差了一个无穷小量,那么我们是不是可以用样本矩代替总体矩得到参数的估计呢?

按照上面的思路,我们把op(1)去掉,同时把未知的总体参数写成其估计值,也就是带hat的形式,我们得到了:

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

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

好了,上面是矩估计,非常简单是吧?但是什么又是广义矩估计呢?

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

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

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

到这里我们不妨引入一些记号。还是使用上面的例子,我们把上面的三个矩条件写到一个向量里面去,记:

我们可以得到一个3*1的列向量,并且:

上面就是我们要用的矩条件。而根据上面的思路,用其样本矩代替总体矩:

解这个方程应该就可以得到参数θ的估计。但是正如上面所说的,三个方程两个未知数,并不能确保这个方程有解,所以必须想一些其他办法。

一个比较自然的想法是,上面的矩条件等于0,虽然我不太可能保证三个方程同时等于0,但是仿照OLS,我们可以让他们的平方和最小,也就是:

这样我们就能保证三个矩条件的样本矩都足够贴近于0,当然不可能同时为0。这样不就综合使用了三个矩条件的信息么?

更一般的,由于上面的g函数是一个3*1的列向量,我们可以使用一个权重矩阵W来赋予每个矩条件以不同的权重:

只要这个W是一个正定矩阵,那么仍然可以保证每个样本矩都足够贴近于0。

那么问题来了,既然对W的要求只要求正定矩阵,那么使用不同的权重矩阵就有可能得到不同的结果。问题是,有没有一个最优的权重矩阵呢?当然是有的。可以证明,最优的权重矩阵应该是:

使用这个权重矩阵,就得到了最有效的估计。

比如上面的例子,用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      

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

为什么两个矩条件的时候不使用最优权重矩阵呢?因为两个未知参数,两个矩条件,不存在过度识别的问题,存在唯一解的,所以不管使用任何的正定矩阵,得到的结果都是一样的。

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

这里需要注意的是,即使使用了更多的矩条件,估计量的standard error还是变大了。感兴趣的可以做一个蒙特卡洛模拟试试,一定是会变大的。为什么呢?因为没有使用最优的权重矩阵,所以使用单位阵作为权重矩阵得到的结果不是最有效的。那么如果使用最优的权重矩阵呢?结果:

嘿!standard error是变小了,但是跟使用两个矩条件的好像没有什么本质变化啊?为什么呢?

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

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

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

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

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

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

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

p-value为0.0000,拒绝了原假设,也就是说,三个矩条件不同时成立,数据很有可能不是从正态分布中生成的。

计量经济学的很多很多问题基本都可以归结为GMM的问题。从最简单的OLS、2SLS到稍微复杂一点的面板数据、动态面板等等,本质上都是在找矩条件。比如工具变量的2SLS,可以发现矩条件不过就是:

套一下上面的公式,最优权重矩阵(的逆)为:

带入到目标函数中,就得到了2SLS。

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

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

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

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

其中Ft为第t期所知道的所有信息,包括Ct、rt等等。所以根据这个式子,如果令

那么e_t跟Ct、rt等等都是正交的,自然可以作为矩条件来用。

Gretl自带了Hall的数据集,在user guide第206页开始给出了说明和代码,以及结果,感兴趣的可以去看看,很简单的一个程序。

我猜想上面的两个例子已经足够简单了,特别是正态分布的例子,应该不可能更简单了哈哈~

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有