猫になりたい

コンサルのデータ分析屋、計量経済とか機械学習をやっています。pyてょnは3.7を使ってマスコレルウィンストングリーン。

計量経済学:一般化モーメント法(GMM)のアイディアについてざっくりまとめた

[2023/02/16 昔書いたものがずっと非公開だったので供養のために公開しました]

昔から何度勉強してもわからなかったので、Hansen(1982)により提案された一般化モーメント法(Generalized method of moments: GMM)について、そのアイディアを自分なりにまとめました(Gaussian Mixture ModelのGMMではないので注意)。 以下では、先ずモーメント法(Method of moments)について説明し、その後に一般化モーメント法について説明します。

尚、参考文献[5]によるとGMMという言葉が指すものは場合によって

  1. 狭義:過剰識別の非線形操作変数法
  2. 広義:一般化したモーメント法

の2種類がある様ですが、ここではGMMのアイディアを理解するという観点から参考文献[3]を参考にして2.の定義を採用します。*1

今回主に参考にしたのは以下の2つです

1. モーメント法

GMMの説明の前に通常のモーメント法についてまとめます。 モーメント法とは母集団分布を特徴づけるモーメントとその標本対応(Sample analogue)を用いて母集団のパラメータを推定する方法です。*2 例を見てみましょう。

モーメント法の例

母集団が正規分布N(\mu, 1)に従うとき、手元のサンプルx = \{x_1, ..., x_K\}から未知のパラメータ\mu(平均)を推定する方法を考えます。 ここで正規分布の原点回りの1次のモーメントは、

 E[X^1] = \mu

なので、1次のモーメント(E[X^1])が計算できれば求めたいパラメータ \muがわかるわけです。 実際には期待値は未知なので、その標本対応である原点回りの1次の標本モーメント(1st sample moment)

\overline{x} = \frac{1}{n}\Sigma_{i=1}^n x_i

(つまり標本平均)を用いて \muの推定量 \hat{\mu}

\hat{\mu}= \overline{x} = \frac{1}{n}\Sigma_{i=1}^n x_i

と推定します。この \hat{\mu}を(モーメント法を使って得たので)モーメント推定量と呼びます。

この例では原点回りのモーメントを考えましたが、期待値回りのモーメントでも同様に計算できます。こちらで計算した場合もモーメント法と呼ぶようです。 *3

一般のモーメント推定量

上の例では正規分布の平均を例に上げましたが、一般のモーメント推定量は次のように表されます(一般化モーメント法とは別のものであることに注意)。

母集団の分布を特徴づけるK個のパラメータを \beta = (\beta_1 ... \beta_K)'、母集団からのランダムサンプルを \{X_1, ..., X_n\}とします。また X_iのj次の原点回りのモーメントを E[X_i^j] \quad (j = 1, ..., K)とし、 E[X_i^j]はパラメータ\betaの既知の関数gを用いて、E [X_i^j ] = g_j(\beta) \tag{1}と表されるとします。ここでE [X_i^j ] = g_j(\beta)を標本対応で置き換えると、

$$ \begin{align} \frac{1}{n}\Sigma_{i=1}^n X_i^j= g_j(\hat{\beta}) \tag{2} \end{align} $$

となります。この条件をモーメントが満たすべき条件という意味でモーメント条件と呼び、母集団で成り立つべきモーメント条件((1)式)を特にPopulation Moment Conditionということがあるようです(参考文献を貼りたい)。

これはK本の連立方程式であり、これを解けば\betaの推定量\hat{\beta}が手に入ります。 勿論これは連立方程式なので未知パラメータの数Kと推定に使うモーメントの数(jの取りうる最大値、この場合K)が一致していなければ解くことはできません。

(2)式は以下の様に右辺をゼロにして表すことも可能です。

$$ \begin{align} (1) &\Leftrightarrow E[X_i^j ] = g_j(\beta) \\ &\Leftrightarrow E[X_i^j - g_j(\beta)] = 0 \tag{3} \end{align} $$

この場合の標本対応は

$$ \begin{align} \frac{1}{n}\Sigma_{i=1}^n (X_i^j- g_j(\beta)) = 0 \tag{4} \end{align} $$

となります。以降はこちらの表記を前提に話を進めて行きます。

モーメント推定量の限界点

ここまで普通のモーメント法について書いてきましたが、モーメント方には以下の2つの限界点があります。

限界点1.

限界点の1つ目は「モーメントがどの様なパラメータの関数 g_j(\beta)で表されるかが判らないと使えない」ことです。

前節でモーメント法について説明したときの(3)式では、  E[X_i^j]とパラメータ\betaの間に、 E[X_i^j - g_j(\beta)] = 0 という関係が成立する としました。しかし実際にはモーメントとパラメータの関係は単なる引き算では表せないもっと複雑なものであるかもしれません。

限界点2.

限界点の2つ目は「求めたいパラメータの数とモーメントの数が一致する場合にしか使えない」ことです。

改めて未知パラメータの数を K、推定に使うモーメントの数をJとしましょう。 未知パラメータの数と推定に使うモーメントの数(連立方程式の本数)が一致している(K=Jの)とき(Just Identified: 丁度識別と呼ぶ)、連立方程式(4)の解は一意に定まります。 しかし、計算できるモーメントの数の方が未知パラメータの数より多いとき(K \gt J)(Over Identified: 過剰識別と呼ぶ)は連立方程式を解くことが出来ません。

例えば正規分布には平均と分散という2つのパラメータがありますが、歪度や尖度の計算で用いる3次や4次のモーメントを計算することもできます。 4次のモーメントまで考えると、パラメータが2個( K =2)でモーメントの数が4個( J =4)となるのでK \gt Jより連立方程式が解けません。

この場合、モーメント条件の内のいくつかを捨て、K=Jとすることでパラメータを推定することができますがそれではせっかく持っているモーメントの情報を捨ててしまうことになります。

以下ではGMMがどのようにこれらの2つの限界点を克服したかをまとめます。


スポンサーリンク

2. 一般化モーメント法(GMM)

通常のモーメント法にあった上記2つの限界点に対応したのが一般化モーメント法(GMM)です。 つまりモーメントとパラメータの関係がより一般的な関係、具体的にはパラメータと確率変数の関数がE[f(\beta; X)]=0という形で表せられれば、モーメント条件のほうがパラメータの数より多いときでもパラメータを推定できる方法がGMMです。

問題点1.の克服:関数形の一般化

モーメント法は E[X_i^j - g_j(\beta)] = 0 という形でモーメント条件を表す必要がありました(限界点1.)。 GMMではこの制約を緩めてより一般的な関数形でも使えます。 例を見てみましょう。

例:線形回帰

以下の様な普通の線形回帰モデルを考えます。

$$ \begin{align} Y_i = X'_i \beta + e_i \\ E[X_i e_i] = 0 \end{align} $$

1行目より e_i = Y_i - X'_i \betaであり、これを2行目に代入すると、

$$ \begin{align} E[X_i ( Y_i - X'_i \beta)] = 0 \tag{5} \end{align} $$

とモーメント条件が得られます。これはOLSの直行条件そのものなので、GMMの文脈でもモーメント条件と言わずに直行条件と呼ぶこともあります。 これは、

$$ \begin{align} f(\beta; X_i) = X_i ( Y_i - X'_i \beta) \end{align} $$

とした時のモーメント条件になります。
OLSのパラメータを求めるには上記のモーメント条件の標本対応からパラメータを推定することになります。 この様にGMMではサンプルとパラメータが期待値の意味で0になるようなモーメント条件を作りさえすれば適用可能です。

実際に (5)式の標本対応がどうなるかを考えて見ましょう。標本対応は、

$$ \begin{align} \frac{1}{n} \Sigma_{i=1}^n X_i ( Y_i - X'_i \beta) = 0 \end{align} $$

となりますがこれはOLSの正規方程式と一致します。つまり線形回帰モデルのパラメータのOLS推定量はGMM推定量と見做すこともできるということです。

問題点2. の克服:モーメント条件の方が多い場合への対応

次にモーメント条件が連立方程式の数より多いときに(限界点2.)、全てのモーメント条件の情報を取りこむことを考えます。 以下では操作変数法を例に話を進めます。

次のようなモデルを考えましょう。

$$ \begin{align} Y_i = X'_i \beta + e_i \\ E[Z_i e_i] = 0 \end{align} $$

但し、 Z_i = (1 \quad x_{ex} \quad x_{IV})として、 x_{ex}は外生変数のベクトル、 x_{IV}は操作変数のベクトルを表します。 また、 X_i = (1 \quad x_{en} \quad x_{ex})として、 x_{en}は内生変数のベクトルを表します。 モーメント条件は一行目の式を二行目に代入して、

$$ \begin{align} 0 = E[Z_i ( Y_i - X'_i \beta) ] = E[f(\beta; X_i)] = \begin{pmatrix} E[f_{i1}( \beta; X_i)] \\ \vdots \\ E[f_{iJ}(\beta; X_i)] \end{pmatrix} \end{align} $$

となります。この連立方程式はパラメータの数がKで、モーメント条件ががJ本のものになります。 丁度識別の場合、つまり操作変数の数と内生変数の数が等しい時は線形回帰の例と同じ様に解けます、 しかし過剰識別、つまり操作変数の数が内生変数の数より多い場合は \bar{f}(x, \beta) = \frac{1}{n} \Sigma_{i=1}^n f_i(x, \hat{\beta}) =0 を満たすような解は一般に存在しません。
そこで代わりにウェイト行列Wを導入して、以下の式が0になるべく近づくようにパラメータを求めます。

$$ \begin{align} \bar{f}(\beta; X_i)' \hat{W} \bar{f}(\beta; X_i) = \frac{1}{n} \sum f(\beta; X_i)' W \frac{1}{n} \sum f(\beta; X_i) \end{align} $$

つまりパラメータの推定量は

$$ \begin{align} \hat{\beta} = \arg\min_{\beta} \quad \frac{1}{n} \sum f(\beta; X_i)' W \frac{1}{n} \sum f(\beta; X_i) \tag{6} \end{align} $$

になり、この様にして求めた推定量を一般にGMM推定量と呼びます。 但し、この二次形式の最小値はモーメント条件の定義より 0にならないといけないので、Wは半正値定行列とします*4。またWはn→∞で適当な定数に収束しなければならいようです。*5

この例のような線形モデルの場合、過剰識別の場合であってもGMM推定量は解析的に求まります。 Wを所与として\hat{W}と表すと、(6)式は行列表記で、

$$ \begin{align} \hat{\beta} = \arg\min_{\beta} \quad \big( \frac{1}{n} Z'(Y-X\hat{\beta}) \big)' \hat{W} \big( \frac{1}{n}Z'(Y-X\hat{\beta}) \big) \end{align} $$

となります。 最小化の一階の条件は、

$$ \begin{align} 0 = \frac{\delta f(\beta)}{\delta\beta}= -2 \big( \frac{1}{n} X'Z \big) \hat{W} \big (\frac{1}{n}Z'(Y-X\beta) \big) \tag{7} \end{align} $$

です。これを解くことで\betaの推定量、

$$ \begin{align} \hat{\beta} = (Z'Z\hat{W}Z'X)^{-1}X'Z\hat{W}Z'Y \end{align} $$

が求まります。

ここまでの話を振り返ると、GMMは丁度識別の場合と過剰識別時で推定量の求め方が違うのではないかと思う方が居られるかもしれません。しかし少なくとも線形モデルの場合、丁度識別の時はウェイト行列の選び方は推定量に影響しないため適当なウェイト行列の下で(7)式を解くだけで事足ります。 なぜなら内生変数と外生変数の数が等しい時、OLSの仮定より E[Z_i X_i]が正則になるので、

$$ \begin{align} \hat{\beta} &= (Z'Z\hat{W}Z'X)^{-1}X'Z\hat{W}Z'Y \\ &= (Z'X)^{-1}\hat{W}^{-1}(X'Z)^{-1}(X'Z)\hat{W}Z'Y\\ &= (Z'X)^{-1}Z'Y \end{align} $$

となりウェイト行列は消えてしまうからです。逆に言うと、ここでは詳しくは書きませんが、ウェイト行列の決め方が問題になるのは過剰識別の場合のみであるということも出来ます。

GMM推定量の性質

詳細は書籍に譲りますが、GMM推定量には以下の様な性質があります。

  1. GMM推定量は一致性を持つ
  2. GMM推定量は漸近正規性を持つ
  3. 特定のウェイト行列を用いて推定したGMM推定量は、モーメント条件のみを使って得られる漸近正規性を満たす推定量の中で分散が最小である

また、これらの性質は非線形なGMM推定量でも成り立ちます。


スポンサーリンク

まとめ

以上の様にGMMはモーメント法の弱点を克服し、1) 一般的な関数形でも、2) モーメント条件の方が推定したいパラメータよりも多いときでも、使える推定法です。 参考文献[4]やhansenの原論文を読むと、実際にはGMMが出てきた文脈というのはここで記した以上に複雑なようです。あくまでこの記事は二次情報を元に私なりにまとめたものですので、より詳細にGMMのアイディアについて知りたい方は参考文献を参照されることをおすすめいたします。

参考文献

読んだところだと日本語なら末石本が一番わかり易かったです。

*1:例えば参考文献[2]の浅野中村は線形モデルですが1.の文脈で話をしています。他にも多くの文献は1.の文脈でGMMの説明をしているように感じます。

*2:この標本対応という言葉は末石本の独自の訳語と思われる。実際、この言葉でググっても特にそれらしいページはヒットしない。

*3:https://onlinecourses.science.psu.edu/stat414/node/193/ の"Another Form of the Method"を参照

*4:手元の末石本は何故か正定値行列と記載されているが誤植?

*5:理由はよく判っていません......