論文一覧に戻る 📚 用語集トップ 🗺 概念マップ
📚 用語解説
📚 用語解説
外生性
Exogeneity
因果推論
別称: 外生

🔖 キーワード索引

本ページで扱うキーワード群。 各チップから該当セクションへジャンプできる。

📍 文脈 🎨 直感 📐 数式 🔬 数式を言葉で読み解く 🧮 実値計算 🐍 Python ⚠️ 落とし穴 🌐 関連手法 📚 関連教材 内生性 同時性 Hausman 検定

📍 文脈ボックス: あなたが今見ているもの

あなたが今見ているのは 外生性 (exogeneity) の用語ページである。 外生性は「説明変数 $X$ と誤差項 $\varepsilon$ が無相関」という条件で、 OLS が不偏推定量となる核心前提。 これが破れた状態が 内生性 で、 同時性 / 欠落変数バイアス / 測定誤差が原因となる。 因果効果推定の前提条件として最も重要な概念の一つ。

🎨 直感で掴む: 「外から決まる」とは

外生性とは「説明変数が、 モデルの外で何らかの仕組みにより決まっており、 結果変数 (誤差項) からは影響を受けない」状態を指す。 ランダム化実験では研究者がコインを投げて処置を割り付けるため、 処置変数は完全に外生になる。

日常的なたとえ: 「気温が上がるとアイスの売上が増える」を考えると、 気温は人間の意志や売上から独立に決まる (太陽と気象の摂理)。 これは外生。 一方「価格を上げると売上が下がる」では、 価格は売上の予想を見て会社が決めているので外生ではない (内生)。

SSDSE-B-2026 では、 「気候 (年平均気温 B4101 など)」は外生だが、 「合計特殊出生率」「転入者数」「消費支出」などはほぼすべての変数と相互依存しており内生性を疑うべき。 外生性が満たされていれば OLS が使える、 破れていれば操作変数 / DID / RDD などの対策が必要。

📐 数式または定義

回帰モデル $y = X\beta + \varepsilon$ における外生性の条件は次の 3 段階で整理される (強さ順):

(1) 同時的外生性 (contemporaneous exogeneity):

$$E[\varepsilon_i \mid X_i] = 0$$

(2) 厳密な外生性 (strict exogeneity):

$$E[\varepsilon_i \mid X_1, X_2, \ldots, X_n] = 0$$

(3) 弱い外生性 (weak exogeneity):

$$\text{Cov}(X_i, \varepsilon_i) = 0$$

(1) は最強で「$X_i$ が決まれば $\varepsilon_i$ の期待値はゼロ」、 (2) はパネル・時系列で重要で「過去・現在・未来の $X$ すべてを条件付けても誤差期待値ゼロ」、 (3) は最弱で「無相関」のみ。 OLS が一致推定量となるには弱外生性で十分だが、 不偏性には強い条件が必要。

🔬 数式を言葉で読み解く

記号読み意味
$y$ワイ被説明変数 — 説明したい結果 (例: 出生数)
$X$エックス説明変数行列 — 原因と仮定する変数群
$\beta$ベータ回帰係数ベクトル — 因果効果の推定対象
$\varepsilon$イプシロン誤差項 — モデル化されない要因の総和
$E[\cdot \mid X]$条件付き期待値$X$ を固定したときの期待値
$\text{Cov}(X, \varepsilon)$共分散$X$ と $\varepsilon$ の連動度。 ゼロ = 弱外生性
strictストリクト時系列で過去・未来含めて外生 (固定効果モデル前提)

「$X$ を知っても $\varepsilon$ の予測には役立たない」が外生性の本質。 もし $X$ と $\varepsilon$ が連動するなら、 観測された $X$ の変化のうち「$\varepsilon$ 経由の影響」が混じり、 OLS は $\beta$ をバイアスを持って推定する。

🧮 実値で確認する外生性 (SSDSE-B-2026)

SSDSE-B-2026 で「県内人口 (A1101) → 出生数 (A4101)」の回帰を考える。 人口の方が出生数より大きく決まる外生変数と考えてよいか、 が論点。

都道府県人口 (千人)出生数 (人)出生数/人口
東京都1408686,3480.00613
大阪府876355,2920.00631
鳥取県5373,2630.00608
沖縄県146812,5490.00855

単純な OLS では出生数 = 0.0061 × 人口 + 誤差 のような関係 (2023 年) が得られるが、 沖縄のような外れ値 (出生率高め) は誤差項に「県固有の人口構成・婚姻率・移住率」を残す。 これらが人口と同時に決まっている (内生性) と疑う場合、 外生性チェックが必要。

🐍 Python 実装

(1) OLS で残差と説明変数の相関を確認

🎯 このコードでやること: SSDSE-B-2026 の人口 (A1101) で出生数 (A4101) を OLS 回帰し、 残差と説明変数の相関 (理論上ゼロ) を実際にチェックする。

📥 入力データ (SSDSE-B-2026 抜粋):

SSDSE-B-2026 Code 都道府県 A1101(総人口) A4101(出生数) 2023 R13000 東京都 14086000 86348 2023 R27000 大阪府 8763000 55292 2023 R31000 鳥取県 537000 3263 2023 R47000 沖縄県 1468000 12549 …(2023 年・全 47 行)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import pandas as pd
import statsmodels.api as sm

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
df = df[df['SSDSE-B-2026'] == 2023]          # 2023年の47都道府県(横断面)
X = sm.add_constant(df['A1101'])             # A1101: 総人口
y = df['A4101']                              # A4101: 出生数

ols = sm.OLS(y, X).fit()
resid = ols.resid
corr = resid.corr(df['A1101'])
print(f"係数 (人口→出生) : {ols.params['A1101']:.6f}")
print(f"残差と A1101 の相関: {corr:.6f}")

📤 実行例:

係数 (人口→出生) : 0.006104 残差と A1101 の相関: 0.000000

💬 結果の読み方: OLS の構造上、 残差と説明変数の標本相関は厳密にゼロになる (正規方程式の帰結)。 しかしこれは「サンプルで強制される無相関」であり、 真の母集団で $E[\varepsilon|X]=0$ かどうかとは別問題。 外生性を保証するわけではない。

(2) Hausman 検定で内生性を判定

🎯 このコードでやること: linearmodels の IV2SLS 経由で Wu-Hausman 検定 (Durbin-Wu-Hausman) を実行し、 「人口は外生か」を統計的に判定する。 操作変数として「婚姻件数 (A9101)」を利用する。

📥 入力データ: SSDSE-B-2026 の A1101 (総人口)・A4101 (出生数)・A9101 (婚姻件数)。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import pandas as pd
import statsmodels.api as sm
from linearmodels.iv import IV2SLS

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
df = df[df['SSDSE-B-2026'] == 2023]
y = df['A4101']                   # 出生数
endog = df[['A1101']]             # 総人口(内生疑い)
instr = df[['A9101']]             # 婚姻件数(操作変数)

const = sm.add_constant(df[[]])
iv = IV2SLS(y, const, endog=endog, instruments=instr).fit()
print(f"Wu-Hausman 統計量: {iv.wu_hausman().stat:.3f}")
print(f"p 値             : {iv.wu_hausman().pval:.4f}")

📤 実行例:

Wu-Hausman 統計量: 13.998 p 値 : 0.0005

💬 結果の読み方: $p = 0.0005$ で帰無仮説「人口は外生」は棄却される。 ただし後述のとおり OLS と IV の係数はほぼ同値 (0.006104 対 0.006147) で、 実務的な差はごく小さい。 そもそも操作変数に使った婚姻件数は人口と強く相関する一方、 出生数に直接効く可能性が高く排除制約が疑わしいため、 この検定結果は操作変数の質に大きく依存する点に注意。 サンプルサイズ $n=47$ の検出力の低さも併せて考える必要がある。

(3) 残差 vs 別変数の相関で欠落変数バイアスを探る

🎯 このコードでやること: OLS 残差と他の変数 (例: 年平均気温 B4101) の相関を見て、 残差が捉え損ねている系統的要因 (= 欠落変数 = 外生性違反の証拠) があるかを探る。

📥 入力データ: 同 df の B4101 (年平均気温)・A9101 (婚姻件数)・A4200 (死亡数)。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import pandas as pd
import statsmodels.api as sm

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
df = df[df['SSDSE-B-2026'] == 2023]
X = sm.add_constant(df['A1101'])
y = df['A4101']
resid = sm.OLS(y, X).fit().resid

for col in ['B4101', 'A9101', 'A4200']:   # 年平均気温・婚姻件数・死亡数
    r = resid.corr(df[col])
    print(f"残差 × {col}: r = {r:+.3f}")

📤 実行例:

残差 × B4101: r = +0.631 残差 × A9101: r = +0.073 残差 × A4200: r = -0.075

💬 結果の読み方: 残差と年平均気温 (B4101) の相関 $+0.63$ は強く、 「気温を回帰式に入れていないため、 その影響が誤差項に残っている」ことを示す。 実際、 沖縄など温暖な県は人口から予測される値より出生数が多く、 残差が正に大きい。 これは外生性違反 (欠落変数バイアス) のシグナルで、 気温を説明変数に追加すべき。 一方、 婚姻件数・死亡数との残差相関は小さい。

(4) 拡張モデルで残差を再チェック

🎯 このコードでやること: 年平均気温を説明変数に追加した拡張モデルを当てはめ、 残差から気温の相関を取り除けたか確認する。

📥 入力データ: SSDSE-B-2026 から A1101 (総人口)・B4101 (年平均気温)・A4101 (出生数)。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import pandas as pd
import statsmodels.api as sm

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
df = df[df['SSDSE-B-2026'] == 2023]
X = sm.add_constant(df[['A1101', 'B4101']])   # 人口 + 年平均気温
y = df['A4101']

ext = sm.OLS(y, X).fit()
print(ext.summary().tables[1])

resid_ext = ext.resid
for col in ['B4101', 'A1101']:
    print(f"拡張残差 × {col}: r = {resid_ext.corr(df[col]):+.4f}")

📤 実行例:

coef std err t P>|t| const -9167.18 1576.38 -5.82 0.000 A1101 0.0061 6.87e-05 88.15 0.000 B4101 512.63 93.87 5.46 0.000 拡張残差 × B4101: r = +0.0000 拡張残差 × A1101: r = +0.0000

💬 結果の読み方: 拡張後、 残差と両説明変数の相関がゼロに収束。 気温の影響を取り込めた。 気温の係数 $+512.63$ は「年平均気温が 1℃ 高い県ほど年間出生数が約 513 人多い」傾向を示唆 (因果ではなく相関のレベルだが、 外生性条件は満たされやすくなった)。 決定係数も $R^2 = 0.991 \to 0.995$ に改善する。

⚠️ 落とし穴

  1. 「OLS の残差は説明変数と無相関」を外生性の証拠と勘違い: これは正規方程式の数学的帰結であり、 真の母集団における外生性とは無関係。
  2. 外生性は仮定 (assumption) であり統計的に証明できない: 操作変数があれば Hausman 検定で「内生性なし」が示せるが、 操作変数自体の外生性は理論的議論が必須。
  3. 同時性 / 欠落変数 / 測定誤差の見落とし: この 3 要素はいずれも外生性違反の原因。 一つでも該当すれば OLS の不偏性は失われる。
  4. strict vs weak の混同: 時系列・パネルデータでは strict exogeneity が要求される (固定効果モデル前提)。 同時的外生性だけでは足りない。
  5. 「外生 = 独立」ではない: $X$ が他の説明変数とは相関していてもよい (多重共線性は別問題)。 外生性は 誤差項との関係 だけを問題にする。

📚 関連グループ教材・関連用語

前提となる概念:

並列の概念:

発展となる概念:

  • 操作変数法 / 2SLS
  • 差分の差分 (DID) / 回帰不連続
  • RCT (ランダム化試験) — 外生性を実験で確保する究極の方法

📚 グループ教材:

  • 内生性 — 外生性違反の上位概念
  • 因果推論 — 外生性は因果推定の核心前提
  • 相関と因果 — 「相関 ≠ 因果」を実データで体験する基準ページ

💡 30秒で分かる結論 — 外生性

🍰 まずはやさしく

外生性は、データの純粋さを表す指標です。

正しい因果関係を見つけるために使います。

勉強時間とテストの点数の関係を調べる時に必要です。

この章では、外生性の結論と対策について読みます。

最も忙しい読者のために、 まず結論だけまとめます。 詳細は以下のセクションへ:

📍 文脈 — どこで出会うか

🍰 まずはやさしく

外生性は、分析の出発点となるルールです。

データから本当の影響を測るために使います。

塾に通うことと成績の関係を考える時に出会います。

この章では、外生性がどこで使われるかを読みます。

大分類内の位置:外生性は 計量経済学 / 因果推論 の最も基本的な前提条件で、 回帰分析 の Gauss–Markov 仮定の一つ「説明変数と誤差項の無相関」に相当します。 観察データから因果効果を推定する全ての手法の出発点。

直近上位概念因果推論 / 最小二乗法(OLS) / Gauss–Markov 仮定。 並列概念に 無視可能性 (ignorability)条件付き独立性、 違反時の対処として 操作変数法 / DID / 傾向スコア が並ぶ。

代表的な遭遇場面:「教育年数が長いと年収が上がる」 — でも教育年数自体が「家庭の経済力」と相関。 単純な OLS で出た係数は 教育の純効果ではなく 家庭環境の影響混じり。 これが内生性の典型例。 政策評価・薬効評価・マーケティング効果測定など、 「X を変えたら Y はどう動くか」を問う全ての場面で外生性チェックが必須。

次に読む章のガイド🎨 直感 で「なぜ独立性が因果解釈に必要か」を絵で掴み、 📐 数式 で条件付き期待値ゼロを定式化、 🧮 実値で計算 で SSDSE-B-2026 都道府県データに欠落変数を入れ込み係数バイアスを観察、 🐍 Python で statsmodels の OLS と IV2SLS を比較、 最後に ⚠️ 落とし穴 で実務的な見落としを潰します。

このページの読み方:まず 30秒結論直感 を読み、 必要に応じて 数式計算例落とし穴 に進んでください。

🎨 直感で掴む

🍰 まずはやさしく

外生性は、実験室の清潔さのようなものです。

純粋な効果だけを抜き出すために使います。

スマホの利用時間と睡眠時間の関係で考えます。

この章では、外生性のイメージを絵で読みます。

「外生」とは「外から与えられた」 ≒ モデル外で決まった、 という意味。

逆に、 X が ε と相関している(内生)と、 β は X 自体の効果と ε に含まれる効果の合算になり、 解釈不能。

🎨 直感で掴む — 外生性は「実験室の清潔さ」

外生性 (Exogeneity) を一言で言うと、 説明変数 $X$ が 誤差項 $\varepsilon$ と無関係であること。 化学実験で「容器が清潔か」を担保するのと同じくらい根本的な前提条件。 容器が汚れていたら何を測っても解釈不能になるように、 外生性が破れていたら回帰係数は因果効果を反映しません。

なぜ外生性がないと困るか

SSDSE-B-2026 から「県人口 $X$ → 出生数 $Y$」の回帰モデル $Y = \beta_0 + \beta_1 X + \varepsilon$ を考えます。 $\beta_1$ は「人口が 1 万人増えると出生数が何人増えるか」の期待値。 しかし、 もし誤差項 $\varepsilon$ に 未観測の経済水準が紛れ込んでいて、 それが人口とも相関していたら、 推定された $\hat\beta_1$ は「人口の純粋効果」ではなく「人口 + 経済水準の混合効果」を反映してしまう。 これが 欠落変数バイアス (Omitted Variable Bias, OVB) です。

外生性の状態 $E[\varepsilon|X]$ OLS 推定量 因果解釈
完全外生$= 0$不偏・一致○ 因果効果
弱外生$\neq 0$ だが直交一致 (大標本)△ 注意要
内生 (外生性破れ)$\neq 0$バイアス含む× 相関のみ

特に重要なのは 「外生性は仮定であり、 データから完全に検証できない」こと。 統計的検定 (Hausman 等) は 道具変数の有効性を前提にしているため、 究極的にはドメイン知識と研究デザインで担保する必要があります。

📐 定義・数式

🍰 まずはやさしく

外生性は、数式で表した独立な状態のことです。

計算結果が正しいかを判断するために使います。

部活の練習量と試合結果を数式にする時に使います。

この章では、外生性の定義と数式について読みます。

【外生性の数学的定義】
$$E[\varepsilon | X] = 0 \quad \text{(strict exogeneity)}$$
説明変数 $X$ で条件付けた誤差項 $\varepsilon$ の期待値がゼロ
【弱外生性】
$$\text{Cov}(X, \varepsilon) = 0$$
$X$ と $\varepsilon$ が無相関であれば OLS は一致推定量

$y = \beta X + \varepsilon$ のとき、 外生性が成立すれば $\hat{\beta}_{\text{OLS}} \to \beta$(n → ∞)。

📐 数式 — 外生性の 3 レベル

時系列・パネルデータでは、 外生性は 3 つの強度レベルで区別されます:

$$ \text{Contemporaneous (同時点外生)}: \quad E[\varepsilon_t \mid X_t] = 0 $$

$$ \text{Strict (狭義外生)}: \quad E[\varepsilon_t \mid X_1, X_2, \ldots, X_T] = 0 \quad \forall t $$

$$ \text{Predetermined (事前決定)}: \quad E[\varepsilon_t \mid X_1, \ldots, X_t] = 0 $$

クロスセクション (横断面) データでは通常 Contemporaneous 外生性で議論。 時系列・パネルでは Strict が要求される場面 (Fixed Effects) もあり、 区別が必須です。

数式を言葉で読み解く

SSDSE-B-2026 は 2023 年単年のクロスセクションなので、 通常は Contemporaneous 外生性のみ議論。 ただし「過去年度との比較」など時系列要素を含む解析では Strict が要求されます。

🔬 記号・要素の読み解き

$X$(説明変数)
モデルで原因と扱う変数。
$\varepsilon$(誤差項)
モデルに含まれない要因の集合。 観測されないノイズ+欠落変数。
$E[\varepsilon | X] = 0$
「X がどんな値でも、 ε の平均は 0」 — X が ε の情報を含まない。
欠落変数バイアス
真に重要な変数 Z をモデルから外すと、 Z が ε に潜り込み、 X と ε が相関。
逆因果
本当は y → X なのに X → y と推定。 価格と需要のように同時決定。
測定誤差
X 自体が誤差付き観測値だと、 推定された β は減衰(attenuation bias)。

🧮 実値で計算してみる

SSDSE-B で「保健医療費 → TFR」を推定する場面:

🧮 実値で確認 — SSDSE-B-2026 で外生性破れの例

SSDSE-B-2026 で「県人口 → 出生数」の単回帰を考えると、 表面的には強い正の相関が出ます。 しかし、 ここに 外生性の破れが潜んでいます。 隠れた共変量と回帰係数の変化を見ます:

モデル 含める変数 $\hat\beta$ (A1101) 標準誤差 解釈
M1: 単回帰A1101 のみ0.0061040.0000870.9909人口 1 万増 → 出生 61 人増
M2: + 出生率A1101, A41030.0063780.0000780.9952係数増 → OVB あり
M3: + 子供人口A1101, A4103, A13010.0027630.0008600.9966係数激減 → 共線性 + OVB
M4: + 婚姻件数A1101, A4103, A1301, A9101-0.0019980.0005600.9993符号反転・有意

この表が示すのは、 「単回帰の係数は外生性破れによって過大評価されていた」こと。 M1 で「人口 1 万増 → 出生 61 人増」は 因果効果ではなく、 子供人口・婚姻件数といった媒介変数を含む合成効果。 実際、 子供人口・婚姻件数を制御すると人口係数は M4 で符号が反転する。 因果効果として読みたいなら M3 や M4 のように 制御変数を入れる必要があります。 ただし変数を増やしすぎると共線性で標準誤差が増大し別の問題が発生する点に注意。

🧮 弱・強・超外生性の 3 区分と Hausman 検定(補論)

Engle, Hendry & Richard (1983) は外生性を 3 段階に分けた。 用途(推定 / 予測 / 政策分析)によって必要な外生性レベルが異なる:

区分定義必要な用途
弱外生性 (weak)$x$ の周辺分布が関心パラメータ $\theta$ を含まない構造パラメータの推定・推論
強外生性 (strong)弱外生性 + Granger 非因果性 ($y$ が $x$ に影響しない)条件付き予測(先読み)
超外生性 (super)強外生性 + 周辺分布の構造変化が関心パラメータを変えない政策介入分析(Lucas 批判への対抗)

数式を言葉で読み解く: 同時分布 $p(y,x|\theta) = p(y|x,\theta_1) \cdot p(x|\theta_2)$ と分解できるとき、 関心パラメータ $\theta_1$ について $\theta_2$ が直交(変分自由)なら弱外生性。 さらに $y$ の過去が $x$ の予測に役立たなければ強外生性。 政策で $\theta_2$ を動かしても $\theta_1$ が安定なら超外生性。

Hausman / Wu-Hausman 検定の定式化

Hausman 検定は「OLS 推定量 $\hat\beta_{OLS}$ と IV 推定量 $\hat\beta_{IV}$ の差が偶然か」を判定する。 帰無仮説は「説明変数は外生」:

$$ H = (\hat\beta_{IV} - \hat\beta_{OLS})' [V(\hat\beta_{IV}) - V(\hat\beta_{OLS})]^{-1} (\hat\beta_{IV} - \hat\beta_{OLS}) \sim \chi^2_k $$

解釈: $H_0$: 外生 → OLS と IV はどちらも一致推定量で、 差は偶然 → $H \approx 0$。 $H_1$: 内生 → OLS は不一致、 IV のみ一致 → 差が有意に大きく $H$ も大きい。 棄却なら IV を採用、 不棄却なら効率的な OLS を採用。

🐍 SSDSE-B-2026 で Wu-Hausman 外生性検定を実行

🎯 このコードでやること: SSDSE-B-2026 で「人口(A1101)が出生数(A4101)に与える効果」を IV2SLS.from_formula で推定し、 Wu-Hausman 検定で説明変数の外生性を判定する。 操作変数は「婚姻件数(A9101)」を用いる。

📥 入力データ(SSDSE-B-2026 抜粋・2023 年):

Code prefecture A1101(総人口) A4101(出生数) A9101(婚姻件数) R13000 東京都 14086000 86348 71774 R27000 大阪府 8763000 55292 38513 R31000 鳥取県 537000 3263 1810 R47000 沖縄県 1468000 12549 6316
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import pandas as pd
from linearmodels.iv import IV2SLS

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
df = df[df['SSDSE-B-2026'] == 2023]

# 出生数(A4101) を 人口(A1101, 内生疑い) + 婚姻件数(A9101, IV) で推定
res = IV2SLS.from_formula(
    'A4101 ~ 1 + [A1101 ~ A9101]', data=df
).fit(cov_type='robust')

print('Wu-Hausman:', res.wu_hausman())
print('First stage F:', res.first_stage.diagnostics)

📤 実行例:

Wu-Hausman: stat=13.998, p=0.0005 → 外生性帰無を棄却 First stage F: 251.96 (A1101 on A9101) → 強い IV OLS β(A1101 on A4101) = 0.006104 2SLS β(A1101 on A4101) = 0.006147 → 差はごく小さい

💬 結果の読み方: Wu-Hausman p=0.0005 で外生性帰無を統計的に棄却する。 だが OLS と 2SLS の係数はほぼ同値(0.006104 対 0.006147、 差 0.7% 程度)で実務的な差は小さい。 first-stage F=252 と IV 自体は強い。 ただし「婚姻件数が人口を通じてのみ出生数に影響」という除外制約は明らかに疑わしく(婚姻は出生に直接効く)、 この検定の解釈は操作変数の質に依存する。 検定の棄却だけで「内生」と即断せず理論的根拠と併せて判断する。

⚠️ 外生性検定の限界

📝 理解度チェック — 外生性を自分で診断できるか

ここまで「外生性とは何か」「破れたときに何が起きるか」「実データでどう検定するか」を順番に追いかけてきた。 だがコンセプトを 「読んで分かった」 と、 自分のプロジェクトで 「条件違反を疑える」 の間には大きな距離がある。 以下の問題群は、 SSDSE-B-2026 や日常的な業務データを題材に「外生性が成立しているか/破れているか」を 自分の言葉で説明できるか を確かめるためのものである。 各問題は (1) ヒント、 (2) 模範解答、 (3) よくある誤答 の 3 段構成で、 解答前に必ずヒントを 30 秒読んで自分なりの仮説を立ててから模範解答を見てほしい。 自力で 60% 以上正答できたら、 用語ページ単位の理解は十分と言える。 そこから先は 内生性操作変数差分の差分 など実装手法に進む段階となる。

Q1. 「アイスの売上 ~ 気温」の回帰で気温は外生か?

ヒント: 「外生」とは「気温が、 売上 (= y) や売上の誤差項 ε から影響を受けず、 外から決まっている」状態。 気温は誰が決めているか考えてみよう。 気象は人間の市場行動と独立か、 連動しているか。

模範解答: 外生と扱える。 気温は太陽放射・大気循環・季節など、 アイスの売上 (y) や売上の誤差項 (顧客の好み、 セール実施有無、 競合動向) からは独立に決まる気象現象である。 短期的な逆方向 (アイスの売上が上がると気温が上がる) はあり得ない。 厳密には地球温暖化のような長期トレンドで「消費活動 → CO2 → 気温」という超長期の逆因果は存在するが、 日次・週次の回帰では無視してよい。 ゆえに $E[\varepsilon \mid \text{気温}] = 0$ が成り立ち、 OLS が一致推定量を与える。

よくある誤答: 「気温と売上には強い相関があるので内生」。 — 相関の強さは外生性とは無関係である。 外生性は「説明変数と 誤差項」の関係を問うもので、 説明変数と被説明変数の関係 (= 強い因果) ではない。 むしろ強い因果がある変数こそ、 外生であってほしい変数である。

Q2. 「賃金 ~ 教育年数」の回帰で教育年数は外生か?

ヒント: 教育年数を決めるのは誰か。 個人の意思決定 (進学する/しない) には何が影響しているか。 観測されない「能力」「家庭環境」「向上心」は賃金 (y) にも、 教育年数選択にも効くだろうか。

模範解答: 内生。 教育年数は「個人の能力」「家庭の経済状況」「両親の学歴」「居住地域」など、 誤差項に潜む観測されない要因と強く連動する。 とくに「能力」は賃金 y にも直接影響し、 教育選択にも影響する 交絡因子。 よって $\text{Cov}(\text{教育年数}, \varepsilon) \neq 0$ となり、 単純な OLS では教育の収益率を過大評価する (Ability bias)。 対策は (a) 能力指標 (IQ・職能テスト) を共変量に追加、 (b) 双子データで遺伝・家庭環境を一定化、 (c) 義務教育法改正を 操作変数 として 2SLS、 など。

よくある誤答: 「教育年数は本人の選択だから外生」。 — 「人間が選んだ変数」と「外生変数」を混同している。 むしろ人間の選択が入る変数は、 選択動機が誤差項に紛れ込みやすく 内生になりがち。 ランダム化実験で割り付けられた変数だけが「設計上の外生性」を持つ。

Q3. 「消費支出 (L3221) ~ 人口 (A1101)」の人口は外生か?

ヒント: 県の人口は何で決まるか。 自然増 (出生 − 死亡) と社会増 (流入 − 流出) で決まる。 社会増は雇用機会、 賃金、 産業構造に依存し、 これらは県の経済活動 (消費支出などに表れる) と同時に決まる。 雇用機会の地域差は誤差項に入るだろうか。

模範解答: 弱く内生。 短期的には人口は出生・死亡・移住で決まり、 消費支出は人口と相関する経済活動から決まる。 だが (a) 「経済活動の活発な県に人が流入する」逆因果、 (b) 「両者を決める産業構造・地理的優位」という 欠落変数、 が混在する。 Hausman 検定で内生性を診断するか、 「県面積」「明治期の人口」など長期間動かない外生 IV を使うのが王道。 ただし本ページの実践例で見たように、 47 都道府県という小サンプルでは検定力が弱く、 棄却されないからといって「外生」とは言い切れない。 理論的根拠で内生を疑う姿勢が常に必要。

よくある誤答: 「Hausman 検定が p=0.27 で棄却されなかったから外生」。 — 不棄却は「外生の証拠」ではなく「内生の証拠が見つからなかった」に過ぎない。 とくに $n=47$ のような小サンプルでは検定力が低く、 第二種の過誤を犯しやすい。 検定結果と理論的根拠の両方で判断する。

Q4. 厳密外生性 (strict exogeneity) はいつ必要になるか?

ヒント: 「過去・現在・未来」すべての X を条件付けて誤差期待値ゼロ、 という条件は、 どんなときに「現在の X だけでは不十分」になるか。 ラグ付き従属変数や自己回帰モデルを考えてみよう。

模範解答: パネルデータの固定効果モデルと時系列の AR モデルで必要。 (a) 固定効果モデルでは個体内変動を使うため、 過去 X が現在 ε に効くと within 変換でバイアスが残る (Nickell bias)。 (b) AR モデル $y_t = \rho y_{t-1} + \varepsilon_t$ では、 $y_{t-1}$ は過去の $\varepsilon$ の影響を含むので、 strict exogeneity は構造上満たせない。 これらでは「弱外生性 + ラグ条件」「GMM 推定 (Arellano-Bond)」など特殊な手法が必要となる。 横断面 OLS では弱外生性で十分なため、 strict exogeneity の議論は不要。

よくある誤答: 「OLS には常に厳密外生性が必要」。 — 横断面 OLS の一致性には弱外生性 ($\text{Cov}(X,\varepsilon)=0$) で十分。 厳密外生性は時系列・パネルで「過去の予測誤差が現在の X に影響しない」ことを保証するための強条件である。

Q5. 外生性が破れたとき、最も汎用な対策はどれか?

ヒント: 内生性対策には (a) 操作変数法 (IV)、 (b) 差分の差分 (DID)、 (c) 回帰不連続デザイン (RDD)、 (d) 固定効果モデル、 (e) ランダム化実験 がある。 それぞれ「想定する内生性源」と「データ要件」が異なる。 どれが万能か?

模範解答: 「万能」はない。 各手法は「特定の内生性源」を解消するもので、 IV は「除外制約 (IV が y に X 経由でのみ効く)」、 DID は「平行トレンド」、 RDD は「カットオフ周辺で他要因が連続」、 FE は「個体固定の交絡のみ」、 RCT は「実装可能性とコスト」が前提となる。 そして「外生性が破れていることが直接観測できない」のが内生性問題の核心。 ゆえに 複数の手法で同じ係数推定値が得られるか をクロスチェックするのが王道。 単一手法に頼った因果主張は信頼性が低い。

よくある誤答: 「IV 法を使えば必ず内生性は解決」。 — IV 自体が「除外制約」を満たしていることは検証困難で、 弱い IV は OLS より 悪い 推定をもたらす (Bound-Jaeger-Baker)。 First-stage F>10、 Sargan over-id test、 そして理論的に除外制約が成り立つ説明、 の三点セットで初めて IV が信用できる。

Q6. 外生性の「強さ」「弱さ」を順に並べると?

ヒント: (a) 弱外生性、 (b) 同時的外生性、 (c) 厳密外生性、 (d) 超外生性 — 4 段階を、 条件の強さ順に並べてみよう。

模範解答: 弱い順に 弱外生性 ⊂ 同時的外生性 ⊂ 厳密外生性 ⊂ 超外生性。 (a) 弱外生性: $\text{Cov}(X_i, \varepsilon_i) = 0$ のみ。 一致性に十分。 (b) 同時的外生性: $E[\varepsilon_i \mid X_i] = 0$。 弱外生性より強い。 (c) 厳密外生性: $E[\varepsilon_i \mid X_1,\ldots,X_n] = 0$。 全期間の X を条件付け。 時系列・パネルで必要。 (d) 超外生性 (super exogeneity): 構造変化があってもパラメータが不変。 政策シミュレーションで必要。 強い条件ほど多くの分析手法を許すが、 現実には満たすのが困難。

よくある誤答: 「厳密外生性と超外生性は同じ」。 — 厳密外生性は「期待値ゼロ条件」、 超外生性は「構造変化下のパラメータ不変性」で全く別物。 とくに政策評価 (Lucas critique 文脈) では超外生性が決定的に重要となる。

Q7. ランダム化実験は本当に外生性を保証するか?

ヒント: RCT の理論上の長所は「処置変数 X が研究者のコイン投げで決まるので、 X が他の何にも依存しない」こと。 だが実装上、 何が起きると外生性が崩れるか。 「コンプライアンス」「脱落」「処置波及」を考えてみよう。

模範解答: 「割り付け」は外生だが、「実際に受けた処置」は内生になりうる。 (a) 不完全コンプライアンス: 処置群でも実際に処置を受けない人 (non-take-up) や、 統制群でも処置を受ける人 (always-takers) が出ると、 受けた処置自体は自己選択を含み内生化する。 ITT (intention-to-treat) 分析 = 割り付けで分析、 が外生性を保つ王道。 (b) 差別的脱落: 処置群だけ脱落率が高いと観測サンプルが内生選択される。 (c) SUTVA 違反: ワクチン実験で「処置群が免疫を持つと統制群も恩恵を受ける」など、 処置の波及があると割り付け自体の意味が崩れる。 RCT の外生性は「設計が完璧に守られた場合」の理想であり、 実装上の脱線リスクは常に存在する。

よくある誤答: 「RCT なら外生性は常に成り立つので分析は単純な OLS でよい」。 — 不完全コンプライアンスや脱落バイアスがある現実の RCT では、 受けた処置で回帰すると内生性が復活する。 ITT が安全側の分析。

📊 図で見る外生性 — 3 つの視覚化

外生性は「説明変数 X と誤差項 ε の関係」を問うので、 直接プロットすることはできない (ε は理論上の量で観測できない)。 だが「OLS の 残差 $\hat\varepsilon = y - X\hat\beta$ を ε の代用として描けば、 外生性の崩れを 視覚で 検出できる」。 ここでは SSDSE-B-2026 の県別データ (47 件) で OLS 残差を計算し、 (1) 残差と説明変数の散布図、 (2) 残差の分布、 (3) 群別残差箱ひげ、 の 3 種類の図を観察する。 図はすべて実データから生成された汎用テンプレートで、 細部は外生性以外の文脈でも使うが、 ここでは「外生性チェック視点」で読み直すのがポイント。

図 1. 残差 vs 説明変数の散布図 — 外生性の最重要視覚診断

残差と説明変数の散布図 — 外生性視覚診断テンプレート

読み方: 横軸に説明変数 $X$、 縦軸に OLS 残差 $\hat\varepsilon$ を取って散布図を描く。 外生性が成り立つなら「点群が水平軸 0 を中心にランダムに散る」。 線形傾向や曲線傾向、 分散の拡大 (ファン形状) が見えたら、 外生性の何らかの破れ — 非線形性・モデル誤特定・heteroskedasticity — を疑う。 とくに残差と $X$ に 明確な傾き が見える場合は、 重要な説明変数の欠落 (omitted variable) を示す。 本図は汎用 SSDSE-B-2026 二変数の例だが、 同じ手法で自分のデータでも残差プロットを描いてみると、 外生性違反のシグナルを早期発見できる。

外生性視点での解釈ガイド:

図 2. 残差の分布 (ヒストグラム) — 誤差項の正規性チェック

残差ヒストグラム — 誤差項の分布診断テンプレート

読み方: OLS 残差 $\hat\varepsilon$ のヒストグラムを描き、 釣鐘型に近いか、 中央が 0 付近かを確認する。 外生性の核心条件 $E[\varepsilon \mid X] = 0$ の必要条件として「無条件期待値 $E[\varepsilon] = 0$」がある (これは定数項を含めれば自動的に成立する)。 ヒストグラムの中心が大きく 0 からずれていれば、 計算ミスかモデル特定の問題。 また分布が著しく非対称・多峰なら、 残差に「観測できない群構造」が潜む可能性。 厳密にはガウス分布である必要はなく (大標本では中心極限定理が効く)、 「中心 0・単峰・極端な歪みなし」が外生性の 必要だが十分でない 条件。

外生性視点での解釈ガイド:

図 3. 群別残差の箱ひげ — 群ダミー欠落の検出

群別残差の箱ひげ — 固定効果欠落の検出テンプレート

読み方: データを「群」(例: 地方区分・産業区分・年度) で分け、 各群内の残差 $\hat\varepsilon$ の箱ひげ図を並べる。 外生性が成り立つなら、 すべての群で中央値が概ね 0 で、 ばらつきも似通うはず。 群ごとに中央値が大きくずれる (例: ある群だけ残差が systematically + 方向) なら、 その群を識別する「群ダミー変数」を回帰式に追加すべき。 これを怠ると群効果が誤差項に流れ込み、 群と相関する他の説明変数の係数が偏る (典型的な欠落変数バイアス)。 SSDSE-B-2026 のような都道府県データでは、 「地方区分 (北海道・東北・関東・…)」「人口規模クラス」「政令市の有無」などで群ダミーを試すのが定番。

外生性視点での解釈ガイド:

💡 3 図セットの効用: 残差散布図 (図 1) は 非線形性・heteroskedasticity、 残差ヒストグラム (図 2) は 定数項問題・外れ値、 群別箱ひげ (図 3) は 欠落群効果 をそれぞれ検出する。 一つの図だけでは外生性違反の 一部のシグナル しか拾えない。 3 図を必ずセットで描くのが内生性疑いの初動診断の鉄則。 視覚診断で疑念が残れば、 続いて Hausman 検定や RESET 検定など formal な検定を行う。

🔍 さらに深掘り — 外生性の周辺概念と歴史

外生性概念の歴史的展開

外生性 (exogeneity) という言葉は、 1930 年代の同時方程式モデル (simultaneous equations model) 研究の中で登場した。 Cowles Commission (1940 年代-1950 年代) が「需要曲線と供給曲線の同時推定」を本格的に研究する中で、 「価格と数量はどちらも市場で同時決定されるため、 OLS では一貫推定できない」という問題が定式化された。 ここから操作変数 (IV)、 2 段階最小二乗 (2SLS)、 3SLS、 限定情報最尤 (LIML) といった内生性対策手法が開発される。 外生性は「内生性 (endogeneity) の補集合」として明確になった。

1980 年代に Engle, Hendry, Richard (1983) が「Exogeneity」論文で、 外生性を 弱外生性 (weak)・強外生性 (strong)・超外生性 (super) の 3 段階に整理した。 これは「どの分析目的に対して外生か」を区別する画期的整理で、 (a) 弱外生性: パラメータ推定に十分、 (b) 強外生性: 予測 (forecasting) に十分、 (c) 超外生性: 政策シミュレーションに十分、 と階層化された。 とくに超外生性は Lucas critique (1976) — 「政策変更によりパラメータ自体が変わるなら、 過去データの推定は意味を失う」 — への応答であり、 政策評価の妥当性を担保する核心概念となっている。

2000 年代以降、 因果推論 (causal inference) の文脈で「外生性」と「無交絡 (unconfoundedness)」「条件付き独立性 (conditional independence)」が並列概念として議論される。 Rubin の潜在結果モデルでは「処置 $T$ と潜在結果 $Y(0), Y(1)$ が共変量条件付きで独立 ($T \perp\!\!\!\perp Y(0), Y(1) \mid X$)」が外生性の現代的表現となる。 計量経済学・統計学・疫学の分野で表記は異なるが、 「説明変数 (or 処置) と観測されない要因が独立」という核心は共通している。

外生性と無交絡 — 用語の使い分け

分野用語中心概念
計量経済学外生性 (exogeneity)$\text{Cov}(X, \varepsilon) = 0$ または $E[\varepsilon \mid X] = 0$
統計学 (Rubin)無交絡 / 強無視可能性$T \perp\!\!\!\perp Y(0), Y(1) \mid X$
疫学非交絡 (no confounding)処置と結果に共通原因がない
機械学習条件付き独立性$X \perp\!\!\!\perp Z \mid Y$
DAG / Pearlバックドア基準バックドアパスを共変量で遮断
エコノメトリクス (DAG)d-分離グラフ理論的独立性

表のように、 「説明変数と観測されない要因が独立」という核心は分野共通だが、 表記・形式化の仕方が異なる。 (a) 計量経済学は「誤差項 ε との共分散」、 (b) 統計学は「潜在結果との独立」、 (c) DAG は「バックドアパスの遮断」と表現する。 どれも本質は同じだが、 形式化の違いが分野間で議論を不毛にしがち。 計量経済学者と統計学者が「外生性 vs 無交絡」で同じデータについて議論するとき、 表記の翻訳が必要となる。

外生性違反の典型 4 パターン

パターン原因対策
欠落変数バイアスX にも y にも効く要因 Z を回帰式に含めていないZ を観測して共変量に追加、 IV、 FE モデル
逆因果y → X の因果が存在 (本来の x → y と逆)ラグ付き X、 IV、 時系列の Granger 因果性
測定誤差X が観測誤差を含む (true X ≠ observed X)SEM、 IV、 反復測定の平均
同時方程式x と y が市場・ゲームで同時決定2SLS、 3SLS、 構造推定
選択バイアスサンプル抽出が y の値に依存Heckman 2 段階、 IPW
処置波及処置群への介入が統制群にも影響 (SUTVA 違反)空間的に隔離した実験、 クラスター RCT

外生性違反の 典型 6 パターン を表にした。 (a) 欠落変数 はもっとも頻繁で、 おおむねすべての観察データに潜む。 (b) 逆因果 は経済・社会データで多発し、 時系列でのラグ構造の検証が鍵。 (c) 測定誤差 はアンケートデータで深刻で、 反復測定や複数尺度の平均で緩和。 (d) 同時方程式 は市場・ゲーム理論データの核心問題。 (e) 選択バイアス は観測サンプルが結果に依存 (例: 「成功した起業家のみ調査」)。 (f) 処置波及 はワクチン・教育介入で重要。 自分のデータで「どのパターンが疑われるか」を意識し、 対応する手法を選ぶのが内生性対策の流儀。

外生性検定の系譜

検定対象前提特徴
Hausman 検定弱外生性有効 IV ありOLS と IV の係数差で判断
Durbin-Wu-Hausman弱外生性有効 IV あり残差を補助回帰に追加
RESET 検定関数形誤特定なし残差を $\hat y^2, \hat y^3$ で回帰
Sargan 検定過剰識別の IVIV 過剰識別IV 群の妥当性
Hansen J 検定過剰識別の IVGMM 推定下heteroskedasticity-robust
Granger 因果性検定逆因果時系列データラグ X の予測力を検定

外生性検定は 「IV あり前提」と「IV なし」 で大きく分かれる。 Hausman 系は有効な IV があれば「IV と OLS の係数差」で内生性を診断、 RESET 検定は IV 不要だが関数形誤特定のみ検出、 Granger 因果性検定は時系列での逆因果のみ対象。 万能な「外生性検定」は存在しないので、 疑う内生性源に応じて検定を選ぶ。 そして検定結果の解釈には常に サンプルサイズに対する検定力 を意識し、 「不棄却 ≠ 外生」と理解する慎重さが必要。

外生性と DAG (Directed Acyclic Graph)

Pearl の DAG 理論では、 外生性を 「バックドアパスがない」 と幾何学的に表現する。 興味のある因果 $X \to Y$ について、 X から Y へ X の矢印に逆らって出発し Y に到達するパス (= バックドアパス) が存在しなければ、 X は Y に対して外生 (= identifiable な因果効果が得られる)。 もしバックドアパスがあれば、 パス上の中間変数 $Z$ を共変量として条件付ければバックドアパスが 遮断 され、 「条件付き外生性」が成立する。 これを バックドア基準 と呼ぶ。

DAG の利点は「外生性が成り立つかを 視覚的に 判断できる」こと。 例: $X \to Y$ かつ $Z \to X, Z \to Y$ (= Z が交絡因子) の場合、 バックドアパスは $X \leftarrow Z \to Y$。 Z を共変量に追加すれば遮断され、 X は条件付きで外生。 一方、 $X \to Y \to Z$ で Z を 追加 すると逆に外生性が破れる (collider バイアス) ことが DAG で明示的に分かる。 これは「変数を多く追加するほど正確になる」という直感に反する重要な教訓。

🎯 外生性のチェックリスト — 自分の分析で確認すべき 10 項目

最後に、 回帰分析や因果推論を行う際に「外生性が成り立つか」を自己診断するチェックリストを示す。 各項目に「YES」と答えられれば外生性の前提は強化される。 「NO」「不明」が多いほど、 観察データに基づく因果主張のリスクは高い。 用語ページとしての締めくくりとして、 ぜひ自分の分析プロジェクトで使ってほしい。

#チェック項目対応する違反パターン
1説明変数 X は「結果 y よりも先に」決まる量か?逆因果
2X に影響する観測されない要因 Z が y にも影響しないか?欠落変数バイアス
3X の測定誤差は無視できるほど小さいか?測定誤差バイアス
4X と y は「市場・ゲーム」で同時決定されていないか?同時性
5サンプル抽出は y に依存していないか?選択バイアス
6残差 vs X の散布図でランダム分布か? (図 1 を確認)関数形・heteroskedasticity
7残差ヒストグラムが中心 0 で単峰か? (図 2 を確認)モデル誤特定
8群別残差が systematically 偏っていないか? (図 3 を確認)欠落固定効果
9Hausman/RESET 検定で内生性が示唆されていないか?統計的検定
10DAG を描いて X → y のバックドアパスを確認したか?因果同定性

使い方: 分析開始前にこのチェックリストを通読し、 各項目で「YES と答えられる根拠」を文書化する。 「NO」「不明」になった項目は 分析の制約事項 としてレポートに明記し、 「もし外生性が破れていたら係数推定はどちらに偏る可能性が高いか」を符号付きで議論する。 これにより、 観察データに基づく因果主張の 妥当性の限界 を読者と共有できる。 査読者・上司・政策決定者は「弱点を隠した分析」より「弱点を明示した分析」の方を信頼する。

関連語の再確認: 内生性 / 操作変数 / OLS / 同時性 / 交絡因子 / 欠落変数 / 逆因果関係 / 測定誤差 / 差分の差分 / 回帰不連続デザイン / 固定効果モデル / ランダム化比較試験 / Hausman 検定 / 因果関係 / 相関

📖 ケーススタディ — 歴史的な外生性論争

外生性は理論上の概念にとどまらず、 計量経済学・疫学・教育学の歴史で 「ある研究の結論が信頼できるか」 をめぐって繰り返し論争を巻き起こしてきた。 以下では教育経済学・労働経済学・公衆衛生で有名なケースを取り上げ、 「外生性をどう確保/検証したか」を実証研究のレベルで振り返る。 これらのケースを学ぶことで、 自分の分析で「外生性のリスクをどう開示するか」のセンスが身につく。

ケース 1: 教育の収益率 (Card, 1995)

David Card は教育年数が賃金に与える効果 (= 教育の収益率) を推定したが、 教育年数は典型的な内生変数 (能力・家庭環境が交絡)。 Card は「大学の地理的近さ」を 操作変数 として採用 — 「家の近くに大学があると進学しやすい」「大学の場所は本人の能力とは無関係」という argument。 OLS では教育の収益率が 7-8% と推定されたが、 IV (大学近さ) を使うと 13-15% と 高く 出た。 この差は「能力バイアスは下向き」(高能力者は早く労働市場に出る) という仮説を支持し、 教育経済学の代表的な実証研究となった。 ただし「大学の近さが本当に本人の賃金能力と無関係か」(地域経済の影響など) は今も論争中で、 IV 自体の外生性検証は別の重い課題となっている。

ケース 2: スモーキング & 肺がん (Doll-Hill, 1950)

喫煙と肺がんの因果関係は、 観察データのみで「喫煙者ほど肺がん発症率が高い」という相関は明白だが、 「喫煙が原因か、 喫煙と肺がんに共通する遺伝的素因 (= 交絡因子) があるのか」が長年議論された。 Doll-Hill のコホート研究 (英国医師調査) は数万人を 50 年追跡し、 (a) 用量反応関係 (本数が多いほど発症リスク高い)、 (b) 時間順序 (喫煙開始 → 発症)、 (c) 禁煙効果 (止めると徐々にリスク低下) を示し、 「遺伝的素因のみでは説明不可能」と結論。 ランダム化不可能 (倫理的に喫煙を割り当てられない) な事例で、 外生性を 多角的証拠 で間接的に確立した古典的研究。 この結論を覆そうとした統計学者 Ronald Fisher の論争は、 内生性疑念をどう退けるかの方法論論争として今も読み継がれている。

ケース 3: ミニマム賃金の雇用効果 (Card-Krueger, 1994)

古典経済学は「最低賃金引き上げは雇用を減らす」と予測する。 Card と Krueger は、 ニュージャージー州 (1992 年に最低賃金引き上げ) とペンシルベニア州 (引き上げなし) のファストフード店の雇用変化を 差分の差分 法で比較し、 「最低賃金引き上げが雇用を減らすという証拠はない」と発表。 この研究の 外生性論 の核心は「2 州の経済トレンドが平行 (= 介入がなければ同じ変化をたどる)」という仮定。 反対派は「2 州のトレンドが事前から異なる」と批判し、 サンプル設計や測定方法を巡る論争が 10 年続いた。 結果として、 差分の差分法における「平行トレンド仮定」が外生性の代用条件として確立し、 ミニマム賃金研究は 因果推論手法の進歩 を促した。

ケース 4: ベトナム戦争徴兵抽選 (Angrist, 1990)

Joshua Angrist は「兵役が生涯所得に与える効果」を、 ベトナム戦争時の 徴兵抽選番号 (Draft Lottery Number)操作変数 として推定した。 抽選番号は誕生日に対してランダムに割り当てられ (= 完全に外生)、 番号が小さい人ほど徴兵されやすい。 番号は生涯所得に「兵役経由でしか」影響しない (除外制約)。 これにより、 兵役の所得効果を内生性なしに識別できた (結果: 白人男性で生涯所得 15% 減)。 この研究は 自然実験 (natural experiment) として、 行政データ・歴史的偶然を活用した因果推論の金字塔。 Angrist は 2021 年ノーベル経済学賞を受賞、 自然実験法は社会科学全体に広がった。

ケース 5: 学校教育の長さ (Acemoglu-Angrist, 2001)

米国の州ごとの「最低就学年数法」の改正タイミングを利用し、 強制就学が個人の収益にもたらした効果を推定。 法律改正は政治的決定で個人能力とは無関係 (外生)、 影響は個人の最終学歴のみを通じて生涯所得に伝わる (排除制約)。 結果として「義務教育年数の延長は収入を約 7-10% 増やす」を導出。 観察データで因果効果を識別する 自然実験 アプローチの代表例。

💡 ケーススタディの教訓: 外生性は「データの性質」だけでなく「歴史的偶然・制度設計・自然現象」を 巧みに利用 することで初めて担保できる。 統計的検定だけに頼らず、 (a) 制度の理解、 (b) 歴史の知識、 (c) 理論的根拠、 を組み合わせるのが熟練データサイエンティストの流儀。 5 ケースとも「外生性を支える根拠が複数ある」点が共通している。

🧮 数式に値を入れて手で計算する: 外生変数と回帰のバイアスなし

SSDSE-B-2026 (47 都道府県) の「y = A4101 出生数、 x = A1101 総人口」を念頭に、 残差 ε について Cov(x,ε)=0 が成り立つときバイアスが消えることを手計算で示す。 比較として「同じ x でも未観測要因のため Cov(x,ε)=0.5 となる仮想ケース」を並べる (内生性が疑われるシナリオ)。 これは列を差し替えたのではなく、 誤差項に人口と相関する交絡が残った状況の想定である。 真の係数 β=3.0 (標準化した省略単位) として、 Var(x) は標準化済みで 1.0 と仮定。

Step 1: 真の係数と Cov(x,ε)

真モデル: y = 3·x + ε 外生ケース (Cov(x,ε) = 0.0, Var(x) = 1.0) 内生ケース (未観測交絡で Cov(x,ε) = 0.5, Var(x) = 1.0)

Step 2: バイアス = Cov(x,ε) / Var(x)

外生: 0.0 / 1.0 = 0.0 → 推定 β̂ = 3.0 (バイアスなし) 内生: 0.5 / 1.0 = 0.5 → 推定 β̂ = 3.5 (真値より 0.5 過大評価)

💬 読み方: 外生のとき OLS は不偏 (β̂ = β)。 内生だと Cov(x,ε)/Var(x) 分だけ系統的に外れる。 47 都道府県のような観察データでは「経済規模が大きい県ほど未観測要因 (制度・産業構造) も影響する」ため内生性は常に疑うべき。

🐍 Python で再現

1
2
3
4
5
6
7
cov_xe = 0.0
var_x = 1.0
bias_exo = cov_xe / var_x
cov_xe2 = 0.5
bias_endo = cov_xe2 / var_x
print(f"外生バイアス: {bias_exo}")
print(f"内生バイアス: {bias_endo}")

📤 実行結果

外生バイアス: 0.0 内生バイアス: 0.5

💬 手計算 (Step 2) 0 / 0.5 と Python 出力が完全一致。

🐍 Python での扱い

最小再現コード。 SSDSE-B のような実データを前提に、 4〜8 行で動く例です:

📥 入力例(SSDSE-B-2026 の 2023 年・47 都道府県から 3 行) 都道府県 A1101(総人口) A4101(出生数) B4101(年平均気温) 北海道 5,092,000 24,430 11.0 東京都 14,086,000 86,348 17.6 沖縄県 1,468,000 12,549 23.8 …(全 47 行)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import pandas as pd, statsmodels.api as sm
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
df = df[df['SSDSE-B-2026'] == 2023]          # 2023年・47都道府県
y = df['A4101']                              # A4101: 出生数
# 単純: 人口(A1101)のみ → 欠落変数バイアス疑い
X1 = sm.add_constant(df[['A1101']])
print('単純 OLS:', sm.OLS(y, X1).fit().params)
# 年平均気温(B4101)を追加: 欠落変数バイアスを緩和
X2 = sm.add_constant(df[['A1101', 'B4101']])
print('多変量:', sm.OLS(y, X2).fit().params)

補足:ライブラリのバージョンや前処理状態によって出力は変わります。 自分の環境で動かすときは pip list でバージョンを確認し、 入力 CSV のパス・列名を実態に合わせてください。

🐍 Python 実装① — Hausman 検定で外生性を判定

🎯 このコードでやること: Hausman 検定で「OLS 推定量と IV (道具変数) 推定量の差」を検定し、 外生性仮定の妥当性を統計的に判断する。 帰無仮説は「説明変数は外生」。

📥 入力データ: SSDSE-B-2026 から、 目的変数=A4101 (出生数)、 説明変数=A1101 (人口)、 道具変数候補=A9101 (婚姻件数)。

y = A4101 (出生数) X_endog = A1101 (人口、 内生性懸念) Z = A9101 (婚姻件数、 道具変数候補) H0: A1101 は外生
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
import pandas as pd, statsmodels.api as sm
from linearmodels.iv import IV2SLS

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
df = df[df['SSDSE-B-2026'] == 2023]
y = df['A4101']
X = df[['A1101']]
Z = df[['A9101']]

# OLS
ols = sm.OLS(y, sm.add_constant(X)).fit()
print(f'OLS  beta = {ols.params["A1101"]:.6f}')

# IV (2SLS): A1101 を A9101 (婚姻件数) で IV
iv = IV2SLS(y, sm.add_constant(df[[]]), endog=X, instruments=Z).fit()
print(f'IV   beta = {iv.params["A1101"]:.6f}')

# Hausman 統計量
hausman = iv.wu_hausman()
print(f'Wu-Hausman: chi2 = {hausman.stat:.3f}, p = {hausman.pval:.4f}')

📤 実行例:

OLS beta = 0.006104 IV beta = 0.006147 Wu-Hausman: chi2 = 13.998, p = 0.0005

💬 結果の読み方: p < 0.05 で外生性帰無仮説を 棄却。 統計的には A1101 (人口) の内生性が示唆される。 もっとも OLS (0.006104) と IV (0.006147) の係数はほぼ同じで、 実務的な差はごく小さい。 加えて操作変数 A9101 (婚姻件数) は出生数に直接効くため排除制約が疑わしく、 IV の有効性 (関連性 + 排除制約) の検証が別途必要です。

🐍 Python 実装② — 道具変数 (IV) 推定の実装

🎯 このコードでやること: 外生性が破れている場合に、 道具変数 (IV) を使って因果効果を推定する。 IV は (1) 内生変数と相関、 (2) 誤差項と無相関、 の 2 条件が必要。

📥 入力データ: 内生変数=人口 (A1101)、 IV 候補=婚姻件数 (A9101)。 第一段階 (IV → 内生変数) の関連性確認も実施。

y = A4101 (出生数) endog = A1101 (人口) exog = (定数項のみ) instruments = [A9101 (婚姻件数)]
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
from linearmodels.iv import IV2SLS
import statsmodels.api as sm

# 第一段階: IV(A9101 婚姻件数) → 内生変数(A1101 人口) の関連性確認
first = sm.OLS(df['A1101'], sm.add_constant(df[['A9101']])).fit()
print(f'第一段階 F = {first.fvalue:.2f} (10 以上で強い IV)')

# 第二段階: IV2SLS で因果効果推定
iv = IV2SLS(df['A4101'],
            sm.add_constant(df[[]]),
            endog=df[['A1101']],
            instruments=df[['A9101']]).fit()
print(f'IV2SLS beta(A1101) = {iv.params["A1101"]:.6f}')
print(f'IV2SLS  SE          = {iv.std_errors["A1101"]:.6f}')
print(f'IV2SLS  p-value     = {iv.pvalues["A1101"]:.4f}')

📤 実行例:

第一段階 F = 2017.39 (10 以上で強い IV) IV2SLS beta(A1101) = 0.006147 IV2SLS SE = 0.000083 IV2SLS p-value = 0.0000

💬 結果の読み方: 第一段階 F=2017 は十分強い IV (弱 IV バイアスなし)。 IV 推定値 0.006147 は OLS 推定値 0.006104 とほぼ同じで、 この操作変数では OLS と実質的な差は出なかった。 ただし IV の 排除制約 (婚姻件数が「人口経由」以外で出生数に影響しない) は理論的に成り立ちにくく (婚姻は出生に直接効く)、 この IV の妥当性自体に疑問が残る点に注意。

🐍 Python 実装③ — 制御変数追加による OVB 抑制

🎯 このコードでやること: 欠落変数バイアスを抑えるために制御変数を段階的に追加し、 主係数がどう変化するかを観察する。 「制御変数を入れると係数が安定する」のが理想的サイン。

📥 入力データ: SSDSE-B-2026 から 4 モデルで段階的に変数追加。

M1: y ~ A1101 M2: y ~ A1101 + A4103 M3: y ~ A1101 + A4103 + A1301 M4: y ~ A1101 + A4103 + A1301 + A9101
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import statsmodels.api as sm

y = df['A4101']
models = {
    'M1': ['A1101'],
    'M2': ['A1101', 'A4103'],
    'M3': ['A1101', 'A4103', 'A1301'],
    'M4': ['A1101', 'A4103', 'A1301', 'A9101'],
}
print('Model | beta(A1101) | SE       | R^2')
for name, vars_ in models.items():
    res = sm.OLS(y, sm.add_constant(df[vars_])).fit()
    print(f'{name}    | {res.params["A1101"]:9.6f} | {res.bse["A1101"]:8.6f} | {res.rsquared:.4f}')

📤 実行例:

Model | beta(A1101) | SE | R^2 M1 | 0.006104 | 0.000087 | 0.9909 M2 | 0.006378 | 0.000078 | 0.9952 M3 | 0.002763 | 0.000860 | 0.9966 M4 | -0.001998 | 0.000560 | 0.9993

💬 結果の読み方: M1 から M4 へ進むと、 主係数が 0.006104 → -0.001998 へと 大きく縮小し符号まで反転。 これは「人口の見かけの効果のうち、 大部分が出生率・子供人口・婚姻件数といった媒介変数の効果だった」ことを示す。 M4 では係数が負に転じ (SE 0.00056)、 制御後の人口の純粋効果は正とは言えない。 因果分析では「変数追加で係数がどう変化するか」を必ず報告すべき。

🐍 Python 実装④ — 残差プロットで外生性を視覚的に確認

🎯 このコードでやること: 残差 $\hat\varepsilon$ と説明変数 $X$ の散布図を描き、 系統的なパターンがないか視覚的に確認。 外生性が成立していればランダム散布、 破れていれば曲線・分散変化が見える。

📥 入力データ: SSDSE-B-2026 で「A1101 → A4101」回帰の残差。

residuals = y_actual - y_predicted X-axis: A1101 (人口) Y-axis: residuals ideal: 平均 0、 均等散布、 系統パターンなし
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
import matplotlib.pyplot as plt
import statsmodels.api as sm
import numpy as np

X = sm.add_constant(df['A1101'])
res = sm.OLS(df['A4101'], X).fit()
residuals = res.resid

print(f'残差 平均: {residuals.mean():,.1f}')
print(f'残差 標準偏差: {residuals.std():,.1f}')
print(f'残差 vs A1101 相関: {np.corrcoef(residuals, df["A1101"])[0,1]:.4f}')

plt.scatter(df['A1101'], residuals, alpha=0.6)
plt.axhline(0, color='red', linestyle='--')
plt.xlabel('A1101 (人口)')
plt.ylabel('残差')
plt.title('残差プロット — 外生性チェック')
plt.savefig('residuals.png', dpi=120)

📤 実行例:

残差 平均: 0.0 残差 標準偏差: 1,639.1 残差 vs A1101 相関: 0.0000 (理論上 OLS では必ず 0) プロット観察: 沖縄など温暖な県で残差が正に大きい → 欠落変数 (気温) or 異質性疑い

💬 結果の読み方: OLS 残差と説明変数の相関は数学的に常に 0 なので、 数値だけでは判定不能。 プロット観察が重要で、 ファネル状 (heteroscedasticity)、 曲線パターン (非線形性欠如)、 外れ値クラスター (異質性) などを見る。 沖縄のように残差が系統的に偏る県があれば、 (3) で見た年平均気温のような 欠落変数ロバスト回帰の検討余地があります。

🐍 Python 実装⑤ — networkx で DAG を構築・バックドア識別

🎯 このコードでやること: SSDSE-B-2026 の変数間関係を DAG で表現し、 「人口 → 出生数」の因果効果を推定する際に制御すべき変数集合を自動同定。

📥 入力データ: ドメイン知識に基づくエッジリスト。 SSDSE-B-2026 では「人口 ← 経済水準 → 出生数」「人口 → 婚姻件数 → 出生数」など。

nodes: 経済水準, 人口, 婚姻件数, 出生数 edges: 経済水準 → 人口 経済水準 → 出生数 (交絡) 人口 → 婚姻件数 人口 → 出生数 (主効果) 婚姻件数 → 出生数 (媒介)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
import networkx as nx

G = nx.DiGraph()
G.add_edges_from([
    ('経済水準', '人口'),
    ('経済水準', '出生数'),
    ('人口', '婚姻件数'),
    ('人口', '出生数'),
    ('婚姻件数', '出生数'),
])

# すべてのバックドア経路を列挙
treatment, outcome = '人口', '出生数'
print(f'{treatment}{outcome} のバックドア経路:')
for path in nx.all_simple_paths(G.to_undirected(), treatment, outcome):
    if len(path) > 2:
        # 経路の中間ノードに矢印が treatment 側に向いていればバックドア
        if G.has_edge(path[1], path[0]):
            print(f'  バックドア: {" - ".join(path)}')
        else:
            print(f'  順方向 : {" → ".join(path)}')

📤 実行例:

人口 → 出生数 のバックドア経路: バックドア: 人口 - 経済水準 - 出生数 ← 経済水準を制御 順方向 : 人口 → 婚姻件数 → 出生数 ← 媒介 (制御しない)

💬 結果の読み方: バックドア経路「人口 ← 経済水準 → 出生数」を 経済水準で制御すれば因果識別可能。 一方、 婚姻件数は 媒介変数なので制御してはいけない (制御すると人口 → 婚姻 → 出生の間接効果が失われる)。 DAG で経路を可視化することで、 「何を制御し、 何を制御しないか」が明確になります。

🐍 Python 実装⑥ — 回帰不連続 (RD) で外生性を担保

🎯 このコードでやること: 人口閾値 (例: 100 万人) で処置を受けるかどうかが決まる制度を仮定し、 RD デザインで因果効果を推定。 閾値前後の県は 偶然に処置/非処置に分かれるため、 局所的に外生性が担保されます。

📥 入力データ: SSDSE-B-2026 の県データ。 人口を running variable とし、 100 万人を閾値とする。 結果変数=出生数。

running: A1101 (人口) threshold: 1,000,000 人 treatment: A1101 >= 1,000,000 (1=処置、 0=コントロール) outcome: A4101 (出生数) bandwidth: ±500,000 人
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import pandas as pd, statsmodels.api as sm
import numpy as np

cutoff = 1_000_000
bandwidth = 500_000
local = df[(df['A1101'] >= cutoff - bandwidth) &
           (df['A1101'] <= cutoff + bandwidth)].copy()
local['D'] = (local['A1101'] >= cutoff).astype(int)
local['X_c'] = local['A1101'] - cutoff
local['D_X'] = local['D'] * local['X_c']

# RD: y = a + b*D + c*X_c + d*D*X_c + e
X = sm.add_constant(local[['D', 'X_c', 'D_X']])
res = sm.OLS(local['A4101'], X).fit()
print(f'観測 n = {len(local)}')
print(f'処置効果 (D の係数) = {res.params["D"]:,.1f}')
print(f'p-value             = {res.pvalues["D"]:.4f}')

📤 実行例:

観測 n = 23 (閾値 ±50万人の県のみ) 処置効果 (D の係数) = -371.6 p-value = 0.6589

💬 結果の読み方: 実データ (2023 年) では閾値 100 万人まわりの 23 県で推定した処置効果は -372 (p=0.66) と有意ではない。 RD の強みは「閾値直近では処置がほぼランダム」=局所的外生性が担保される点だが、 SSDSE-B-2026 単年・少数県では検出力が乏しく、 ここでは効果を検出できない。 実際の補助金制度・人口閾値制度の評価で広く使われる手法である。

🐍 Python 実装⑦ — 差分の差分 (DID) で時間変化を統制

🎯 このコードでやること: 「ある県群がある時期から新政策を導入」というシナリオで、 処置群と対照群の 変化の差を取ることで、 時間トレンドや県固有差を相殺し因果効果を取り出す。

📥 入力データ: SSDSE-B-2026 (2023 年) と仮想 SSDSE-B-2024 (政策後) のパネル。 処置群=東京周辺の首都圏、 対照群=それ以外。

df_panel columns: pref, year, treatment (0/1), post (0/1), outcome DID 推定式: y = a + b*treatment + c*post + d*treatment*post + e d が DID 推定量 (= 因果効果)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
import pandas as pd, statsmodels.formula.api as smf

# SSDSE-B-2026 を基に簡易パネルを構成 (実データは過去年度版も結合)
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
df = df[df['SSDSE-B-2026'] == 2023]
panel_rows = []
treated_codes = ['R13000', 'R14000', 'R11000', 'R12000']  # 首都圏
for _, row in df.iterrows():
    treat = 1 if row['Code'] in treated_codes else 0
    # 2023 (前)
    panel_rows.append({'pref': row['Prefecture'], 'year': 2023,
                       'treatment': treat, 'post': 0, 'outcome': row['A4101']})
    # 2024 (後): 仮想シナリオで treat 県のみ +5%
    growth = 1.05 if treat else 1.00
    panel_rows.append({'pref': row['Prefecture'], 'year': 2024,
                       'treatment': treat, 'post': 1, 'outcome': row['A4101'] * growth})

p = pd.DataFrame(panel_rows)
res = smf.ols('outcome ~ treatment + post + treatment:post', data=p).fit()
print('DID 推定結果:')
print(f'交互作用項 (DID 効果) = {res.params["treatment:post"]:,.1f}')
print(f'p-value              = {res.pvalues["treatment:post"]:.4f}')

📤 実行例:

DID 推定結果: 交互作用項 (DID 効果) = 2,726.3 p-value = 0.7673

💬 結果の読み方: 交互作用項 2,726 が DID 推定量 = 政策の 純効果 (首都圏に +5% を課した仮想シナリオでの値)。 「処置の主効果」と「時間トレンド」が分離されているため、 単純な前後比較より頑健。 一方 p=0.77 と有意でないのは、 処置群がわずか 4 県で検出力が低いため。 パラレルトレンド仮定 (処置がなければ両群は同じ傾きで動いていた) は別途検証が必要 (プラセボ検定、 イベントスタディ)。

🐍 Python 実装⑧ — 傾向スコアマッチングで外生性を近似

🎯 このコードでやること: 処置群と対照群を共変量で マッチングすることで、 「もし処置がランダム割付だったら」に近い状態を作り、 因果効果を推定。

📥 入力データ: 処置=「総人口 300 万人以上」、 結果=「出生数」、 共変量=「子供人口 (A1301)、 転入者数 (A5101)、 年平均気温 (B4101)、 消費支出 (L3221)」など。

treatment: A1101 >= 3,000,000 outcome: A4101 covariates: [A1301, A5101, B4101, L3221] method: 1-NN propensity score matching
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
import pandas as pd, numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import NearestNeighbors

df['D'] = (df['A1101'] >= 3_000_000).astype(int)
cov = ['A1301', 'A5101', 'B4101', 'L3221']   # 子供人口・転入者数・年平均気温・消費支出

# 傾向スコア推定
ps = LogisticRegression(max_iter=1000).fit(df[cov], df['D'])
df['ps'] = ps.predict_proba(df[cov])[:, 1]

# 1-NN マッチング (処置群を対照群と PS でマッチ)
treated = df[df['D'] == 1]
control = df[df['D'] == 0]
nn = NearestNeighbors(n_neighbors=1).fit(control[['ps']].values)
_, idx = nn.kneighbors(treated[['ps']].values)
matched_ctrl = control.iloc[idx.flatten()]

ate = treated['A4101'].values - matched_ctrl['A4101'].values
print(f'マッチング後 ATT = {ate.mean():,.1f}')
print(f'SE              = {ate.std()/np.sqrt(len(ate)):,.1f}')

📤 実行例:

マッチング後 ATT = 26,493.5 SE = 5,785.1

💬 結果の読み方: ATT (Average Treatment effect on the Treated) = +26,494。 つまり処置 (総人口 300 万人以上) を受けた県は、 共変量が同じ非処置県と比べて出生数が +26,494 多い。 PSM の前提は 条件付独立 (CIA)「観測共変量で条件付ければ処置はランダム」。 未観測交絡 (例: 都市文化) があれば成立しません。

✅ 外生性チェックリスト — 因果分析前の必須確認

  1. 研究課題は「因果効果」か「予測精度」か明確化 (両者で要求される外生性が違う)
  2. 処置変数と結果変数を DAG で図示し、 共変量・媒介・コライダーを区別
  3. 未観測の交絡因子の可能性を列挙し、 ドメイン専門家とレビュー
  4. OLS と IV の係数を比較 (大差があれば内生性の証拠)
  5. Hausman 検定を実施 (p < 0.05 で外生性帰無を棄却)
  6. 制御変数を段階的に追加し、 主係数の安定性を確認
  7. 残差プロットで非線形性・分散変化・外れ値クラスターを観察
  8. IV を使う場合、 第一段階 F > 10 を確認 (弱 IV 回避)
  9. 過識別検定 (Sargan/Hansen) で IV の合同妥当性を検証
  10. パネル化可能なら DID を試み、 パラレルトレンド仮定を可視化
  11. 傾向スコアでマッチング・IPW を実施し、 結果の頑健性を確認
  12. 感度分析 (Rosenbaum bounds、 E-value) で「未観測交絡がどれくらい強ければ結論が覆るか」を報告

外生性は 「検証できる仮定」と「検証できない仮定」を区別することが重要。 統計検定で部分的に検証できる項目 (Hausman、 Sargan) と、 理論・ドメイン知識でしか担保できない項目 (排除制約、 パラレルトレンド) を明示し、 論文・レポートで透明に開示しましょう。

❓ FAQ — 外生性に関する疑問

Q1: 外生性と独立性は同じか?

違う。 独立性は $X \perp \varepsilon$ (より強い条件)、 外生性は $E[\varepsilon|X]=0$ (条件付期待値ゼロ)。 独立性 → 外生性は成立、 逆は不成立。 多くの教科書では便宜上、 同義に近く扱う。

Q2: Hausman 検定で外生性が棄却されなければ OLS で安全か?

必ずしも安全ではない。 Hausman は IV が外生という前提に依存。 IV が弱い場合や排除制約が破れていれば、 棄却失敗は 検出力不足のせいかもしれない。 ドメイン知識と併用すべき。

Q3: 機械学習モデルでも外生性は必要か?

予測目的なら不要 (相関が安定していればよい)。 因果効果を主張したいなら必須。 近年は Double ML、 Causal Forest など ML × 因果推論の手法が急成長中で、 ここでも外生性は核心条件。

Q4: 観察データだけで因果効果は推定できないのか?

RCT がベストだが、 IV、 DID、 RD、 PSM などのデザインで観察データからも近似可能。 鍵は「識別仮定が現実的か」をドメイン知識で議論すること。

Q5: SSDSE-B-2026 単年では外生性の話は無理か?

完全な因果効果推定は厳しいが、 IV や PSM で部分的に近似可能。 過去年度版 (2024、 2025) と結合してパネル化すれば DID も使える。 まずは DAG を描き、 識別仮定の妥当性を議論することから始めるべき。

📝 自己チェッククイズ

  1. 外生性の数学的定義 $E[\varepsilon|X]=0$ を、 「人口 → 出生数」の例で日本語で説明せよ
  2. Contemporaneous、 Strict、 Predetermined 外生性の違いをそれぞれ 1 文で説明せよ
  3. SSDSE-B-2026 で「県人口 → 出生数」の単回帰がなぜ因果効果を反映しないか、 OVB の観点で説明せよ
  4. 道具変数の 2 条件 (関連性、 排除制約) をそれぞれ説明し、 SSDSE-B での具体例を挙げよ
  5. DAG の Backdoor Criterion を述べ、 「制御してはいけない変数」の例を挙げよ
  6. 差分の差分 (DID) の識別仮定 (パラレルトレンド) を説明し、 どう検証するかを述べよ
  7. 傾向スコアマッチングの仮定 (条件付独立性) が破れる典型例を 2 つ挙げよ

⚠️ よくある落とし穴

外生性 を実務で扱うとき、 多くの分析者が同じところでつまずきます。 代表的な失敗パターンを先回りで押さえておくと、 後工程のトラブルを大幅に減らせます。

❌ 「有意 = 因果」と即断
p < 0.05 でも内生性があれば因果解釈不可。 まず外生性を疑う癖を。
❌ 欠落変数の見落とし
「思いつく限り入れた」モデルでも、 未観測の交絡因子は残る。 自然実験や RCT を検討。
❌ 操作変数の質
IV は 外生かつ X と強相関 でなければ無意味。 weak IV はバイアスを増幅。
❌ 逆因果の見過ごし
「広告費 → 売上」のつもりが、 売上が高い企業ほど広告費を増やせる、 という逆因果。
❌ 過剰なコントロール
中間変数を統制すると逆にバイアス(Bad Control 問題)。 因果ダイアグラムを描いて整理。

※ 上記は文献調査・現場経験で報告される頻度の高い注意点。 ドメインや手法のバージョンによって追加の落とし穴がある場合があります。

❓ よくある質問

Q1. 「外生性」を学ぶ前提知識は?
分野(因果推論)の基本概念を一通り押さえておくと理解が早いです。 不明な用語が出てきたら、 各リンクから前提の用語ページを参照してください。 数式が出てくる場合は中学〜高校レベルの代数と、 必要なら微分・確率の基礎が役立ちます。
Q2. 数式が分からなくても使える?
多くの場合「直感」と「Python での扱い」を理解すれば実務で使えます。 ただし 落とし穴 セクションの内容は数式の意味と紐づくため、 余裕があれば数式も眺めてみてください。
Q3. 関連する手法・概念は?
関連用語 セクションを参照してください。 並列概念(兄弟)、 前提(必要知識)、 発展(次に学ぶべき)の 3 種類で整理してあります。
Q4. レポート・論文での書き方は?
数値だけでなく、 (1) 使ったデータの出典、 (2) 適用条件の確認結果、 (3) 不確実性(CI・SE)、 (4) 限界、 を含めるのが標準です。 実務チェックリスト も参考に。
Q5. 業務以外の身近な例は?
本ページの 直感で掴む セクションに具体例があります。 自分の関心領域(趣味・専門)でも例を考えてみると、 理解が深まります。

⚠️ 落とし穴 — 外生性が破れる典型パターン

⚠️ 弱 IV 問題と検証法

道具変数 IV を使う場合、 IV が内生変数と 弱くしか相関していないと 弱 IV バイアスが生じ、 OLS よりひどい推定になることもあります。 経験則として:

第一段階 F 値 判定 対処
F > 100非常に強い IVそのまま使用
10 < F < 100中程度Stock-Yogo 表で要確認
F < 10弱 IVLIML、 Anderson-Rubin、 別 IV
F < 5非常に弱いIV 推定を放棄、 別戦略

過識別検定 (Sargan / Hansen)

IV が複数 (過識別) ある場合、 Sargan/Hansen 検定で「すべての IV が外生か」を統計的にチェック可能。 帰無仮説は「すべての IV が外生」、 棄却されれば 少なくとも 1 つは内生の疑い。 ただし、 過識別検定はそもそもベースライン IV の外生性を仮定しているため、 単独で「外生性証明」にはなりません。

⚠️ 外生性に関する追加の落とし穴 5 件

本ページの初期セクションでも落とし穴を扱ったが、 中・上級者がさらに陥りやすい 5 つの罠を補足する。 これらは「外生性を一度満たしたつもりでも、 分析の進行中に再び崩れる」典型例である。

追加落とし穴 1: 「control 変数を増やすほど良い」は嘘

「観測されない交絡因子を心配して control 変数 (共変量) を多数加える」のは一見正しいが、 (a) collider 変数 を加えると外生性が 逆に崩れる、 (b) mediator (媒介変数) を加えると本来見たい因果効果が一部吸収される、 という罠がある。 DAG を描き、 各変数が confounder/collider/mediator のどれに該当するか分類してから共変量を選ぶ。 「思いついた変数を全部入れる」は禁物。

追加落とし穴 2: パネルデータの内生性は時間構造でさらに複雑

パネルデータ (同じ個体を複数時点で観測) では「個体固定効果」が交絡を吸収するが、 (a) ラグ付き従属変数 ($y_{t-1}$ を回帰式に含む) では Nickell バイアスが発生、 (b) 動学的内生性 (現在の X が過去の y に依存) では within 推定量が偏る。 対策は 操作変数 + GMM (Arellano-Bond)、 または「長期パネル + 大数法則」。 横断面の感覚でパネルを扱うと外生性が崩れる典型例。

追加落とし穴 3: 「機械学習で予測精度が高い → 因果」は誤り

XGBoost や Random Forest で予測精度が高くても、 それは「相関の活用が上手」という意味であり、 因果効果の不偏性 (= 外生性) とは別問題。 機械学習で重要度が高い変数が因果の原因とは限らない (相関のみで予測力を稼いでいる可能性)。 因果効果を機械学習で推定するには Double ML や Causal Forest のような 外生性を別枠で確保した 手法が必要。 予測精度と因果妥当性を混同しないこと。

追加落とし穴 4: 大標本 ≠ 外生性確保

「データが多いから安心」は誤解。 N が無限大でも、 外生性が破れていれば OLS 推定値は 真の値とは異なる定数に収束 する (不一致性)。 ビッグデータ時代に「百万件あるから正しい」と主張する分析は、 むしろ 偏った結論を確信を持って導く 危険性が高い。 大標本は標準誤差を縮めるだけで、 バイアスは縮めない。 外生性こそが因果妥当性の本質。

追加落とし穴 5: 「外生性は数式で検証可能」という幻想

Hausman 検定や RESET 検定は便利だが、 (a) 検定力に依存し、 (b) IV の有効性を前提とし、 (c) 関数形誤特定の一部しか検出しない。 「検定で不棄却 = 外生」と即断するのは検定の意味を取り違えている。 外生性は最終的に「制度・歴史・理論」の知見で根拠付けるしかない。 統計的検定はその補助に過ぎず、 主役は分析者の domain knowledge である。

❓ よくある質問 (追加)

Q. 説明変数すべてが外生でなくてはいけないの?

技術的には、 内生な変数があっても他の係数推定が正しければよい。 だが内生変数が説明変数行列 $X$ に入ると、 行列 $(X'X)^{-1}X'\varepsilon$ の計算過程で他の係数にも影響が波及するため、 実務上は「すべての説明変数の外生性」を確認するのが安全。 とくに 関心のある係数 に対応する変数が内生だと、 因果解釈が完全に崩れる。

Q. 「定数項」は外生性を満たすか?

定数項 (= すべて 1 の列) はサンプル間で変動がないので、 「誤差項との共分散」も自動的に 0 (定数と何かの共分散は 0)。 ゆえに定数項は 常に 外生性を満たす。 内生性を心配する必要があるのは、 サンプル間で変動する説明変数のみ。

Q. ダミー変数は外生か?

ダミーが「処置を受けた/受けていない」というインジケータであれば、 ランダム化されているか (= 設計上外生) を確認。 観察データのダミー (例: 「都市部 vs 地方」「政令市 vs 一般市」) は、 ダミーが拾う属性が他の要因と交絡している可能性が高く 内生になりがち。 ダミーを安易に「群を表現する変数」と思わず、 内生性を疑う癖をつける。

Q. 共変量を追加したら係数の符号が変わった。 どう解釈する?

符号が変わるのは「追加した変数が交絡因子を含んでいた」明確な証拠。 追加前は外生性が破れており、 追加後は (少なくともその交絡因子に関しては) 修正された。 ただし他の交絡因子が残っている可能性は依然ある。 「符号変化 = 残りの内生性も解消された」とは限らない。 DAG を描いて全交絡因子をリストアップするのが王道。

Q. パネルデータと横断面データでは外生性の難しさは違う?

パネルデータの方が 個体固定効果 で「時間不変の交絡因子」を吸収できる分有利。 だが「時間変動する交絡因子」(例: 景気変動) や「動学的内生性」(ラグ付き y) は新たな問題として浮上。 結局、 どちらのデータ形式も 異なる種類の外生性違反 に直面しており、 「パネル = 必ず安全」とは言えない。 個別のデータ特性に応じた対策が必要。

Q. 機械学習モデルでも「外生性」は意味があるか?

予測タスク (回帰・分類) ではモデルの目的が「テストデータでの予測精度を最大化する」ことなので、 説明変数が内生でも実用上問題ない (相関を活用するだけ)。 だが 因果推論処置効果推定 を目的とする場合、 外生性は機械学習でも依然として核心条件となる。 Double Machine Learning (Chernozhukov et al., 2018) や Causal Forest (Wager-Athey, 2018) はこの問題に対応するため設計されており、 「予測モデル」と「因果モデル」を明示的に分離する。 機械学習を「魔法」として扱わず、 因果か予測かで使い分ける視座が必要。

Q. 外生性の弱い変数を入れた回帰は完全に無価値か?

いいえ。 (a) 記述的分析 としては「相関の方向と強さ」を理解するのに役立つ、 (b) 予測モデル としては精度向上に貢献する、 (c) 探索的データ分析 として次の分析の仮説生成に使える、 など複数の価値がある。 重要なのは「因果効果として解釈してはいけない」と 明示する こと。 「相関関係を示すに留まり、 因果は別の手法で検証する必要がある」と書けば、 弱外生な変数を扱う回帰でも十分に有用な分析となる。 問題は「内生性に気づかず因果と主張する」誤用にある。

Q. SSDSE-B-2026 の県別データで外生な変数とは何か?

SSDSE-B-2026 には経済・人口・気象・地理・産業など多様な変数が含まれる。 外生性が比較的高いと考えられるのは、 (a) 気象 (年平均気温 B4101、 降水日数 B4106、 日照など — 短期的には人為的影響が小さい)、 (b) 地理的属性 (一般に県の位置・地形など — 人の活動と独立)、 (c) 歴史的属性 (過去の人口・インフラ — 現在の政策とは独立)。 一方で、 (d) 経済・生活指標 (消費支出、 所得、 転入者数)、 (e) 社会指標 (合計特殊出生率、 婚姻件数、 死亡数) は他の変数と相互に影響し合うため内生性が強い。 因果推論の目的なら (a)-(c) を IV や共変量として活用し、 (d)-(e) を被説明変数として扱うのが基本戦略。

Q. 「内生性が疑われる」とだけ書けば免責されるのか?

単に「内生性が疑われる」と書くだけは不十分。 査読論文や政策レポートでは、 (a) どの種類の内生性 を疑うか (欠落変数 / 逆因果 / 測定誤差 / 同時性)、 (b) バイアスの方向 (上方 / 下方)、 (c) 程度の推定 (sensitivity analysis で「どの程度の交絡因子があれば結論が逆転するか」を試算)、 (d) 代替手法での頑健性 (IV や DID で同じ符号が得られるか) を示すのが標準。 「分析の限界」セクションで具体的に開示することで、 結論の信頼性を読者と共有できる。

Q. 外生性の概念は、 ベイズ統計学にも当てはまるか?

はい。 ベイズ統計では事前分布と尤度から事後分布を計算するが、 因果効果を解釈するには「処置変数と未観測要因が独立」という条件 (= 外生性に相当) が必要。 ベイズ流の表現では「条件付き独立性」「交換可能性」と呼ばれるが、 概念上は計量経済学の外生性と等価。 ベイズの利点は「不確実性を確率分布で扱う」点だが、 外生性が破れていれば事後分布の中心も偏る。 ベイズが「全自動で内生性を解く」わけではない点に注意。

Q. 外生性チェックの自動化ツールはあるか?

Python の linearmodels パッケージは IV 推定と Hausman 検定を簡単に実行でき、 R の sandwichplm はロバスト標準誤差とパネル推定をサポート。 さらに DoWhy (Microsoft) や CausalNex は DAG ベースの因果分析を半自動化する。 ただし「ツールが結論を出してくれる」のではなく、 「ツールは分析者の仮定を実装する道具」に過ぎない。 仮定 (外生性の根拠) は分析者が責任を持って構築する。

🗺 概念マップ: 外生性は OLS の核心前提

外生性は OLS (最小二乗法) が不偏推定・一致推定となるための条件群の中核。 ガウス・マルコフ定理の前提との位置関係を整理する。

階層概念関係
最上位因果推論外生性は因果推定の核心前提
上位回帰分析OLS が成立する前提
本稿外生性$E[\varepsilon|X]=0$
対概念内生性外生性違反 — OLS バイアス源
原因同時性外生性違反の原因 1
原因欠落変数バイアス外生性違反の原因 2
原因測定誤差外生性違反の原因 3
対策操作変数法外生性違反への対処
究極RCT外生性を実験で完全保証

📜 歴史と発展

外生性概念の理論的整備は、 1940 年代の Cowles 委員会 (Trygve Haavelmo、 Tjalling Koopmans ら) に遡る。 経済データを「自然が生成した観測データ」と捉え直し、 ランダム化実験との違いを明確化したことが起点。

1980 年代、 Engle, Hendry, Richard (1983) が「弱外生性 (weak exogeneity)」「強外生性 (strong exogeneity)」「超外生性 (super exogeneity)」の 3 段階定義を提唱し、 時系列分析における外生性の体系が整った。 これにより、 用途 (推定 / 予測 / 政策分析) ごとに必要な外生性条件が区別されるようになった。

2000 年代以降、 因果推論文献 (Judea Pearl の因果ダイアグラム、 Donald Rubin の反実仮想モデル) との統合が進み、 「外生性」は「処置割り付けが結果に独立」の特殊形と捉え直された。 機械学習との交差では、 「観測データから因果効果を抜き出す」という現代的問題意識の中心テーマとなっている。

🔧 外生性の 3 段階定義の比較表

区分条件必要な用途該当する文脈
弱外生性$\text{Cov}(X_i, \varepsilon_i) = 0$OLS 一致性クロスセクション回帰
同時的外生性$E[\varepsilon_i | X_i] = 0$OLS 不偏性標準的回帰モデル
strict 外生性$E[\varepsilon_i | X_1, \ldots, X_n] = 0$パネル固定効果モデル時系列・パネル
super 外生性パラメータが政策変更に対して不変政策分析・予測Lucas 批判への対応

❓ よくある質問 (FAQ)

Q1. 外生性はデータから「証明」できますか?

A. 厳密にはできません。 Hausman 検定で「外生性は棄却されない」と統計的に支持することはできますが、 これは「内生性の証拠が見つからなかった」というだけで「外生性が成立する」とは別物 (反証可能性の問題)。 最終的には理論・制度・実験デザインで正当化する必要があります。

Q2. RCT (ランダム化試験) なら外生性は自動的に成立しますか?

A. はい、 これが RCT が「因果推論のゴールド・スタンダード」とされる理由です。 処置をコインで割り付ければ、 処置変数は確定的に他のすべての変数から独立 (外生) となります。 観察データではこれを近似するため操作変数や自然実験を探します。

Q3. 説明変数同士の相関 (多重共線性) と外生性違反は同じ?

A. 別物です。 多重共線性は「説明変数 $X_1$ と $X_2$ の相関」、 外生性は「説明変数と誤差項の相関」を問題にします。 多重共線性は SE を膨らませますが、 OLS は依然として不偏。 外生性違反は OLS の不偏性そのものを破壊します。

Q4. 外生性が満たされなくても予測は使える?

A. 予測 (新データの $y$ を当てる) であれば、 外生性が破れていても OLS は十分機能することが多いです (相関構造が同じなら)。 しかし「説明変数を操作したら結果がどう変わるか」という因果的予測 (反実仮想) には外生性が必須です。 これが Lucas 批判の核心。

Q5. 機械学習でも外生性は問題になりますか?

A. はい、 特に「介入の効果を予測したい」場面 (uplift modeling、 因果推論 ML、 強化学習の policy evaluation) では古典的な外生性問題が再浮上します。 単なる予測ではなく介入決定に使うモデルでは、 外生性 / 反実仮想の議論が必須です。 Microsoft の DoWhy、 Uber の CausalML などのライブラリはこのために開発されています。

🧪 ケーススタディ: SSDSE-B-2026 で「人口」は外生か

SSDSE-B-2026 の「県内人口 (A1101)」を説明変数に、 「消費支出 (L3221)」への効果を考える (SSDSE-B-2026 に県内総生産そのものの列はないため、 経済活動の代理として世帯消費支出を用いる)。 人口は消費支出よりも変化が遅く、 外生として扱えそうに見える。 だが本当か?

仮説向き外生性への影響
人口 → 消費支出この向きなら人口は外生で OK
消費支出 (経済活動) → 人口 (経済流入)経済の良い県に人が移住 → 同時性
第三変数: 産業構造交絡 → 欠落変数バイアス

→ 結論: 「人口」は短期的には外生に見えるが、 長期 (移住の蓄積) では経済から逆向きに影響を受ける。 完全な外生性を主張するには、 「面積」「気候」「歴史的な人口形成要因」など、 より外生的な変数を操作変数とすべき。

🔗 関連用語 (前提・並列・発展) 完全リスト

前提 (7 件): 最小二乗法 / 回帰分析 / 条件付き期待値 / 共分散 / 独立性 / バイアス / 一致性

並列 (6 件): 内生性 / 同時性 / 欠落変数バイアス / 測定誤差 / セレクションバイアス / 交絡

発展 (7 件): 操作変数法 / 2SLS / Hausman 検定 / DID / RDD / RCT / 傾向スコア

🎓 教育的視点: 外生性チェックの 5 ステップ実務手順

  1. 理論で考える: 説明変数は逆向き因果を受けないか、 共通の原因 (第三変数) はないか、 を制度・歴史的に検討。
  2. 残差プロット: 残差を予測値・他変数・時間に対してプロットし、 系統的パターン (欠落変数の指標) を探す。
  3. 残差と他変数の相関: 残差が「モデルに入れていない変数」と相関していれば、 欠落変数バイアスの疑い。
  4. 操作変数を探す: 外生性が疑わしい説明変数について、 外生な操作変数 (地理・天候・制度変更) を探す。
  5. Hausman 検定: OLS と IV の推定値が統計的に異なるかを検定。 異なれば内生性 (外生性違反) を支持。

🧠 実務での意思決定への応用

外生性の議論は、 単に技術的な統計問題ではなく、 「データから何を主張してよいか」の倫理的限界を定義する。 たとえば:

「外生性は仮定であり、 デザインで作り込むものだ」という認識は、 統計分析を行うすべての実務家にとって基礎教養。 SSDSE-B-2026 のような観察データを使うときは、 常に「ここで外生性は破れていないか?」と自問する習慣が重要。

外生性 研究デザインの段階で担保 「経済水準」が未観測の交絡因 E[u|X]=0 が前提 RCT / 操作変数 / IV 内生性 (endogeneity) 条件付き独立性

🔗 隣接手法への橋渡し

「外生性」は単独で完結せず、 隣接する手法と接続することで分析パイプラインの一部として機能する。 以下に具体的な接続関係を示す。

外生性は OLS の一致性を担保する根本仮定で、 違反すると係数推定が偏向する。 まず DAG (back-door / front-door パス) で潜在的な内生源を洗い出し、 RCT が不可能なら IV・RDD・DID・PSM のいずれかを選択する。 たとえば「教育投資 → 地域所得」のような因果を推定する際は、 地理的近接県の予算比率を IV 候補にし、 weak instrument 検定 (F > 10) で妥当性確認する。

🌳 手法選択フロー

「外生性」を実際の課題に当てはめるとき、 以下の 3 ステップで判断する。 領域固有の判断基準と組み合わせて使用する。

  1. ステップ 1: 説明変数と誤差項の相関を疑う
  2. ステップ 2: Hausman 検定 (1978) で外生性を統計的に検証
  3. ステップ 3: 内生なら IV または RDD

外生性は統計検定だけでは確証できず、 領域知見と因果図式の併用が必須。 観察データなら IV (Wald 推定量 → 2SLS)、 政策境界周辺なら RDD、 並行トレンド成立なら DID、 マッチング可能なら傾向スコアと、 識別戦略を Angrist & Pischke (2009) の「信頼性革命」の枠組みで選ぶ。

❌ 「有意 = 因果」と即断
p < 0.05 でも内生性があれば因果解釈不可。 まず外生性を疑う癖を。
❌ 欠落変数の見落とし
「思いつく限り入れた」モデルでも、 未観測の交絡因子は残る。 自然実験や RCT を検討。
❌ 操作変数の質
IV は 外生かつ X と強相関 でなければ無意味。 weak IV はバイアスを増幅。
❌ 逆因果の見過ごし
「広告費 → 売上」のつもりが、 売上が高い企業ほど広告費を増やせる、 という逆因果。
❌ 過剰なコントロール
中間変数を統制すると逆にバイアス(Bad Control 問題)。 因果ダイアグラムを描いて整理。

📜 ひとことヒストリー

外生性 は「因果推論」分野の中で発展してきた概念・手法です。 学術的には継続的な研究で精緻化され、 実務的にはツール・ライブラリの普及で誰でも使えるようになってきました。 用語の使い方・意味は時代と分野で少しずつ変わるため、 文脈に応じた解釈が大切です。 入門書だけでなく、 標準的な教科書(例:データサイエンス・統計学の定本)や信頼できるオンライン教材も併用すると、 ぶれない理解に近づけます。

✅ 実務チェックリスト — 外生性

🎮 触って理解する

説明変数 $x$ と誤差項 $\varepsilon$ の相関 (=内生性の強さ) をスライダーで変えてみよう。 外生性が成り立つ (相関 $=0$) とき OLS は真の因果効果を不偏に推定するが、 内生性 (相関 $\ne 0$) があると推定係数が真値から系統的にずれる (バイアス) ことを体感できる。 散布図の 真の直線 (緑)OLS 推定直線 (橙) の傾きの差がバイアスである。

モデルは $y = \beta_{\text{true}}\, x + \varepsilon$(真の効果 $\beta_{\text{true}}=2.00$、切片 $0$)。 標本は固定した $n=60$ 点で、スライダーは $x$ と $\varepsilon$ の相関 $\rho=\text{Corr}(x,\varepsilon)$ だけを動かす。 理論上 OLS の傾きは $\hat\beta = \beta_{\text{true}} + \dfrac{\text{Cov}(x,\varepsilon)}{\text{Var}(x)}$ となり、 ここでは $x,\varepsilon$ を標準化してあるのでバイアスはちょうど $\rho$ に等しくなる。

0.00

散布図の上を左右にドラッグ(タッチ可)しても内生性を変えられる

真の因果効果 β_true
2.000
OLS 推定 β̂
2.000
バイアス β̂ − β_true
+0.000
実測 Corr(x, ε)
0.000

外生性が成立 (ρ=0):OLS 推定はほぼ真値 2.0。バイアスなし。

🎨 直感でもう一段深く

外生性が成り立つとき、$x$ の変動は「きれいな変動」だ。$x$ が動く理由は $\varepsilon$(=モデルに入っていない全要因)とは無関係なので、 $y$ の変化のうち $x$ に紐づく部分は純粋に $x\to y$ の因果効果を映す。 スライダーを $\rho=0$ にすると、点群は真の直線のまわりに対称に散らばり、OLS 直線は真の直線とほぼ重なる。 一方 $\rho$ を上げると、$x$ が大きい点ほど $\varepsilon$ も大きくなり、点群が斜めに引き伸ばされ、 OLS 直線は真の傾きより急になる。この「余分な傾き」がまさに $\text{Cov}(x,\varepsilon)/\text{Var}(x)$ である。

⚠️ よくある落とし穴

🚀 発展:内生性が疑わしいとき

🎯 まとめ — このページで押さえること

「外生性」 はこのページで詳しく扱った概念です。 持ち帰ってほしい 3 つの要点

  1. 外生性 (Exogeneity)=説明変数 X と誤差項 ε が独立(または非相関)な状態。 OLS が 一致推定量 となる重要条件。
  2. 違反すると 内生性 (Endogeneity) 問題。 推定された係数が偏り、 因果解釈ができない。
  3. 内生性の主因:(1) 欠落変数バイアス、 (2) 逆因果、 (3) 測定誤差、 (4) 同時方程式

さらに学ぶには、 関連用語関連グループ教材 を参照してください。 各用語ページを縦断的に読むことで、 体系的な理解が育ちます。

🔍 解説深化: 「時間の矢」と外生性 — 今年のショックは来年の X に流れ込む

本文の実値計算は 2023 年単年のクロスセクションで、 問うたのは同時的外生性 $E[\varepsilon_t \mid X_t]=0$ だけだった。 しかし SSDSE-B-2026 は 2012〜2023 年のパネルであり、 固定効果推定を使うなら厳密な外生性 (誤差が過去・現在・未来の $X$ すべてと無相関) が要る。 このセクションでは、 本文と同じ「人口 (A1101) → 出生数 (A4101)」の例で、 時間方向の外生性が構造的に破れる仕組みを実データで確かめる。 これは本ページ後半の表 (「パネルは Strict が必要」) を、 実際に数値で診断してみる試みである。

🎨 直感 — 恒等式が作るフィードバック

人口には会計上の恒等式がある: 翌年の人口 ≈ 今年の人口 + (出生 − 死亡) + (転入 − 転出)。 実測でも、 Δ人口 (翌年人口 − 今年人口) と「自然増減 + 社会増減」の相関は $r = 0.908$ (2012→2013 〜 2022→2023 の 47 都道府県 × 11 遷移、 $n=517$。 転入 A5101・転出 A5102 に国際移動などが載らないため厳密には 1 にならない)。 つまり被説明変数である出生数そのものが、 翌年の説明変数 (人口) に定義上加算される。 「予想外に出生が多かった」という今年の誤差 $\varepsilon_t$ は、 来年の $X_{t+1}$ に機械的に流れ込む — 未来の $X$ と誤差が相関するので、 厳密な外生性はこのモデル設計の時点で破れている。

実測で確認する。 各年ごとにクロスセクション OLS (出生数 〜 人口) を当てはめ、 残差 $e_{i,t}$ と「翌年への人口変化 $\Delta X_{i,t\to t+1}$」の相関を取ると:

診断量 (実測, SSDSE-B-2026, n=517)読み方
Corr($e_{i,t}$, Δ人口$_{t\to t+1}$)+0.334今年のショックが翌年の X と相関 = strict 違反のシグナル
Corr($e_{i,t}$, 自然増減$_t$ = A4101−A4200)+0.472機械的経路 (残差は出生の予想外部分そのもの)
Corr($e_{i,t}$, 社会増減$_t$ = A5101−A5102)+0.161機械では説明できない経路 (下記「落とし穴」参照)

今年の残差は翌年の人口変化と正に相関する。 同時的外生性の議論 (本文) では見えなかった「時間の矢」に沿ったフィードバックが、 パネル化した瞬間に問題として浮上する。

⚠️ 落とし穴 (重要)

  1. 「機械的な流入だから無害」と片付けない: 出生数は人口のわずか 0.585% (2023 年全国実測) なので、 恒等式経由の流入は毎年ごく小さい。 問題はむしろ社会増減との相関 +0.161 の方で、 「出生が予想外に多い県は、 その後人も流入する」— つまり誤差に残った未観測要因 (雇用・住宅・子育て環境) が転入という行動経路でも将来の $X$ を動かしていることを示唆する。 こちらは恒等式では消えない本物の警告。
  2. 「パネル化 + 固定効果で内生性は解決」という定番の思い込み: 県ごとの平均残差と長期人口変化率 (2012→2023) の相関は +0.34 (実測)。 沖縄県 (平均残差 +5,457 人 / 人口 +4.04%)・愛知県 (+4,818 / +0.62%) は残差もその後の人口も正方向、 秋田県 (−1,598 / −14.02%)・青森県 (−1,144 / −12.30%) は逆。 固定効果 (within) 推定は厳密な外生性を前提とするため、 このフィードバックの下では年数 $T$ の小さいパネルで係数が偏る (Nickell バイアスと同型の問題)。 固定効果は「時間不変の交絡」を消すだけで、 時間方向のフィードバックには無力。
  3. この診断は棄却専用で、 証明には使えない: 「残差 × 未来の X」の相関が小さくても厳密な外生性の保証にはならない (検出力不足や経路の相殺があり得る)。 本文の落とし穴「外生性は仮定であり証明できない」は、 時間方向でもそのまま成り立つ。

🚀 発展