🎓 レベル:標準 | 重要度:A(必須) 📎 土台:操作変数法と2SLS(因果推論・IVの識別)・重回帰分析(統計・OLS)・操作変数の考え方
要点(BLUF)
- 2SLS(2段階最小二乗) = 操作変数法の標準的な実装。第1段で内生変数 を操作変数 に回帰して**予測値 (外生部分)**を作り、第2段で を に回帰します。
- は「 が動かした分」だけを含み交絡と無相関なので、第2段の係数は一致推定量になります(OLSの偏りが消える)。
- 命綱は第1段の強さ。操作変数が弱い(第1段 目安)と、2SLSはOLSより悪い弱操作変数バイアスを起こします。
1. 2SLSの手順
内生変数 、操作変数 、外生コントロール (あれば)に対し:
第1段で を「・ で説明できる部分 」と「残り (交絡を含む)」に分解し、 だけを第2段で使う。 は構成上 の関数なので交絡 と無相関——これが偏りの消える理由です。実務では手計算の二段ではなく IV2SLS(標準誤差が正しく出る)を使いますが、論理は上の二段そのものです。
flowchart LR
A["内生変数 x(交絡で汚れている)"] --> B["第1段: x を z, w に回帰"]
B --> C["予測値 x̂(z 由来=外生部分のみ)"]
C --> D["第2段: y を x̂ に回帰"]
D --> E["β̂ は一致推定(OLSの偏りが消える)"]
2. 実証:内生性でOLSが偏る → 2SLSで直る
未観測の能力 ability が教育 educ と賃金 wage の両方を押し上げる(欠落変数バイアス)状況を作ります。操作変数 z(例:近所に大学があるか)は educ に効くが ability とは無関係(外生)。真の教育の収益は です。
import numpy as np
import statsmodels.api as sm
np.random.seed(0)
n = 5000
# 能力 ability は未観測の交絡(educ と wage の両方を押し上げる)
ability = np.random.normal(0, 1, n)
# 操作変数 z(近所に大学があるか):educ に効くが ability とは無関係(外生)
z = np.random.normal(0, 1, n)
# 教育年数:操作変数 z と 未観測能力 ability で決まる(→ educ は内生)
educ = 0.7 * z + 0.6 * ability + np.random.normal(0, 1, n)
# 真の教育の収益(賃金への因果効果)は 0.5
beta_true = 0.5
wage = beta_true * educ + 1.0 * ability + np.random.normal(0, 1, n)
# (1) 素朴な OLS:ability が欠落 → educ と誤差が相関 → 上方バイアス
ols = sm.OLS(wage, sm.add_constant(educ)).fit()
print(f"真の効果 = {beta_true:.3f}")
print(f"OLS(内生性で偏り) = {ols.params[1]:.3f}")
# (2) 2SLS(手計算):第1段 educ を z に回帰 → 予測値 educ_hat(z 由来=外生部分)
first = sm.OLS(educ, sm.add_constant(z)).fit()
educ_hat = first.fittedvalues
# 第2段:wage を educ_hat に回帰
second = sm.OLS(wage, sm.add_constant(educ_hat)).fit()
print(f"2SLS(操作変数で補正) = {second.params[1]:.3f}")
# 操作変数の関連性(第1段の t・弱操作変数でないか)
print(f"第1段 z の t 値 = {first.tvalues[1]:.1f}(大きいほど関連性が強い)")
出力:
真の効果 = 0.500
OLS(内生性で偏り) = 0.814
2SLS(操作変数で補正) = 0.485
第1段 z の t 値 = 42.6
出力の意味:OLSは と真値 から大きく上振れしました——能力という交絡が教育と賃金の両方を押し上げ、教育の係数に紛れ込んだためです(内生性とは(バイアスの源の地図))。2SLSは とほぼ真値を回収。第1段で教育の「 が動かした外生部分」だけを取り出し、能力由来の汚れた変動を捨てたからです。第1段の の 値は と非常に大きく、強い操作変数であることも確認できます(弱操作変数なら2SLSも信頼できません)。
3. 弱操作変数の害
第1段が弱い()と、2SLSは深刻に劣化します:(1) 有限標本バイアスがOLS方向に残る、(2) 標準誤差が爆発して推定が不安定、(3) 漸近近似が効かず信頼区間が信用できない。診断は第1段の 統計量(操作変数が複数なら同時 )。経験則は 、近年はより厳しい基準(実効 )も使われます。弱いときは、操作変数を選び直すか、弱操作変数に頑健な推定(LIML・Anderson–Rubin信頼区間)に切り替えます。
⚠️ よくある誤解・落とし穴
- 手計算2SLSの標準誤差は間違い:第2段で を「観測値」のように扱うと標準誤差が過小になる。点推定の論理確認には使えるが、実務は
IV2SLSを使い正しい標準誤差を得ること。 - 「操作変数があれば常にOLSより良い」ではない:弱操作変数だと2SLSの方が悪い。 で強さを必ず確認。
- 「2SLSの係数はOLSより小さくなる」ではない:偏りの向き次第。測定誤差の希薄化(内生性とは(バイアスの源の地図))が主因なら2SLSはOLSより大きくなります。
- 「過剰識別検定が通れば除外制約はOK」ではない:Sargan/Hansen検定は操作変数どうしの整合性を見るだけ。除外制約そのものは論証で守る(操作変数の考え方)。
関連ノート
- 操作変数の考え方(3条件と操作変数の探し方)
- 同時方程式モデル(同時性の文脈での操作変数)
- 差分の差分(DID)(別ルートの準実験的識別)
- 操作変数法と2SLS(因果推論・LATEと識別)
- 内生性と操作変数 目次
- 計量経済学 全体目次