一般化モーメント法

**一般化モーメント法**（いっぱんかモーメントほう、）とは、計量経済学において統計モデルのパラメーターを推定するための一般的な方法である。

一般化モーメント法においては、モデルについてのいくつかのモーメント条件が特定されている必要がある。これらのモーメント条件はモデルのパラメーターとデータの関数である。例えば、真のパラメーターの下で期待値が0となるようなものがある。この時、一般化モーメント法はモーメント条件の標本平均のあるノルムを最小化する。

一般化モーメント法による推定量は一致性、漸近正規性を持つことが知られ、さらにモーメント条件以外の情報を使わないすべての推定量のクラスにおいて統計的に効率的であることも知られている。

一般化モーメント法はラース・ハンセンにより1982年に、カール・ピアソンが1894年に導入したモーメント法の一つの一般化として提案された。ハンセンは一般化モーメント法とそれのファイナンスへの応用により2013年のノーベル経済学賞を受賞した。

## 概要
利用可能なデータは *T* 個の観測値  からなると仮定する。ここでそれぞれの観測値 *Y<sub>t</sub>* は *n* 次元の多次元確率変数であるとする。ここでこのデータはある統計モデルから生成されるとし、その統計モデルは未知パラメーター  によって定義されるものとする。この推定問題の目的は真のパラメーター *θ*0 もしくは少なくとも適度に近い推定量を見つけることである。

一般化モーメント法の一般的な仮定はデータ *Y<sub>t</sub>* がかつな確率過程であることである（独立かつ同一分布に従う確率変数 *Y<sub>t</sub>* はこの条件の特殊ケースである）。

一般化モーメント法を適用する為に、モーメント条件を特定する必要がある。つまり以下のようなベクトル値関数 *g*(*Y*,*θ*) が既知でなくてはならない。
: 
    m(\theta_0) \equiv \operatorname{E}[\,g(Y_t,\theta_0)\,]=0,
  
ここで E は期待値、*Y<sub>t</sub>* は一般的な観測値を表す。加えて関数 *m*(*θ*) は  ならば0と異なる値を取らなくてはならない。そうでなければパラメーター *θ* は識別不可能である。

一般化モーメント法の基本的なアイデアは理論的な期待値 E[⋅] を実証的なもの、つまり標本平均に置き換えることである。
: 
    \hat{m}(\theta) \equiv \frac{1}{T}\sum_{t=1}^T g(Y_t,\theta)
  
そして、この時、この表現のあるノルムを *θ* について最小化する。ノルムを最小化する *θ* が *θ*0 の推定量である。

大数の法則により、十分大きな *T* について \scriptstyle\hat{m}(\theta)\,\approx\;\operatorname{E}[g(Y_t,\theta)]\,=\,m(\theta) であり、 よって \scriptstyle\hat{m}(\theta_0)\;\approx\;m(\theta_0)\;=\;0 が成り立つことが予想される。一般化モーメント法はできるだけ \scriptstyle\hat{m}(\;\!\hat\theta\;\!) を0に近づけるような \scriptstyle\hat\theta を探す。数学的にはこの方法は \scriptstyle\hat{m}(\theta) のあるノルムを最小化することと同値である（*m* のノルムを ||*m*|| と表し、*m* とゼロの間の距離を測るものとする)。結果として得られた推定量の持つ性質はノルム関数の選択にもよるので、ゆえに一般化モーメント法の理論はノルム全体の族を考慮する。以下を定義する。
: 
    \| \hat{m}(\theta) \|^2_{W} = \hat{m}(\theta)'\,W\hat{m}(\theta),
  
ここで *W* は正値定符号である加重行列で *m′* は転置を表す。実践上、加重行列 *W* は利用可能なデータセットに基づいて計算され、そのようにして計算された加重行列を \scriptstyle\hat{W}_T とする。よって一般化モーメント法による推定量は以下のように書ける。
: 
    \hat\theta = \operatorname{arg}\min_{\theta\in\Theta} \bigg(\frac{1}{T}\sum_{t=1}^T g(Y_t,\theta)\bigg)' \hat{W}_T \bigg(\frac{1}{T}\sum_{t=1}^T g(Y_t,\theta)\bigg)
  
適切な条件の下で、一般化モーメント法による推定量は一致性と漸近正規性を持つ。そして加重行列 \scriptstyle\hat{W}_T を正しく選択すれば効率的な推定量となる。

## 性質
### 一致性
一致性とは、推定量の持つ統計的な性質であり、十分に多くの観測値がある場合、推定量は真の値に任意に近づいていくということである。
: \hat\theta \xrightarrow{p} \theta_0\ \text{as}\ T\to\infty
（確率収束を参照）。一般化モーメント法による推定量が一致性を持つ必要十分条件は以下の通りである。
# \hat{W}_T \xrightarrow{p} W を満たす。ただし *W* は正値定符号行列である。
# \,\theta=\theta_0 である時に限り \,\operatorname{E}[\,g(Y_t,\theta)\,]=0 を満たす。
# パラメーターが値を取りうる集合 \Theta \subset \mathbb{R}^{k} はコンパクト集合である。
# \,g(Y,\theta) は *θ* について連続である。
# \operatorname{E}[\,\textstyle\sup_{\theta\in\Theta} \lVert g(Y,\theta)\rVert\,]

第二の条件（**大域的識別**条件と呼ばれる）は、非線形モデルにおいて確かめるのが難しい。

実証計量経済学者は実際に大域的識別条件を確かめずに、それが成立していると単に仮定することがしばしばある

が、あまり推奨されない。識別条件が成立しない非線形モデルの例については、Dominguez and Lobato (2004)を参照のこと。

### 漸近正規性
漸近正規性は有用な性質であり、漸近正規性により推定量の信頼区間を計算することや仮説検定を行うことができる。一般化モーメント法による推定量の漸近分布について述べる前に、以下の2つの補助的な行列を定義する。
: G = \operatorname{E}[\,\nabla_{\!\theta}\,g(Y_t,\theta_0)\,], \qquad
        \Omega = \operatorname{E}[\,g(Y_t,\theta_0)g(Y_t,\theta_0)'\,]
以下の1から6までの条件の下で、一般化モーメント法による推定量は漸近正規性を持つ。
: \sqrt{T}\big(\hat\theta - \theta_0\big)\ \xrightarrow{d}\ \mathcal{N}\big[0, (G'WG)^{-1}G'W\Omega W'G(G'W'G)^{-1}\big]
（分布収束を参照）。条件は以下の通りである。
# \hat\theta は一致性を持つ。
#\,g(Y,\theta) は \theta_0 のある近傍 *N* において連続微分可能である。
# \operatorname{E}[\,\lVert g(Y_t,\theta) \rVert^2\,]
# \operatorname{E}[\,\textstyle\sup_{\theta\in N}\lVert \nabla_\theta g(Y_t,\theta) \rVert\,]
# 行列 G'WG は正則行列である。

### 効率性
ここまで行列 *W* の選択については、それが半正値定符号で無くてはならないということを除き何も述べてこなかった。実際、どのような半正値定符号行列であっても一般化モーメント法による推定量は一致性と漸近正規性を持つ。唯一の違いはその推定量の漸近分散にある。加重行列を以下のように取る。
:  W \propto\ \Omega^{-1} 
すると、一般化モーメント法による推定量はすべての漸近正規的な推定量の中で最も効率的となる。この場合の効率性は、推定量が可能な限り最小の分散行列（ある行列 *A* が行列 *B* より小さいとは *B-A* が半正値低符号であるということである。）を持つという意味である。

この場合、一般化モーメント法による推定量の漸近分散についての公式は以下のように単純化される。
: \sqrt{T}\big(\hat\theta - \theta_0\big)\ \xrightarrow{d}\ \mathcal{N}\big[0, (G'\,\Omega^{-1}G)^{-1}\big]

このような加重行列を選ぶことが最適になるという証明は、しばしば他の推定量の効率性を証明する時の証明を少しばかり模倣したものを取り入れる。大雑把に言えば、加重行列を分散についての"サンドイッチ公式"が単純な表現になるように選べば、その加重行列は最適となる。

## 実装
今まで述べてきた方法を実装するにあたっての一つの難しい点は  として加重行列を取ることである。なぜならば Ω の定義より、それを計算するためには *θ*0 の値が既知でなければならず、*θ*0 はまさに未知であり、そもそも推定しようとしている量である。

この問題を解決するための方法がいくつか存在する。以下であげるものうち、2段階GMMが最も一般的である。

***2段階GMM**（）
** ステップ1　\scriptstyle\hat{W}_T\;=I （単位行列）とし、事前の一般化モーメント法による推定量 \scriptstyle\hat\theta_{(1)} を計算する。この推定量は *θ*0 についての一致推定量ではあるが、効率的ではない。
** ステップ2
:: \hat{W}_T = \bigg(\frac{1}{T}\sum_{t=1}^T g(Y_t,\hat\theta_{(1)})g(Y_t,\hat\theta_{(1)})'\bigg)^{-1},
::とする。ただし、ステップ1における推定量 \scriptstyle\hat\theta_{(1)} を用いた。この行列は Ω−1 に確率収束し、ゆえにこの加重行列を用いて推定量 \scriptstyle\hat\theta を計算すれば、その推定量は漸近的に効率的である。

***繰り返しGMM**（）

:行列 \hat{W}_T を複数回計算することを除けば、本質的には2段階GMMと同じ方法である。つまりステップ2で得た推定量を加重行列として再び用いて推定量を計算し、これを繰り返す。このような推定量は、\scriptstyle\hat\theta_{(i)} と記すが、以下のシステム方程式を解いた場合と同値になる。
: 
    \bigg(\frac{1}{T}\sum_{t=1}^T \frac{\partial g}{\partial\theta'}(Y_t,\hat\theta_{(i)})\bigg)' \bigg(\frac{1}{T}\sum_{t=1}^T g(Y_t,\hat\theta_{(i)})g(Y_t,\hat\theta_{(i)})'\bigg)^{\!-1} \bigg(\frac{1}{T}\sum_{t=1}^T g(Y_t,\hat\theta_{(i)})\bigg) = 0
  
:このような繰り返しを行っても漸近的な改善は達成できないが、あるモンテカルロ実験では有限標本における推定量の振る舞いが若干よくなる。

***連続更新GMM**（ CUGMM もしくは CUE）

:\scriptstyle\hat\theta を加重行列 *W* と同時に推定する。つまり、
: 
    \hat\theta = \operatorname{arg}\min_{\theta\in\Theta} \bigg(\frac{1}{T}\sum_{t=1}^T g(Y_t,\theta)\bigg)' \bigg(\frac{1}{T}\sum_{t=1}^T g(Y_t,\theta)g(Y_t,\theta)'\bigg)^{\!-1} \bigg(\frac{1}{T}\sum_{t=1}^T g(Y_t,\theta)\bigg)
  
:として推定する。モンテカルロ実験において、この方法は伝統的な2段階GMMよりよいパフォーマンスを見せている。連続更新GMMは（裾が厚くなるが、）中位点のバイアスが小さくなり、そして多くの場合における過剰識別制約のためのJ検定がよりもっともらしい結果となる。

最小化の手続きの実装におけるもう一つの重要な問題は、（高次元であることもありうる）パラメーター空間 *Θ* を探索し、目的関数を最小化する *θ* の値を見つけるということになっているということである。このような手続きについて一般的に推奨される方法は存在せず、それは個々の場合による問題となる（数理最適化）。

## J検定
モーメント条件の数がパラメーターベクトルの次元より大きい時、そのモデルは*過剰識別されている*（）と言う。過剰識別ならば、そのモデルのモーメント条件がデータと適合するかどうかを調べることが出来る。

概念的に、モデルがデータによくフィットしているかは、\hat{m}(\hat\theta) が十分0に近いかどうかで調べることが出来る。一般化モーメント法は方程式 \hat{m}(\theta)=0 を解く問題、つまり \theta が制約を確かに満たすように選ぶという問題を最小化計算に置き換えている。この最小化は m(\theta_0)=0 を満たすような \theta_0 が存在しないとしても、常に実行可能である。J検定はこの制約が成立しているかを確かめることができる。J検定は*過剰識別制約についての検定*とも呼ばれる。

以下の統計的仮説を考えよう。
* H_0:\ m(\theta_0)=0 （モデルが妥当であるという帰無仮説）
* H_1:\ m(\theta)\neq 0,\ \forall \theta\in\Theta （モデルが妥当でないという対立仮説。データは制約を満たすほど近づかない。）

仮説 H_0 の下で以下のJ検定統計量は漸近的に自由度 *k-l* のカイ2乗分布に従う。
:J \equiv T \cdot \bigg(\frac{1}{T}\sum_{t=1}^T g(Y_t,\hat\theta)\bigg)' \hat{W}_T \bigg(\frac{1}{T}\sum_{t=1}^T g(Y_t,\hat\theta)\bigg)\ \xrightarrow{d}\ \chi^2_{k-\ell} &nbsp; under H_0,
ここで \hat\theta はパラメーター \theta_0 の一般化モーメント法による推定量、*k* はモーメント条件の数（ベクトル *g* の次元）、*l* は推定パラメーターの数（ベクトル *θ* の次元）である。行列 \hat{W}_T は \Omega^{-1} に確率収束しなくてはならない。\Omega^{-1} は効率的な加重行列である（以前、推定量が効率的であるためには、*W* は \Omega^{-1} に比例することだけが必要だった。しかし、J検定を行うには、*W* は \Omega^{-1} と一致せねばならず、単純に比例するだけではいけない）。

対立仮説 H_1 の下で、J検定等計量は漸近的に非有界である。
: J\ \xrightarrow{p}\ \infty&nbsp; under H_1

検定を行う為に、データから *J* の値を計算しなくてはならない。*J* は非負である。*J* を（例えば）\chi^2_{k-\ell} 分布の95%分位点と比較する。
* もし  J > q_{0.95}^{\chi^2_{k-\ell}}  ならば、帰無仮説 H_0 は有意水準5%で棄却される。
* もし  J  ならば、帰無仮説 H_0 は有意水準5%で棄却できない。

## 用例
他の多くの推定法は一般化モーメント法の意味で解釈できる。
* 最小二乗法（）は一般化モーメント法と以下のモーメント条件で同値となる。
:\operatorname{E}[\,x_t(y_t - x_t'\beta)\,]=0
* （）
:\operatorname{E}[\,x_t(y_t - x_t'\beta)/\sigma^2(x_t)\,]=0
* 操作変数法（）
:\operatorname{E}[\,z_t(y_t - x_t'\beta)\,]=0
* 非線形最小二乗法（）
:\operatorname{E}[\,\nabla_{\!\beta}\, g(x_t,\beta)\cdot(y_t - g(x_t,\beta))\,]=0
* 最尤法（）
:\operatorname{E}[\,\nabla_{\!\theta} \ln f(x_t,\theta) \,]=0
ただし、NLSやMLEは上のモーメント条件だけではパラメーターを識別できない場合がある。つまり、上のモーメント条件を満たすパラメーターが複数存在する可能性がある。従って、NLSやMLEの場合、GMMによる推定はできる限り避けることを推奨する。例えば、Dominguez and Lobato (2004)のシュレーションでは、非線形回帰のGMM推定が非常に不安定になることが示されている。

## 実装例
*
*R
*Stata
*EViews
*SAS

## 参考文献

* 
* 
* 
* 
* 
* 
* 
* Special issues of Journal of Business and Economic Statistics: vol. 14, no. 3 and vol. 20, no. 4.

## 関連項目
* 最尤法
*