Chapter 17 操作変数法

17.1 操作変数法とは

17.1.1 なぜ操作変数法が必要か

14章で、固定効果モデルには限界があることを学んだ。固定効果が除去できるのは、時間不変の交絡変数によるバイアスだけであり、逆の因果関係(reverse causality)によるバイアスは除去できない。

ここでは、逆の因果関係が存在する場合に対処する手法として、操作変数法(Instrumental Variables, IV)を学ぶ。

具体例として、教育の収益を考えよう。

\[ \log(\text{賃金}_i) = \alpha + \beta \cdot \text{教育年数}_i + \varepsilon_i \]

直感的には、教育年数が長いほど賃金が高くなると考えられ、\(\beta > 0\) が期待される。しかし、この回帰式をOLSで推定すると、\(\beta\) の推定値にバイアスがかかる可能性がある。

なぜか? 能力(ability)という観察されない変数が存在するからだ。能力が高い人は学校でも成果を上げやすいため多く進学する傾向がある。同時に、能力が高い人は労働市場でも高い評価を受け、賃金が高い。

\[ \text{能力(高)} \rightarrow \begin{cases} \text{教育年数(長)} \\ \text{賃金(高)} \end{cases} \]

この構造において、OLSで推定される \(\beta\) には能力の影響が混入してしまう。これを欠落変数バイアス(OVB)と呼ぶことは第14章で学んだ通りである。

固定効果モデルで対処しようとしても、能力は個人に帰属する時間不変の特性であり、個人レベルの繰り返し観察データ(個人パネルデータ)がなければ除去できない。

17.1.2 操作変数法のアイデア

操作変数法は、内生変数(ここでは教育年数)の変動のうち、外生的な変動だけを使って係数を推定するアイデアである。

外生的な変動とは、能力など観察されない要因とは無関係に生じる変動のことだ。そのような変動を引き起こす変数を操作変数(instrument)と呼ぶ。

Card(1995)は、出身地の近くに4年制大学があるかどうかnearc4)を操作変数として用いた。

  • 近くに大学がある人は、通いやすいため大学に進学しやすい → 教育年数が長くなる
  • しかし、近くに大学があること自体は、その人の能力とは無関係
  • また、大学への近さは、教育を通じた効果以外で賃金に影響することはない

大学への近さという「運」のような要因によって生じた教育年数の差を利用することで、能力の影響を排除した上で教育の収益を推定できる。

17.1.3 操作変数の2つの条件

操作変数 \(z_i\) が有効であるためには、以下の2つの条件を満たす必要がある。

条件1:関連性(Relevance)

操作変数は内生変数と相関していなければならない。

\[ \text{Cov}(z_i, x_i) \neq 0 \]

大学への近さが教育年数と相関していること。大学が近ければ進学しやすいので、この条件は比較的検証しやすい(第1段階回帰のF統計量で確認する)。

条件2:除外制約(Exclusion Restriction)

操作変数は、内生変数を通じてのみ目的変数に影響し、それ以外の経路では影響しない。

\[ \text{Cov}(z_i, \varepsilon_i) = 0 \]

大学への近さは、教育年数を通じてのみ賃金に影響し、それ以外の経路では賃金に影響しない。この条件はデータから直接検証することができない。経済学的な理論と常識的な判断に基づいて主張する必要がある。

17.1.4 2段階最小二乗法(2SLS)

操作変数法の推定方法として代表的なのが2段階最小二乗法(Two-Stage Least Squares, 2SLS)である。名前の通り、2段階に分けて推定する。

第1段階(First Stage):内生変数を操作変数に回帰し、外生的な変動分(予測値)を取り出す。

\[ x_i = \pi_0 + \pi_1 z_i + \eta_i \]

\[ \hat{x}_i = \hat{\pi}_0 + \hat{\pi}_1 z_i \]

第2段階(Second Stage):第1段階で得られた予測値 \(\hat{x}_i\) を内生変数の代わりに用いて、目的変数に回帰する。

\[ y_i = \alpha + \beta \hat{x}_i + \varepsilon_i \]

第1段階で取り出した \(\hat{x}_i\) は、操作変数 \(z_i\) からの外生的な変動のみを含み、能力との相関は除去されている。したがって、第2段階で得られる \(\beta\) の推定値はOLSのバイアスを持たない。

実際には、Rで一度にまとめて推定できるため、手作業で2段階に分ける必要はない。

17.2 Rでの演習

17.2.1 スクリプトの準備

新しいスクリプトを作成し、iv_analysis.R という名前をつけて保存する。

17.2.2 パッケージの準備

pacman::p_load(tidyverse, fixest, wooldridge)

17.2.3 データの準備

Card(1995)のデータは wooldridge パッケージに含まれている。

data(card)

データの中身を確認しよう。

head(card[, c("wage", "educ", "nearc4", "exper", "black", "smsa")])
##   wage educ nearc4 exper black smsa
## 1  548    7      0    16     1    1
## 2  481   12      0     9     0    1
## 3  721   12      0    16     0    1
## 4  250   11      1    10     0    1
## 5  729   12      1    16     0    1
## 6  500   12      1     8     0    1

主な変数は以下の通りである。

変数 内容
wage 時間当たり賃金(セント)
educ 教育年数
nearc4 4年制大学が近くにある場合1、ない場合0
exper 労働経験年数
black 黒人の場合1
smsa 大都市圏(SMSA)在住の場合1

目的変数の賃金は対数変換して使う。また、コントロール変数として経験年数・人種・居住地を加える。

# 記述統計
summary(card[, c("wage", "educ", "nearc4", "exper", "black", "smsa")])
##       wage             educ           nearc4           exper       
##  Min.   : 100.0   Min.   : 1.00   Min.   :0.0000   Min.   : 0.000  
##  1st Qu.: 394.2   1st Qu.:12.00   1st Qu.:0.0000   1st Qu.: 6.000  
##  Median : 537.5   Median :13.00   Median :1.0000   Median : 8.000  
##  Mean   : 577.3   Mean   :13.26   Mean   :0.6821   Mean   : 8.856  
##  3rd Qu.: 708.8   3rd Qu.:16.00   3rd Qu.:1.0000   3rd Qu.:11.000  
##  Max.   :2404.0   Max.   :18.00   Max.   :1.0000   Max.   :23.000  
##      black             smsa      
##  Min.   :0.0000   Min.   :0.000  
##  1st Qu.:0.0000   1st Qu.:0.000  
##  Median :0.0000   Median :1.000  
##  Mean   :0.2336   Mean   :0.713  
##  3rd Qu.:0.0000   3rd Qu.:1.000  
##  Max.   :1.0000   Max.   :1.000

17.2.4 操作変数の妥当性の確認(第1段階)

まず、操作変数(大学への近さ)が内生変数(教育年数)と十分に相関しているかを確認する。これが条件1:関連性の確認である。

# 第1段階回帰
first_stage <- feols(educ ~ nearc4 + exper + black + smsa, data = card)
etable(first_stage)
##                         first_stage
## Dependent Var.:                educ
##                                    
## Constant          16.46*** (0.1136)
## nearc4           0.3850*** (0.0816)
## exper           -0.3970*** (0.0087)
## black            -1.114*** (0.0849)
## smsa             0.4380*** (0.0845)
## _______________ ___________________
## S.E. type                       IID
## Observations                  3,010
## R2                          0.47208
## Adj. R2                     0.47138
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

nearc4 の係数が正で統計的に有意であれば、大学が近いほど教育年数が長いことが確認できる。

弱い操作変数の問題:操作変数が内生変数と弱い相関しか持たない場合(弱い操作変数, weak instrument)、2SLSの推定値は不安定になる。目安として、第1段階のF統計量が10を超えていることが望ましいとされる。

# 第1段階のF統計量
fitstat(first_stage, "f")
## F-test: stat = 671.8, p < 2.2e-16, on 4 and 3,005 DoF.

17.2.5 OLS推定(比較用)

次に、通常のOLSで教育の収益を推定する。

reg_ols <- feols(log(wage) ~ educ + exper + black + smsa, data = card)
etable(reg_ols)
##                             reg_ols
## Dependent Var.:           log(wage)
##                                    
## Constant          4.823*** (0.0629)
## educ             0.0762*** (0.0036)
## exper            0.0396*** (0.0022)
## black           -0.2348*** (0.0171)
## smsa             0.1867*** (0.0157)
## _______________ ___________________
## S.E. type                       IID
## Observations                  3,010
## R2                          0.26152
## Adj. R2                     0.26054
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

17.2.6 IV推定(2SLS)

feols() では、| の後に 内生変数 ~ 操作変数 の形式で指定することで、IV推定(2SLS)が実行できる。

reg_iv <- feols(log(wage) ~ exper + black + smsa | educ ~ nearc4, data = card)
etable(reg_iv)
##                             reg_iv
## Dependent Var.:          log(wage)
##                                   
## Constant         3.121*** (0.7810)
## educ            0.1785*** (0.0469)
## exper           0.0802*** (0.0187)
## black            -0.1182* (0.0567)
## smsa            0.1277*** (0.0323)
## _______________ __________________
## S.E. type                      IID
## Observations                 3,010
## R2                         0.05908
## Adj. R2                    0.05783
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

feols() のIV構文は以下の通りである。

feols(目的変数 ~ 外生的なコントロール変数 | 内生変数 ~ 操作変数, data = データ)

| より左側に目的変数と外生的なコントロール変数、右側に 内生変数 ~ 操作変数 を書く。

17.2.7 OLSとIVの比較

2つの推定結果を並べて比較しよう。

etable(reg_ols, reg_iv, headers = c("OLS", "IV(大学距離)"))
##                             reg_ols             reg_iv
##                                 OLS IV(大学距離)
## Dependent Var.:           log(wage)          log(wage)
##                                                       
## Constant          4.823*** (0.0629)  3.121*** (0.7810)
## educ             0.0762*** (0.0036) 0.1785*** (0.0469)
## exper            0.0396*** (0.0022) 0.0802*** (0.0187)
## black           -0.2348*** (0.0171)  -0.1182* (0.0567)
## smsa             0.1867*** (0.0157) 0.1277*** (0.0323)
## _______________ ___________________ __________________
## S.E. type                       IID                IID
## Observations                  3,010              3,010
## R2                          0.26152            0.05908
## Adj. R2                     0.26054            0.05783
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

結果のポイントを整理する。

  • OLS:教育年数1年の増加で賃金が約7.6%上昇(\(\hat{\beta} \approx 0.076\)
  • IV:教育年数1年の増加で賃金が約17.9%上昇(\(\hat{\beta} \approx 0.179\)

IVの推定値がOLSより大きいという結果は一見意外に思えるかもしれない。能力バイアスがあればOLSは上方バイアスを持つはずなのに、なぜIVの方が大きいのか。

この理由として以下が挙げられる。

  1. 測定誤差によるバイアス:教育年数は回答者の記憶に頼って記録されるため、測定誤差を含む可能性がある。測定誤差があると、OLSの係数は真の値より小さく推定される(減衰バイアス)。IVはこの影響を受けにくい。

  2. 局所平均処置効果(LATE):IVは、操作変数(大学の近さ)によって教育行動が変化した人々——大学が近かったから進学した、あるいは近くなければ進学しなかった人たち——に対する教育の収益を推定している。このグループの教育の収益が、平均的な収益よりも高い可能性がある。

17.3 まとめ

操作変数法は、内生変数に対して適切な操作変数を見つけることができれば、OLSの欠落変数バイアスや逆の因果関係によるバイアスを除去できる強力な手法である。

ただし、除外制約(条件2)はデータから直接検証できないため、「なぜこの変数が操作変数として成立するのか」を経済学的に説明できることが必要である。

本章で学んだ疑似実験の手法(DiD・RD・IV)と、第14章で学んだ固定効果モデルを組み合わせることで、観察データから因果効果を推定するための基本的な分析ツールが揃う。

手法 解決する問題 必要な条件
固定効果(FE) 時間不変の交絡変数 パネルデータ
差の差法(DiD) 共通トレンドを除いた処置効果 平行トレンドの仮定
回帰不連続(RD) 閾値近傍での局所的な処置効果 閾値付近の連続性
操作変数法(IV) 内生性・逆の因果関係 関連性+除外制約