導入:モーメント条件から GMM へ
GMM(generalized method of moments)は、モデルが含意する モーメント条件 を使ってパラメータを推定する方法である。モーメント条件とは、真のパラメータ \(\theta_0\) で評価すると平均が 0 になる関数 \[
E[g(X_t;\theta_0)]=0
\] のことである。
最尤法では、分布全体を指定して尤度を最大化する。一方、GMM では分布全体を指定しなくてもよい。モデルから「この平均は 0 になるはずだ」という条件だけを取り出し、その条件が標本でもできるだけ成り立つように \(\theta\) を選ぶ。この意味で、GMM はしばしば limited information 推定と呼ばれる。
method of moments の最も単純な例
まず、平均 \(\mu_0\) を推定するだけの一番単純な例から始める。\(Y_1,\ldots,Y_n\) が同じ分布から来ていて、平均が \[
E[Y_t]=\mu_0
\] であるとする。この条件は \[
E[Y_t-\mu_0]=0
\] と書き直せる。つまり \[
g(Y_t;\mu)=Y_t-\mu
\] とおけば、真の値 \(\mu_0\) は \[
E[g(Y_t;\mu_0)]=0
\] を満たす。
母平均 \(E[Y_t-\mu]\) は観測できないので、標本平均で置き換える。標本モーメントは \[
g_n(\mu)
=
\frac1n\sum_{t=1}^n (Y_t-\mu)
=
\bar Y_n-\mu
\] である。method of moments は、この標本版のモーメント条件 \[
g_n(\hat\mu)=0
\] を解く。したがって \[
\bar Y_n-\hat\mu=0
\] より \[
\hat\mu=\bar Y_n
\] が得られる。
この例では、推定したいパラメータは 1 つ、モーメント条件も 1 つである。標本モーメントをちょうど 0 にできるので、推定量は「方程式を解く」だけで出てくる。
複数のモーメントがある例
次に、1 つのパラメータ \(\theta_0\) について、2 つの情報がある場合を考える。観測データから \[
A_t=\theta_0+\varepsilon_{1t},
\qquad
B_t=\theta_0+\varepsilon_{2t}
\] が得られるとする。どちらも平均的には \(\theta_0\) を測っているので、 \[
E[A_t-\theta_0]=0,
\qquad
E[B_t-\theta_0]=0
\] という 2 つのモーメント条件がある。
このとき標本モーメントを \[
g_n(\theta)
=
\begin{pmatrix}
\bar A-\theta\\
\bar B-\theta
\end{pmatrix}
\] と書ける。もし標本で \[
\bar A=\bar B
\] なら、\(\theta=\bar A=\bar B\) とすれば 2 つの標本モーメントを同時に 0 にできる。しかし一般には、標本誤差のために \(\bar A\) と \(\bar B\) は一致しない。すると \[
\bar A-\theta=0,
\qquad
\bar B-\theta=0
\] を同時に満たす \(\theta\) は存在しない。
ここに GMM が必要になる理由がある。複数のモーメント条件があり、しかもモーメントの数がパラメータの数より多いと、標本ではすべての条件を同時に完全には満たせないことが多い。そのときは、「どの条件もなるべく小さくする」ような妥協点を選ぶ必要がある。
例えば重み \(w_1,w_2>0\) を使って \[
w_1(\bar A-\theta)^2+w_2(\bar B-\theta)^2
\] を最小化すると、一階条件は \[
-2w_1(\bar A-\theta)-2w_2(\bar B-\theta)=0
\] なので、 \[
\hat\theta
=
\frac{w_1\bar A+w_2\bar B}{w_1+w_2}
\] になる。つまり、GMM は複数のモーメント条件を重みつき平均のように組み合わせている。
ここで重要なのは、重みの選び方で推定量が変わることである。もし \(A_t\) が精度の高い測定で、\(B_t\) がノイズの大きい測定なら、\(\bar A\) をより強く信じ、\(\bar B\) を弱く信じる方が自然である。一般の GMM では、この「どのモーメントをどれだけ信用するか」を重み行列 \(W\) が決める。
GMM の基本形
一般に、\(K\) 個のモーメント条件 \[
E[g(X_t;\theta_0)]=0,
\qquad
g(X_t;\theta)\in\mathbb R^K
\] があり、推定したいパラメータが \[
\theta\in\mathbb R^p
\] であるとする。標本モーメントは \[
g_n(\theta)=\frac1n\sum_{t=1}^n g(X_t;\theta)
\] である。
GMM は、標本モーメント \(g_n(\theta)\) の大きさを \[
g_n(\theta)'\widehat W_n g_n(\theta)
\] で測り、これを小さくする \(\theta\) を選ぶ。ここで \(\widehat W_n\) は正定値対称な重み行列である。このノートでは、推定量を極値推定量として扱うため、同じ問題を最大化問題として \[
Q_n(\theta)
=
-\frac12 g_n(\theta)'\widehat W_n g_n(\theta)
\] と書く。\(Q_n(\theta)\) を最大化することは、二次形式 \(g_n(\theta)'\widehat W_n g_n(\theta)\) を最小化することと同じである。
モーメント条件の数 \(K\) とパラメータの数 \(p\) の関係に応じて、状況は大きく 2 つに分かれる。
- \(K=p\) の場合を just identified という。この場合、標本方程式 \(g_n(\theta)=0\) が解ければ、重み行列は推定量の一階の漸近分散に影響しない。
- \(K>p\) の場合を over identified という。この場合、標本ではすべてのモーメントを同時に 0 にできないことが多く、重み行列の選び方が効率性を左右する。
最も単純な GMM の例:OLS
線形回帰 \[
Y_t=x_t'\beta_0+u_t
\] を考える。\(x_t\) は定数項を含む説明変数ベクトルで、\(\beta_0\) が推定したい回帰係数である。OLS の標準的な外生性条件は \[
E[x_tu_t]=0
\] である。\(u_t=Y_t-x_t'\beta_0\) だから、この条件は \[
E[x_t(Y_t-x_t'\beta_0)]=0
\] と書ける。したがって \[
g(X_t;\beta)=x_t(Y_t-x_t'\beta)
\] をモーメント関数と見れば、OLS は GMM の一例である。
標本モーメントは \[
g_n(\beta)
=
\frac1n\sum_{t=1}^n x_t(Y_t-x_t'\beta)
\] である。just identified の場合、GMM 推定量は \[
g_n(\hat\beta)=0
\] を解く。これは \[
\frac1n\sum_{t=1}^n x_t(Y_t-x_t'\hat\beta)=0
\] であり、行列表記では \[
X'(Y-X\hat\beta)=0
\] である。よって \[
\hat\beta=(X'X)^{-1}X'Y
\] が得られる。これは通常の OLS 推定量そのものである。
この見方は重要である。OLS は「残差平方和を最小化する推定量」でもあり、「残差が説明変数と直交するというモーメント条件を合わせる推定量」でもある。後者の見方を一般化したものが GMM である。
重要な応用例:線形モデルの IV 推定
OLS の次に重要な例は、線形モデルの IV(instrumental variables, 操作変数)推定である。構造方程式 \[
Y_t=x_t'\beta_0+u_t
\] を考える。ここで \(x_t\) の一部が内生的であると、一般には \[
E[x_tu_t]\ne 0
\] となる。この場合、OLS のモーメント条件 \[
E[x_t(Y_t-x_t'\beta_0)]=0
\] は正しくない。
IV 推定では、説明変数 \(x_t\) そのものではなく、操作変数 \(z_t\) を使う。操作変数に必要な基本条件は、直観的には次の 2 つである。
- \(z_t\) は \(x_t\) と十分に相関している。
- \(z_t\) は構造誤差 \(u_t\) と相関していない。
2 つ目の条件は、モーメント条件として \[
E[z_tu_t]=0
\] と書ける。\(u_t=Y_t-x_t'\beta_0\) なので、 \[
E[z_t(Y_t-x_t'\beta_0)]=0
\] である。したがって \[
g(X_t;\beta)=z_t(Y_t-x_t'\beta)
\] をモーメント関数とすれば、線形 IV 推定は GMM の一例である。
標本モーメントは \[
g_n(\beta)
=
\frac1n\sum_{t=1}^n z_t(Y_t-x_t'\beta)
\] である。行列表記では、\(Z\) を操作変数の行列、\(X\) を説明変数の行列とすると、 \[
g_n(\beta)=\frac1n Z'(Y-X\beta)
\] である。
まず、操作変数の数とパラメータの数が同じ just identified の場合を考える。このとき、IV 推定量は \[
g_n(\hat\beta)=0
\] を解く。つまり \[
Z'(Y-X\hat\beta)=0
\] であり、 \[
Z'Y-Z'X\hat\beta=0
\] だから、\(Z'X\) が可逆なら \[
\hat\beta_{\mathrm{IV}}=(Z'X)^{-1}Z'Y
\] が得られる。もし \(z_t=x_t\) なら \(Z=X\) なので、この式は OLS の \[
(X'X)^{-1}X'Y
\] に戻る。したがって、OLS は「説明変数自身を操作変数として使った IV」とも見られる。
次に、操作変数の数がパラメータの数より多い場合を考える。このとき \(K>p\) なので over identified であり、一般には \[
Z'(Y-X\beta)=0
\] をすべて同時に満たす \(\beta\) は存在しない。そこで GMM は \[
g_n(\beta)'\widehat W_n g_n(\beta)
\] を最小にする \(\beta\) を選ぶ。
特に \[
\widehat W_n=\left(\frac1n Z'Z\right)^{-1}
\] を使うと、目的関数は定数倍を除いて \[
(Y-X\beta)'Z(Z'Z)^{-1}Z'(Y-X\beta)
\] になる。これは \(Z\) の列空間への射影行列 \[
P_Z=Z(Z'Z)^{-1}Z'
\] を使って \[
(Y-X\beta)'P_Z(Y-X\beta)
\] と書ける。この目的関数を最小化すると \[
\hat\beta_{\mathrm{2SLS}}
=
(X'P_ZX)^{-1}X'P_ZY
\] が得られる。これは通常の 2 段階最小二乗法(2SLS)である。
この例は、GMM の考え方を理解するうえで非常に重要である。IV 推定では、経済理論や制度的な知識から「この操作変数は構造誤差と直交するはずだ」というモーメント条件を作る。操作変数が多いと over identified になり、重み行列の選び方、効率性、そしてあとで扱う \(J\) 検定が自然に問題になる。
有名な応用例:資産価格・投資の Euler 方程式
GMM の有名な応用は、資産価格や投資の Euler 方程式の推定である。直観的には、投資家が最適に行動しているなら、今日 1 単位の資源を減らして投資し、将来のリターンを得るという小さな変更から、期待限界便益は 0 になるはずである。この最適性条件が Euler 方程式である。
ここで最も大事なのは、Euler 方程式は本来 条件付き期待値の条件 として出てくる、という点である。時点 \(t\) に投資家が知っている情報を \(\mathcal F_t\) と書く。投資家は \(\mathcal F_t\) に含まれる情報を使って、時点 \(t\) の投資・保有量を選ぶ。最適化の一階条件は、「時点 \(t\) の情報で見たときに、追加的に投資しても期待限界利益が 0 である」という形になる。
例えば、確率的割引ファクターを \(m_{t+1}(\theta)\)、資産のグロスリターンを \(R_{t+1}\) と書くと、基本的な Euler 方程式は \[
E[m_{t+1}(\theta_0)R_{t+1}-1\mid \mathcal F_t]=0
\] である。左辺は「時点 \(t\) に利用可能な情報で条件づけた、割引後リターンの期待超過分」である。真のパラメータ \(\theta_0\) の下で投資家が最適に選んでいるなら、この期待値は 0 になる。
消費ベースのモデルなら、典型的には \[
m_{t+1}(\theta)
=
\beta
\left(\frac{C_{t+1}}{C_t}\right)^{-\gamma},
\qquad
\theta=(\beta,\gamma)'
\] のように書く。ここで \(\beta\) は主観的割引因子、\(\gamma\) は相対的危険回避度である。
この条件付き期待値の条件は、非常に強い条件である。なぜなら、\(\mathcal F_t\) に含まれるどんな情報を使っても、予測可能な利益機会が残っていないことを要求しているからである。しかしデータ分析では、\(\mathcal F_t\) 全体をそのまま扱うことはできない。そこで、時点 \(t\) で観測できる変数のベクトル \(z_t\) をいくつか選ぶ。\(z_t\) は \(\mathcal F_t\) に含まれる、つまり時点 \(t\) に既に観測されている変数であるとする。
このとき、条件付き期待値の性質から無条件モーメント条件が得られる。具体的には、\(z_t\) が \(\mathcal F_t\)-measurable なので、 \[
\begin{aligned}
E\!\left[
z_t\{m_{t+1}(\theta_0)R_{t+1}-1\}
\right]
&=
E\!\left[
z_t
E\{m_{t+1}(\theta_0)R_{t+1}-1\mid \mathcal F_t\}
\right] \\
&=0.
\end{aligned}
\] これが GMM で使うモーメント条件である。つまり GMM は、条件付き Euler 方程式そのものを直接推定しているのではなく、そこから導かれる有限個の無条件モーメント条件を使っている。
複数の資産リターンや複数の操作変数 \(z_t\) を使えば、モーメント条件の数はすぐにパラメータの数より多くなる。例えば \(R_{t+1}\) が \(J\) 個の資産リターンを含み、\(z_t\) が \(L\) 個の情報変数を含むなら、単純には \(J\times L\) 個のモーメント条件が得られる。したがって、この種の Euler 方程式の推定では over identified GMM が自然に現れる。
企業投資の Euler 方程式でも構造は同じである。企業が時点 \(t\) の情報 \(\mathcal F_t\) に基づいて投資を選んでいるなら、最適投資の一階条件は \[
E[\xi_{t+1}(\theta_0)\mid \mathcal F_t]=0
\] という形で書けることが多い。ここで \(\xi_{t+1}(\theta)\) は「最適投資なら条件付き平均が 0 になるはずの Euler 方程式の誤差」である。
研究者は \(\mathcal F_t\) 全体を使う代わりに、その中から観測可能な変数 \(z_t\) を選ぶ。すると、上と同じ反復期待法則により \[
E[z_t \xi_{t+1}(\theta_0)]
=
E\!\left[
z_t E\{\xi_{t+1}(\theta_0)\mid \mathcal F_t\}
\right]
=0
\] が得られる。実証研究では、投資率、キャッシュフロー、資本ストック、ラグ付きの売上成長率など、時点 \(t\) で利用可能な変数を \(z_t\) として選び、それらと Euler 方程式の誤差 \(\xi_{t+1}(\theta)\) を掛け合わせたモーメント条件を GMM で合わせる。
この例で GMM が便利なのは、資産リターン、消費成長率、投資、資本ストックなどの完全な同時分布を指定しなくても、動学的最適化から得られる条件付き Euler 方程式を、有限個の無条件モーメント条件に変換して構造パラメータを推定できるからである。
GMM の推定誤差は、M 推定と同じく
の 2 つの要素から決まる。ただし GMM では、score の代わりに標本モーメント \(g_n(\theta_0)\) がノイズの源になり、曲率は \(G'WG\) という形で現れる。このあと導く漸近正規性は、この直観を数式で表したものである。
one-step correction
one-step correction は、\(\sqrt n\)-一致な初期推定量を出発点にして、一回だけ線形化による更新を行い、効率的 GMM と同じ一次の漸近分布を得る方法である。
注意しておきたいのは、普通の小さな GMM 問題では、one-step correction が特に必要ないことも多い、という点である。たとえば線形 IV や低次元の滑らかな GMM なら、第 2 段階の目的関数をそのまま最適化しても大きな負担ではない。
one-step correction が有益になるのは、第 2 段階の「1 回の最適化」が実際にはかなり重い場合である。数値最適化では、1 回の最適化の中で目的関数やモーメントを何十回、何百回も評価することがある。構造推定、シミュレーションを含むモーメント、非線形で局所解が多い目的関数、大きなブートストラップや多数の仕様チェックでは、この繰り返し評価が無視できなくなる。
このとき、初期推定量 \(\tilde\theta\) がすでに \(\sqrt n\)-一致なら、その近くでモーメント条件を一度だけ線形化して更新するだけで、一次の漸近分布は効率的 GMM と同じになる。これが one-step correction の考え方である。
\(\tilde\theta\) を \(\sqrt n\)-一致な初期推定量とし、\(\widehat W_n\) を効率的重みとする。\(\tilde\theta\) の近くで \[
g_n(\theta)
\approx
g_n(\tilde\theta)+\widetilde G(\theta-\tilde\theta),
\qquad
\widetilde G=G_n(\tilde\theta)
\] と線形化する。\(\Delta=\theta-\tilde\theta\) とおくと、線形化された GMM 問題は \[
\min_{\Delta}
\{g_n(\tilde\theta)+\widetilde G\Delta\}'
\widehat W_n
\{g_n(\tilde\theta)+\widetilde G\Delta\}
\] である。この一階条件は \[
\widetilde G'\widehat W_n
\{g_n(\tilde\theta)+\widetilde G\Delta\}=0
\] なので、 \[
\Delta
=
-
(\widetilde G'\widehat W_n\widetilde G)^{-1}
\widetilde G'\widehat W_n g_n(\tilde\theta)
\] となる。したがって \[
\hat\theta_{\mathrm{1step}}
=
\tilde\theta
-
(\widetilde G'\widehat W_n\widetilde G)^{-1}
\widetilde G'\widehat W_n
\left(\frac1n\sum_{t=1}^n g(X_t;\tilde\theta)\right),
\] と定める。これは、線形化された GMM 問題を解く Gauss-Newton / Newton 型の one-step 更新である。
すると適当な条件の下で \[
\sqrt n(\hat\theta_{\mathrm{1step}}-\theta_0)
\overset{d}{\to}
N\!\left(0,(G'S^{-1}G)^{-1}\right)
\] が成り立つ。つまり、初期推定量がすでに \(\sqrt n\) の速度で真の値に近づいていれば、一回の Newton 型ステップだけで漸近的には効率的 になる。
one-step correction は、次のような状況で有用である。
- 第 2 段階の非線形最適化が、目的関数評価を多数回必要とする。
- モーメントの計算にシミュレーションや大きな数値計算が入る。
- ブートストラップ、モンテカルロ、多数の初期値、多数の仕様で、同じ GMM 推定を何度も繰り返す。
- 初期推定量とヤコビアン \(G_n(\tilde\theta)\) は比較的簡単に得られる。
逆に、線形 IV や単純な低次元 GMM のように第 2 段階を簡単に解ける場合には、無理に one-step correction を使う必要はあまりない。