計量経済学のためのR環境

一般化最小二乗法

 分散共分散行列idprob21.pngの形をしていることが、最小二乗法(OLS)が他のどの推定量よりも優れているという定理(ガウス=マルコフの定理)の前提条件になっています。Iは単位行列を表します。普通の日本語に近い表現をすると、こういうことです。

  1. 観測値が何組あっても、誤差項の分散はいつも定数idprob22.pngである。
  2. 異なる観測値の誤差項どうしに相関はない。

 これが満たされていないとき、どうしたらいいでしょう。大雑把に言って、ふたつの処理が考えられます。

  1. 観測値を変換して、分散共分散行列がidprob21.pngの形になるようにする。
  2. 分散共分散行列が特定のパターンを持っていると仮定して、分散共分散行列を実際のデータから推定し、最小二乗法の手順をそれに合わせて修正する。

 不均一分散は、1の方法で処理されることが多かった問題です。例えば年率2%で物価が上昇する経済で、数十年分のGDPに関する観測値を集めて分析するとします。物価が2倍になれば、GDP推定式の誤差の原因が何であろうと、誤差のばらつき(標準誤差)も2倍になっていると推定するのが自然です。だから名目GDPをある年度を標準とする物価指数で割って、実質GDPについて分析すれば、分散は均一になるはずです。

 コクラン=オーカット法による系列相関の処理も、OLSの標準的仮定が成り立つように観測値を変換するものです。

 これに対して、2の方法を一般化最小二乗法(GLS)と総称します。GLSの処理方法を求めてネットや教科書の索引を探し回った人もいるかもしれません。私自身にも覚えがあります。GLSのポイントは分散共分散行列を求めるところにあって、「分散共分散行列がこうだとしたら、パラメータはこう推定する」という部分は(比較的)短い解説で済みます。だから「一般化最小二乗法」の解説はあっても短く、肝心なことは個々のトピックスに分かれて解説されています。

 統計パッケージにGLSが含まれる場合、分散共分散行列(少なくとも、対角行列だと仮定した場合の対角要素ベクトル)を人間が指定しないと結果を出さないものと、最尤法を使ってデータから分散共分散行列を推定してからGLSを実行するものがあるようです。後者には例えばRのnlmeパッケージがあります。ただし、機械的に推定される分散共分散行列はデータの偏りをそのまま反映しますから、なんの仮説もないのにGLSコマンドを実行しても、OLSより「高度な」分析をしたとは言えません。

 例えばパネルデータ分析は、GLSとして(分散共分散行列を使って)解くのが一般的です。。系列相関や自己相関の処理のうち、データを変換しないで処理するものにもGLSを利用するものがあります。以下で説明する2段階最小二乗法や操作変数法はGLSではありません(分散共分散行列を使いません)が、2段階最小二乗法にGLSの一種であるSURを組み合わせた3段階最小二乗法はよく使われます。

説明変数と撹乱項(誤差項)の相関

 多重共線性の項でも触れたように、係数の有意性に関する判断は、誤差項が平均ゼロの正規分布をすることに依存しています。それ以外にも、成り立たなくては困る仮定がいくつかあるのです。

idprob01.jpg

idprob02.jpg

 という2本の式で表される、同時方程式モデルがあったとします。x、y、zは変数、a、b、c、r、sは定数である係数、εは誤差項です。zがyに、yがzに影響しあっています。こういう関係は、経済にはよくあります。

 yがzを通じてyを(部分的に)決めているというのは、自分が自分を決めていることになって、このままでは最小二乗法の基本的な仮定に反します。それなら、せっかく2本式があるのですから、先にzを消去して、2本を1本にまとめてしまったらどうでしょう。まとめると、式はこうなります。

idprob05.jpg

 代わりにこれを推定してやれば、今の問題は起こらないように思えます。これを推定しても元の式の係数のそれぞれを知ることはできませんが、元のモデルが正しいことを間接的に検定することはできるでしょう。  ところが、まとめた式(誘導型といいます)の誤差項であるidprob06.jpgにはidprob04.jpgが入っていますから、idprob04.jpgがたまたまプラスのときは、zもidprob06.jpgも平均より大きな値が出やすいと思われます。つまり、両者には相関関係があるのです。

 誤差項と説明変数の間に相関があるとどう困るのか、簡単に説明することは困難ですが、やってみましょう。最小二乗法は集めてきたデータ(標本)から係数を推定するひとつの方法なのですが、標本の偏りによって、真の係数と推定した係数はふつう一致しません。しかし、サンプル数を無限に多くすると、真の係数と推定した係数の差はゼロに近づくことが証明されています。この性質を一致性と言って、最小二乗法は一致性を持つことが重要な良さなのです。

 ところが誤差項と説明変数の間に相関がないことが、一致性の証明に使われているので、上のようなケースでは「重回帰分析を使っても、推定された係数を信用する根拠が薄い」ことになってしまうのです。

 こうした、同じ時点で複数の式が同時に成り立つと仮定することで起きる係数の偏りや根拠の喪失を同時方程式バイアスといいます。

2段階最小二乗法

 同時方程式バイアスを避けるためによく使われるのは、2SLS(2段階最小二乗法)です。モデルの中で他の変数から決まる変数(内生変数)、ここではyとzのうちひとつは被説明変数になるわけですが、もう一方(たくさん内生変数があるなら、残り全部)を外生変数でまず推定します。外生変数は、モデルの外で決まる変数です。この場合はxを説明変数、zを被説明変数とする回帰分析を行います。この例では外生変数はひとつだけですが、どれか1本でも式に含まれる外生変数をすべて使うのが普通です。

 そしてzの観測値の代わりに、推定結果を使って

idprob01.jpg

 を推定します。この場合、yへのxの影響がzを通した間接的なものと直接的なものに分かれることになりますね。これを実行する方法は後で扱います。先にもうひとつ、同時方程式モデルについて回る識別問題を説明しておきましょう。

識別問題

需要曲線idprob09.jpg

供給曲線idprob10.jpg

 であらわされる市場の価格・販売量はどのように観察されるでしょうか。我々が観察できるデータは、需要曲線と供給曲線の交点です。データが需要曲線に沿って並んでいるのか、供給曲線に沿って並んでいるのかは、ふたつの曲線に与えた仮定によって違ってきます。上の式の場合だと、誤差項を無視して二つの式を「解く」ことができて、

idprob11.jpg

 となります。誤差項があるために、上の式が表す交点の周りでデータはばらつくことになるはずですが、需要曲線、供給曲線のどちらにも沿って並びません。つまり、いくらデータがあっても、データから需要曲線や供給曲線を推定することは絶対にできないのです。

 こうした問題を識別問題といいます。この例のように需要曲線と供給曲線がデータから識別できないこともありますし、もっと多くの式を連立させたモデルでは、同じ変数を決定する式が複数あって、それぞれ相関しない説明変数を持っているので、モデルから同じ変数の推定値が複数出てきて互いに一致しない、ということも起こります。

2段階最小二乗法の実践

idprob13.jpg

idprob14.jpg

 と変数をひとつずつ追加したモデルを考えてみましょう。例えば需要なら所得から影響を受けるでしょうし、供給曲線は材料の国際価格などに影響を受けるでしょう。RやSが変化すれば、需要曲線に沿った変化も供給曲線に沿った変化も観察できそうですね。そして、RとSを外生変数とみなし、2段階最小二乗法を使うことにしましょう。

 ここから先はsystemfitパッケージを使うので、パッケージの読み込みを忘れずに。

 スクリプトはRサンプル11、使用するデータはRサンプル11のデータです。

 主な結果は、次のようなものです。

> dem <- P ~ Q + R 
> sup <- P ~ Q + S
> labels <- list( "demand", "supply" )
> system <- list( dem, sup )
> inst <- ~ R + S
> sysols <- systemfit( "OLS", system, labels, inst)
> summary(sysols)

systemfit results 
method: OLS 

        N DF      SSR      MSE     RMSE       R2   Adj R2
demand 20 17 0.447212 0.026307 0.162193 0.994075 0.993378
supply 20 17 2.579214 0.151718 0.389511 0.965831 0.961811

The covariance matrix of the residuals
           demand     supply
demand  0.0263066 -0.0161156
supply -0.0161156  0.1517185

The correlations of the residuals
          demand    supply
demand  1.000000 -0.255091
supply -0.255091  1.000000

The determinant of the residual covariance matrix: 0.00373149
OLS R-squared value of the system: 0.979953

OLS estimates for demand  (equation 1 )
Model Formula: P ~ Q + R

             Estimate Std. Error    t value Pr(>|t|)    
(Intercept) -0.047874    0.36817  -0.130033 0.898067    
Q            0.000212   0.004408   0.048063 0.962226    
R           -0.509177   0.024064 -21.159309        0 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Residual standard error: 0.162193 on 17 degrees of freedom
Number of observations: 20 Degrees of Freedom: 17 
SSR: 0.447212 MSE: 0.026307 Root MSE: 0.162193 
Multiple R-Squared: 0.994075 Adjusted R-Squared: 0.993378 


OLS estimates for supply  (equation 2 )
Model Formula: P ~ Q + S

             Estimate Std. Error   t value Pr(>|t|)    
(Intercept)  3.818202   0.645832  5.912067  1.7e-05 ***
Q           -0.023169   0.008864 -2.613955 0.018148   *
S            2.723121   0.341519  7.973557        0 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Residual standard error: 0.389511 on 17 degrees of freedom
Number of observations: 20 Degrees of Freedom: 17 
SSR: 2.579214 MSE: 0.151718 Root MSE: 0.389511 
Multiple R-Squared: 0.965831 Adjusted R-Squared: 0.961811 

 御覧のように、ふたつの式をそれぞれ最小二乗法で推定すると、自由度修正済み決定係数は0.9を超えます。RとSはどちらもPと相関が高くなるようにデータを作ってあります。ところが、RとSでPとQを推定し、その値を代わりに使う2SLSを使うと…

> sys2sls <- systemfit( "2SLS", system, labels, inst)
> summary(sys2sls)

systemfit results 
method: 2SLS 

        N DF     SSR      MSE     RMSE       R2   Adj R2
demand 20 17 56.1935 3.305498 1.818103 0.255559 0.167978
supply 20 17  7.9412 0.467129 0.683469 0.894796 0.882420

The covariance matrix of the residuals
         demand    supply
demand  3.30550 -1.202963
supply -1.20296  0.467129

The correlations of the residuals
          demand    supply
demand  1.000000 -0.968089
supply -0.968089  1.000000

The determinant of the residual covariance matrix: 0.096975
OLS R-squared value of the system: 0.575178

2SLS estimates for demand  (equation 1 )
Model Formula: P ~ Q + R
Instruments: ~R + S

             Estimate Std. Error  t value Pr(>|t|)  
(Intercept) -6.887025  29.565603 -0.23294 0.818589  
Q            0.203147   0.870104 0.233475 0.818181  
R           -1.526677   4.363928 -0.34984 0.730755  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Residual standard error: 1.818103 on 17 degrees of freedom
Number of observations: 20 Degrees of Freedom: 17 
SSR: 56.193462 MSE: 3.305498 Root MSE: 1.818103 
Multiple R-Squared: 0.255559 Adjusted R-Squared: 0.167978 


2SLS estimates for supply  (equation 2 )
Model Formula: P ~ Q + S
Instruments: ~R + S

             Estimate Std. Error   t value Pr(>|t|)  
(Intercept)  3.338415   1.153567  2.893993  0.01009 *
Q           -0.075862   0.028334 -2.677472 0.015905 *
S            0.933461    1.00306  0.930614 0.365081  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Residual standard error: 0.683469 on 17 degrees of freedom
Number of observations: 20 Degrees of Freedom: 17 
SSR: 7.941197 MSE: 0.467129 Root MSE: 0.683469 
Multiple R-Squared: 0.894796 Adjusted R-Squared: 0.88242

 ひとつめの式の決定係数はどんと下がってしまいました。


添付ファイル: fileidprob21.png 1725件 [詳細] fileidprob22.png 1500件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-12-11 (木) 22:19:29 (5667d)