論文一覧に戻る 🕸 論文ネットワーク 🗺 用語ネットワーク 統計データ分析コンペ 教育用再現集
審査員奨励賞[大学生・一般の部] ★

操作変数法を用いた精神疾患の要因分析

⏱️ 推定読了時間: 約20分
2022年度(令和4年度)統計データ分析コンペティション | 増田涼音・加藤風歌・杉原朱音・杉山巧(南山大学総合政策学部総合政策学科) | SSDSE-B-2022・患者調査・就業構造基本調査・雇用保険事業年報 ほか(本ページ実再現はSSDSE-B) | 操作変数法(2SLS)・パネルデータ分析(固定効果)・F検定・ハウスマン検定
🔬 2SLS🔬 Hausman検定🔬 VIF/多重共線性🔬 パネルデータ分析🔬 操作変数🔬 操作変数法🏷 労働・雇用🏷 メンタルヘルス🏷 犯罪・安全
🔬 手法タグ / 🏷 応用タグ(クリックで同タグの論文をネットワーク検索)
🔬 再現カルテ — 原論文と同じデータ・同じ手法で再現

この教材は原論文と同じデータを読み込み、同じ手順で計算し直しています。画面に出る数値と図は、あなたのブラウザがその場で計算した結果です。

原論文が使ったデータ論文本文からは特定できなかった
分析単位:都道府県
中核手法:パネルデータ分析・操作変数法・固定効果法・変量効果法・POLS
この教材が使うデータ
原論文(PDF)操作変数法を用いた精神疾患の要因分析
審査員奨励賞/増田 涼音、加藤 風歌、杉原 朱音、杉山 巧(南山大学総合政策学部)
✅ この教材でできること
  • 原論文の中核手法(パネルデータ分析)を実データで実行できる
  • 分析に使うデータは同梱済みで、ブラウザ上でそのまま読み込める
  • 数値・図を最後まで再計算できる(パネルデータ分析)
突合監査の結果、主要データと中核手法はいずれも原論文と一致しています。

▶ ここに書いてある分析は、ページ下部の「🐍 ブラウザで動かす」でそのまま実行できます(インストール不要)。動かしているのは code/2022_U5_12_shorei.py(292 行)そのものです。

📝 3行で分かる要約

目次

  1. 研究のテーマと目的
  2. 使用データと再現可能性の整理
  3. 分析の流れ:内生性 → 操作変数法 → 妥当性検定
  4. 図1:説明変数の相関行列(報告値)
  5. 図2:離職率係数の4手法比較(報告値)
  6. 図3:操作変数法の各係数のt値(報告値)
  7. 図4:有効求人倍率ランキング(実再現)
  8. 結果の解釈と提言
  9. まとめと今後の課題
  10. データ・コードのDL
  11. ⚠️ よくある誤解
  12. 📖 用語集
  13. 📐 手法ガイド
  14. 🚀 発展の可能性
  15. 🎯 自分でやってみよう
  16. 🤔 Q&A
  17. 🐍 ブラウザで動かす

🎯 この記事を読むと何ができるようになるか

📥 データの準備(再現コードを動かす前に)

このページで実再現できるのは図4(有効求人倍率のランキング)だけです。コードの編集は不要です。(原論文の中心である外来受療率・離職率・精神病床数・成人喫煙率・雪日数・刑法犯認知件数は SSDSE-B に列が無く、分析期間も 2000〜2017 で SSDSE-B の 2012〜2023 と重ならないため、図1〜図3は原論文の報告値を転記して可視化します。)

1
データをダウンロードする 独立行政法人統計センターの SSDSE(教育用標準データセット)配布ページから、以下をダウンロードします。
SSDSE-B-2026.csv ← SSDSE-B(都道府県別・基礎データ、社会・人口統計体系)📥 直接DL
⬇ SSDSEダウンロードページを開く
2
ファイルを所定のフォルダに配置する ダウンロードしたCSVを、プロジェクトの data/raw/ フォルダに入れます。
2026 統計・データ解析コンペ/ ├── code/ │ └── 2022_U5_12_shorei.py ← 実行するスクリプト └── data/ └── raw/ SSDSE-B-2026.csv ← ここに置く
3
スクリプトをそのまま実行する ターミナルでプロジェクトルートに移動し、以下を実行します。
python3 code/2022_U5_12_shorei.py
図は html/figures/ に自動保存されます。外来受療率・離職率など SSDSE-B 収録外の指標はスクリプト内に原論文の報告値を転記して可視化し、有効求人倍率のみ SSDSE-B から実再現します。
研究のテーマと目的

日本の自殺者数は1997〜1998年に急増し、その後も深刻な社会問題であり続けている。自殺の大きな要因のひとつが精神疾患であり、その背景には労働環境や地域の社会環境が影響していると著者らは考えた。そこで、精神疾患の要因を明らかにできれば自殺率の抑制につながる、という発想から研究を始めている。

本研究の被説明変数は、精神及び行動の障害の推計患者「外来受療率」(人口10万人当たり)である。都道府県別のパネルデータを使い、社会経済・自然・健康の3分野から7つの説明変数を投入する。最大の焦点は離職率だ。「職のストレスで精神疾患になり離職する」のか「離職という環境変化が精神疾患を招く」のか——原因と結果が双方向に絡むため、ふつうの回帰では因果の向きも大きさも正しく測れない。ここに操作変数法を持ち込んだのが本研究の核心である。

46.76***
離職率の係数(操作変数法・報告値・表5)
8.02
離職率の係数(固定効果法・非有意・報告値・表5)
約5.82倍
2SLSは固定効果法の何倍か(報告値)
F=32.2
第1段階F値(>10で弱操作変数でない・報告値)
研究の問い 精神及び行動の障害の外来受療率は何によって決まるのか。とくに離職率は外来受療率の原因と言えるのか。原因と結果が同時に決まる(内生性)状況で、離職率の「本当の効果」をどう取り出すか。
分析のキモ:内生性を操作変数で断ち切る 離職率と外来受療率は互いに影響し合うため、そのまま回帰した係数は歪む。そこで、離職の決断に効くが精神疾患には直接効かないと考えられる有効求人倍率・一般求職者給付受給者実人員割合操作変数にし、離職率のうち「これらで説明できる部分」だけを使って外来受療率への効果を測る。相関ではなく因果に踏み込もうとした点が見どころ。

大学生・一般の部 SSDSE-B-2022+患者調査・就業構造基本調査・雇用保険事業年報 操作変数法(2SLS) パネルデータ分析(固定効果) F検定・ハウスマン検定

使用データと再現可能性の整理

本研究は多数の政府統計を都道府県単位で結合している。中心の外来受療率は患者調査、離職率は就業構造基本調査、操作変数の一般求職者給付受給者実人員割合は雇用保険事業年報、有効求人倍率は職業安定業務統計から取っている。調査年が変数ごとに異なるため、被説明変数の調査年(2002・2008・2011・2017)に合わせ、説明変数はその前年(ラグ付き)の値を4時点だけ抜き出して接続している(N=47都道府県×4時点=188)。

主なデータと出典(原論文 表2)

役割変数出典(調査)本ページでの扱い
被説明変数精神及び行動の障害 外来受療率(人口10万人当たり)患者調査・国勢調査・人口推計報告値の可視化
内生変数離職率(%)就業構造基本調査報告値の可視化
操作変数①一般求職者給付受給者実人員割合(%)雇用保険事業年報報告値の可視化
操作変数②有効求人倍率(倍)職業安定業務統計(SSDSE-B F3103/F3102)実再現
外生変数離婚率・刑法犯認知件数・雪日数・降水量・成人喫煙率・精神病床数人口動態調査・犯罪統計・気象庁・国民生活基礎調査・医療施設調査報告値の可視化
再現可能性の整理(このページの図の作り方)
  • 報告値の可視化(再計算ではない):原論文の中心である外来受療率・離職率・精神病床数・成人喫煙率・雪日数・刑法犯認知件数・一般求職者給付受給者実人員割合SSDSE-B に列が無く、分析期間(2000〜2017)も SSDSE-B-2026(2012〜2023)と重ならない。よって図1(表3の相関行列)・図2(表5の係数比較)・図3(表5の操作変数法)は原論文の報告値を符号・桁そのまま転記して可視化する。
  • 実再現できる部分:原論文の操作変数の一つ有効求人倍率は SSDSE-B に F3103 月間有効求人数(一般)F3102 月間有効求職者数(一般) として収録されている。そこで 有効求人倍率(F3103/F3102)を都道府県別に実データで再計算する(図4)。ただし2023年の値であり、原論文の分析期間とは異なる点、および外来受療率が SSDSE に無いため因果分析そのものは再現できない点を図注に明記する。
  • 新しい数値の捏造はしない:報告値と再計算値はラベルで分離する。GDP・県内総生産・高齢化率などは本研究の分析に用いず、SSDSE-B に無い列は使わない。

分析の流れ:内生性 → 操作変数法 → 妥当性検定

分析の流れ
パネル分析
POLS/固定効果
/変量効果
モデル選択
F検定→効果あり
ハウスマン→固定効果
内生性
離職率と外来受療率
の同時決定
操作変数法
有効求人倍率
ほかで2SLS
妥当性検定
第1段階F=32.2
過剰識別p=0.76

① パネル分析で個体効果を扱う(POLS・固定効果・変量効果)

まず3つのパネルモデルを推定。観察できない都道府県ごとの特性(個体効果)を、誤差に含める(POLS)/説明変数と相関を許す(固定効果)/独立と仮定する(変量効果)で扱いが違う。

② モデル選択の検定(F検定・ハウスマン検定)

F検定で個体効果の有無を判定(F=2.06, p<0.01で「効果あり」)、ハウスマン検定で個体効果と説明変数の相関を判定(χ²=18.8, p=0.043)。結果、固定効果法を採択した。

③ 内生性の認識(同時決定)

離職率と外来受療率は双方向に影響し合うため、離職率は内生変数。そのまま回帰した係数はバイアスを持つ。

④ 操作変数法(2SLS)で因果に迫る

離職の決断に効くが精神疾患には直接効かない有効求人倍率・一般求職者給付受給者実人員割合操作変数にし、離職率の外生的な変動だけを使って外来受療率への効果を推定する。

⑤ 操作変数の妥当性を検定する(関連性・外生性)

関連性は第1段階F値(>10で弱操作変数でない)、外生性・除外制約は過剰識別制約検定で確認する。

相関では因果は言えない。だから操作変数を使う 離職率と外来受療率に相関があっても、どちらが原因かは分からない(因果の向きの問題)。操作変数法は、結果に直接効かない「てこ」を通して原因側だけを動かすことで、相関を超えて因果の大きさを取り出そうとする手法である。
1
図1:説明変数の相関行列(報告値)

まず、7つの説明変数と外来受療率の関係を一望する。外来受療率・離職率などは SSDSE に無い変数のため、原論文 表3 の相関行列を転記して可視化する(再計算ではない)。

やってみよう原論文 表3 の相関行列を転記する
  • ① このブロックの目的:外来受療率と7つの説明変数のピアソン相関係数を符号・桁そのままに書き出し、対称行列に復元する。外来受療率・離職率が SSDSE に無いため再計算ではなく報告値の転記。
  • ② 前後のつながり:操作変数法に入る前の下ごしらえ。ここで説明変数どうしの相関の弱さ(=多重共線性が小さい)を確認し、単相関では離職率と外来受療率の関係(+0.206)がまだ弱いことを押さえる。
▼ 実行結果(原論文の報告値)
=== [1] 表3 相関行列(原論文の報告値・再計算ではない)===
         外来受療率    離婚率  刑法犯認知件数    離職率    雪日数    降水量  成人喫煙率  精神病床数
外来受療率    1.000  0.032   -0.355  0.206  0.145  0.032 -0.365  0.330
離婚率      0.032  1.000   -0.047 -0.012 -0.249 -0.240 -0.043 -0.021
刑法犯認知件数 -0.355 -0.047    1.000  0.395 -0.332 -0.118  0.642 -0.350
離職率      0.206 -0.012    0.395  1.000 -0.279  0.137  0.113  0.139
雪日数      0.145 -0.249   -0.332 -0.279  1.000 -0.196  0.148 -0.017
降水量      0.032 -0.240   -0.118  0.137 -0.196  1.000 -0.134  0.367
成人喫煙率   -0.365 -0.043    0.642  0.113  0.148 -0.134  1.000 -0.119
精神病床数    0.330 -0.021   -0.350  0.139 -0.017  0.367 -0.119  1.000

外来受療率との相関(報告値):
  離婚率      +0.032
  刑法犯認知件数  -0.355
  離職率      +0.206
  雪日数      +0.145
  降水量      +0.032
  成人喫煙率    -0.365
  精神病床数    +0.330
  • ④ 実行結果の読み取り:① 外来受療率と最も強い相関は成人喫煙率 −0.365刑法犯認知件数 −0.355精神病床数 +0.330。② 注目の離職率は +0.206と単相関では弱い(=この段階では離職率の効果はまだ見えない)。③ 説明変数どうしで最も強いのは喫煙率×刑法犯認知件数(+0.642)だが、後述の VIF は最大4.08で多重共線性は問題なし。すべて原論文の報告値である。
説明変数の相関行列(報告値の可視化)
図1:外来受療率と7つの説明変数の相関行列。報告値の可視化(再計算ではない)(原論文 表3)。赤=正、青=負。外来受療率と離職率の単相関は+0.206と弱く、操作変数法で内生性を補正すると効果が大きく変わる(図2)。数値はすべて原論文の報告値。
📊 この図の読み方
色の濃さ
濃い赤=強い正の相関、濃い青=強い負の相関、白に近い=ほぼ無相関。対角線は自分自身との相関で必ず1。
1行目(外来受療率)
被説明変数との相関。喫煙率・刑法犯・精神病床数がやや強く、離職率は+0.206と弱い。
離職率の弱い単相関
ここでは弱いのに、操作変数法だと係数が大きく有意になる。これが「内生性を補正した」効果(図2で確認)。
2
図2:離職率係数の4手法比較(報告値)

本研究の心臓部。同じ離職率でも、推定手法によって係数がどう変わるかを比べる。外来受療率・離職率は SSDSE に無いため、原論文 表5 の係数・標準誤差を転記して可視化する。

やってみよう原論文 表5 の離職率係数を4手法で並べる(POLS/固定効果/変量効果/操作変数法)
  • ① このブロックの目的:離職率の係数・標準誤差を4手法ぶん転記し、t値(係数÷標準誤差)と有意記号を並べる。あわせて本文の検定値(第1段階F=32.205、過剰識別検定p=0.7629)を書き出す。再計算ではなく報告値の転記。
  • ② 前後のつながり:図1で弱かった離職率が、内生性を補正するとどう変わるかを見る山場。ここで係数が跳ね上がることが、次の妥当性検定(第1段階F・過剰識別)の説得力につながる。
▼ 実行結果(原論文の報告値)
=== [2] 表5 離職率の係数:4手法の比較(原論文の報告値)===
手法                係数        標準誤差      t値  有意
POLS          18.368       7.188    2.56  **
固定効果           8.024      12.344    0.65  
変量効果          19.027       7.736    2.46  **
操作変数法         46.761      10.851    4.31  ***

第1段階F値 = 32.205(>10 なので操作変数は十分に強い)
過剰識別制約検定 p = 0.7629(>0.05 で外生性を棄却せず)
2SLSの離職率係数は固定効果法の約 5.82 倍(8.02 → 46.76)
  • ④ 実行結果の読み取り:① 固定効果法の離職率は8.02で非有意だが、操作変数法では46.76で1%有意と約5.82倍に跳ね上がる。② これは、離職率と外来受療率の同時決定を無視すると効果が過小評価されていたことを意味する。③ しかも操作変数は第1段階F=32.2(>10)で強く、過剰識別検定p=0.76で外生性も棄却されない。数値はすべて原論文の報告値。
離職率係数の4手法比較(報告値の可視化)
図2:離職率が外来受療率に与える効果(POLS・固定効果・変量効果・操作変数法)。報告値の可視化(再計算ではない)(原論文 表5)。エラーバーは報告値の標準誤差×1.96。操作変数法(赤)だけ係数46.76が飛び抜けて大きく1%有意。数値はすべて原論文の報告値。
📊 この図の読み方
棒の高さ
離職率が1%ポイント増えたとき外来受療率(人口10万人当たり)が何人増えるか。赤の操作変数法だけ46.76と突出。
エラーバー(±1.96SE)
誤差の幅。0をまたぐと非有意(固定効果法の8.02はまたぐ)。操作変数法は0から離れており1%有意。
なぜ2SLSが大きい
単純な回帰では「精神疾患だから離職する」逆向きの効果が混ざり係数が薄まる。操作変数で原因側だけ取り出すと本来の大きさが現れる。
3
図3:操作変数法の各係数のt値(報告値)

操作変数法モデル全体で、どの説明変数が効いているかを見る。係数の単位がバラバラなので、報告値の係数÷標準誤差=t値で有意性をそろえて可視化する。係数・標準誤差はすべて原論文 表5 の報告値。

やってみよう原論文 表5(操作変数法の列)から t値 を算出して有意性を比べる
  • ① このブロックの目的:操作変数法の7変数について、報告値の係数と標準誤差を転記し、t値(係数÷標準誤差)と有意記号を並べる。t値は報告値から計算した可視化用の指標で、新しい推定ではない。|t|>1.96で5%有意、>2.58で1%有意。
  • ② 前後のつながり:図2で離職率が主役だと分かったので、次に「他に何が効くのか」を確認する部分。ここで刑法犯認知件数が負に有意になり、後の考察(仮説と逆・欠落変数の可能性)につながる。
▼ 実行結果(原論文の報告値)
=== [3] 表5 操作変数法(2SLS)の推定結果(原論文の報告値)===
変数                  係数        標準誤差      t値  有意
離婚率              4.894       3.603    1.36  
刑法犯認知件数         -5.930       2.389   -2.48  **
離職率             46.761      10.851    4.31  ***
雪日数              1.218       0.542    2.25  **
降水量             -0.014       0.015   -0.93  
成人喫煙率           -0.547       2.785   -0.20  
精神病床数            0.158       0.348    0.45  

※ t値 = 報告値の係数 ÷ 報告値の標準誤差(有意性を見るための可視化用の指標)。
  |t|>1.96 で5%有意、|t|>2.58 で1%有意。原論文の有意記号(***,**)と対応する。
  • ④ 実行結果の読み取り:① 有意なのは離職率(t=4.31, 1%)刑法犯認知件数(t=−2.48, 5%)雪日数(t=2.25, 5%)の3つ。② 刑法犯認知件数は仮説では正と予想したのに負に有意で、著者は欠落変数やより良い操作変数の可能性を指摘している。③ これらのt値は原論文の有意記号(***,**)と対応する。係数・標準誤差はすべて原論文の報告値。
操作変数法の各係数のt値(報告値から算出)
図3:操作変数法の各説明変数の有意性(t値=報告値の係数÷標準誤差)。報告値の可視化(再計算ではない)(原論文 表5)。破線は±1.96(5%)・±2.58(1%)。離職率・刑法犯認知件数・雪日数が有意。係数・標準誤差はすべて原論文の報告値。
📊 この図の読み方
破線より外側
|t|が1.96(5%)や2.58(1%)を超えると統計的に有意。離職率だけが2.58を超える。
符号
右(正)=その変数が増えると外来受療率が上がる、左(負)=下がる。刑法犯認知件数は負で、仮説と逆。
t値を使う理由
係数の単位(%・日・mm…)がバラバラで大きさを直接比べられないため、標準誤差で割って有意性の物差しをそろえた。
4
図4:有効求人倍率ランキング(実再現)

ここは唯一の実再現である。原論文の操作変数の一つ「有効求人倍率」を、SSDSE-B の実データで都道府県別に再計算する。外来受療率が SSDSE に無いため因果分析は再現できないが、操作変数そのものは実データで確かめられる。

やってみよう操作変数「有効求人倍率」を SSDSE-B から都道府県別に実再現する【実再現・図4】
  • ① このコードの目的:SSDSE-B-2026 を cp932・ラベル行 skiprows=[1] で読み込み、2023年(df[df["SSDSE-B-2026"]==2023])について F3103 月間有効求人数(一般)F3102 月間有効求職者数(一般) から有効求人倍率を計算し、降順に並べる。原論文が操作変数に使った指標を、実データで再現する。
  • ② 前後のつながり:原論文は有効求人倍率を「離職の決断に効くが精神疾患には直接効かない」操作変数として使った。外来受療率は SSDSE に無いので因果分析そのものは再現できないが、操作変数そのものは SSDSE-B から実データで確かめられる。
📝 コード
258
259
260
261
262
263
264
265
266
267
268
269
270
df = pd.read_csv(DATA_B, encoding='cp932', skiprows=[1])   # 先頭列 SSDSE-B-2026 が年度
d23 = df[df['SSDSE-B-2026'] == 2023].copy()                 # 2023年を抽出
d23 = d23[d23['Code'].astype(str).str.match(r'^R\d{5}$')]   # 都道府県のみ(コードは R+5桁)
d23['有効求人倍率'] = d23['F3103'] / d23['F3102']           # 有効求人数 / 有効求職者数
rank = d23[['Prefecture', '有効求人倍率']].sort_values('有効求人倍率', ascending=False).reset_index(drop=True)
print(f'全国{len(rank)}都道府県  平均={rank["有効求人倍率"].mean():.3f}  '
      f'最小={rank["有効求人倍率"].min():.3f}  最大={rank["有効求人倍率"].max():.3f}')
print('\n<上位5>')
for _, r in rank.head(5).iterrows():
    print(f'  {r["Prefecture"]:<6} {r["有効求人倍率"]:.3f}')
print('<下位5>')
for _, r in rank.tail(5).iterrows():
    print(f'  {r["Prefecture"]:<6} {r["有効求人倍率"]:.3f}')
▼ 実行結果
=== [4] 有効求人倍率を SSDSE-B から実再現(2023年・都道府県別)===
全国47都道府県  平均=1.349  最小=0.897  最大=1.863

<上位5>
  福井県    1.863
  新潟県    1.734
  島根県    1.714
  岐阜県    1.618
  広島県    1.608
<下位5>
  埼玉県    1.048
  兵庫県    1.013
  滋賀県    1.007
  千葉県    0.968
  神奈川県   0.897
  • ④ 実行結果の読み取り:有効求人倍率は神奈川県 0.897 〜 福井県 1.863と都道府県差が大きい(全国平均1.35)。これだけ地域差のある指標が離職率を動かし、外来受療率には直接効かないという仮定の上に操作変数法が成り立っている。ただしこれは2023年の値で、原論文の分析期間(2000〜2015)とは異なる点に注意。
都道府県別 有効求人倍率ランキング(2023年・SSDSE-B・実再現)
図4:都道府県別 有効求人倍率(2023年)。実再現。SSDSE-B の F3103/F3102(月間有効求人数/月間有効求職者数・一般)から算出。神奈川0.90〜福井1.86。原論文の分析期間(2000〜2015)とは異なる年であり、外来受療率が SSDSE に無いため操作変数法そのものは再現できない。
📊 この図の読み方
大きな県差
有効求人倍率は0.90〜1.86と約2倍の開き。福井・新潟・島根など地方で高く、神奈川・千葉・埼玉など都市部で低い。
操作変数としての意味
これだけ地域差のある「求人の逼迫度」が離職の決断に効き、精神疾患には直接効かない、という仮定が操作変数法の前提。
位置づけ
実再現。SSDSE-Bの実データから計算。ただし2023年で、原論文の分析期間とは異なる。離職率・外来受療率は SSDSE に無く再現できない。

結果の解釈と提言

固定効果法では離職率と外来受療率に正の関係はあるが有意ではなかった。しかし操作変数法を用いた固定効果法では、より強い正の関係が有意(1%水準)に現れた。著者はこれを次のように読み解く。

離職→環境変化→精神疾患(原論文 7章)

離職率が上がるほど外来受療率が上がるのは、職を失った・新しい職場に移った人が、環境の変化によって精神疾患を引き起こし精神科にかかるためと考えられる。当初仮説では「離職で仕事のストレスから解放され受療率は下がる」と予想したが、実際は逆だった。操作変数を用いた係数が固定効果法の約5.82倍になったことは、同時決定を考慮すると離職率の効果はより大きく見えることを示す。有効求人倍率・一般求職者給付受給者実人員割合が「離職率を通してのみ」外来受療率に効くと確認できたので、離職率が外来受療率の原因だと解釈できる、というのが著者の主張である。

より正確な分析のために(補足) 原論文の因果解釈は「有効求人倍率などが精神疾患に直接は効かない(除外制約)」という仮定に依存している。過剰識別制約検定(p=0.7629)はこの仮定と整合的だが、検定はあくまで「棄却されなかった」だけで除外制約を証明するものではない。景気(有効求人倍率)は所得や生活不安を通じて精神状態に直接影響しうるため、除外制約の妥当性は理論的にも吟味する必要がある。この点は原論文自身も「より適切な操作変数が存在する可能性」として認めている。

仮説と逆の結果:刑法犯認知件数(原論文 8章)

刑法犯認知件数は仮説では正(治安が悪いほど受療率が高い)と予想したが、負に有意(−5.93)となった。著者はこの原因として、①外来受療率に密接に関わる重要な変数の欠落、②より適切な操作変数の存在、の2点を挙げ、結果を過大解釈しない姿勢を示している。

提言:労働環境の整備で離職率を下げる(原論文 8章)

離職率が外来受療率に正の影響を持つなら、離職率を下げることが精神疾患・自殺率の抑制につながる。具体策として、通勤や身体的負担のストレスを減らすテレワーク・在宅ワークの導入、悩みを抱える人が相談できる企業内メンタルヘルスケアの整備を提案している。

この考察の限界 本研究は都道府県の集計データであり、個人属性を考慮した要因発見はできない。また R 言語の制約から、固定効果法に基づく操作変数法を「都道府県ダミーを外生変数に加える」方法で近似している。厳密な固定効果IVには別のソフトや手法が要る、と著者自身が述べている。

まとめと今後の課題

本研究は、精神及び行動の障害の外来受療率は何で決まるかという問いに、都道府県パネルデータ(N=188)と操作変数法(2SLS)で挑んだ。離職率は固定効果法では非有意(係数8.02)だったが、内生性を補正した操作変数法では係数46.76・1%有意と約5.82倍に。第1段階F=32.2・過剰識別検定p=0.76で操作変数は妥当とされ、著者は「離職→環境変化→精神疾患」という因果を示唆した。政策提言はテレワークや企業内メンタルヘルスケアによる離職率の低減である。本ページでは、操作変数の一つ有効求人倍率を SSDSE-B で実再現し(図4)、外来受療率・離職率にまつわる係数は報告値として切り分けた。相関では見えない因果に、操作変数という「てこ」で迫った探究が見どころである。

この研究の限界 ①中心の係数は外来受療率・離職率が対象で、本ページのSSDSE-Bでは実再現できず報告値の可視化にとどまる(有効求人倍率のみ実再現)。②操作変数法の因果解釈は除外制約という検証しきれない仮定に依存する。③都道府県の集計データで個人属性を扱えない。④固定効果IVを都道府県ダミーで近似しており、厳密な手法は今後の課題と著者自身が述べている。
この研究から学べること 原因と結果が絡む(内生性)場面で、相関で終わらせず操作変数という「てこ」で因果に迫る発想、そしてその妥当性を関連性(第1段階F)と外生性(過剰識別検定)で検証する手順。さらに、実再現できる部分と報告値を切り分ける誠実さ。審査会も学部生による高度な計量分析への挑戦を評価し、審査員奨励賞に選んだ。

データ・コードのダウンロード

このページの実再現の図(図4)は、以下から再現できます。

🐍 再現コード(.py) 📊 SSDSE-B-2026.csv

※ 図4(有効求人倍率のランキング)はSSDSE-Bの F3103/F3102 から算出した実再現です(2023年)。図1(相関行列)・図2(係数の4手法比較)・図3(操作変数法のt値)は、外来受療率・離職率・精神病床数などが患者調査・就業構造基本調査などの出典でSSDSE-B外・分析期間も異なるため、原論文の報告値を符号・桁そのまま可視化したものです(新たな数値の捏造はしていません)。

⚠️ よくある誤解と注意点

この研究を読むとき・まねするときに陥りやすい誤解を整理する。

誤解1:「操作変数法の係数(46.76)は固定効果法(8.02)より大きいから、より正しい=真の効果だ」
操作変数法は操作変数が妥当なときに限り内生性のない効果を与える。係数が大きいこと自体は「正しさ」を意味しない。除外制約(操作変数が結果に直接効かない)が崩れていれば、2SLSの方が大きく歪むこともある。本研究は第1段階F・過剰識別検定で妥当性を確認しているが、除外制約は検定だけでは証明できない。
誤解2:「離職率と外来受療率に相関があるなら、離職が精神疾患の原因だ」
相関だけでは因果の向きは分からない。「精神疾患だから離職する」逆向きの効果もありうる(内生性・同時決定)。だからこそ操作変数法で原因側だけを取り出す必要があった。
誤解3:「第1段階のF値が大きければ操作変数は完璧」
第1段階F値(32.2>10)が確かめるのは関連性(操作変数が内生変数と十分強く相関するか=弱操作変数でないか)だけ。もう一つの条件外生性・除外制約は別に確かめる必要があり、本研究は過剰識別制約検定(p=0.76)で補っている。両方そろって初めて妥当。
誤解4:「このページの図はすべて原論文と同じ数値を計算し直したもの」
図4(有効求人倍率のランキング)だけがSSDSE-Bからの実再現(しかも2023年で原論文と別の期間)。図1〜図3は外来受療率・離職率などが出典でSSDSE-B外のため報告値の可視化(再計算ではない)。図注に区別を明記している。

📖 用語集(この記事に出てくる統計用語)

クリックすると各用語の詳しい解説ページに移動できます。

操作変数法(IV・2SLS)
内生変数と相関するが結果には直接効かない「操作変数」を使い、内生性を除いて因果効果を推定する手法。本研究では離職率を内生変数、有効求人倍率などを操作変数にした。
内生性(同時決定)
説明変数が誤差項と相関し、係数が歪む問題。離職率と外来受療率が互いに影響し合う(同時決定)ため、離職率は内生変数になる。
外生性(除外制約)
操作変数が結果に直接は影響しないという条件。過剰識別制約検定(p=0.7629)で棄却されなかった。ただし検定は仮定を証明はしない。
固定効果(法)
観察できない個体(都道府県)ごとの特性が説明変数と相関することを許すパネル分析。本研究はF検定・ハウスマン検定を経て採択した。
パネルデータ
同じ対象(47都道府県)を複数時点(4時点)で観測したデータ。N=188。個体効果を識別できる。
ハウスマン検定
固定効果と変量効果のどちらを使うかを判定する検定。χ²=18.8, p=0.043で固定効果を採択した。
F検定
個体効果の有無(F=2.06, p<0.01)や、操作変数の関連性(第1段階F=32.2)を確かめる検定。
相関(相関係数)
2つの量が一緒に動く強さを−1〜+1で表す。離職率×外来受療率の単相関は+0.206と弱いが、操作変数法では効果が大きく現れる。
因果関係
一方が原因で他方が結果という関係。相関があっても因果は言えない。操作変数法は相関を超えて因果に迫る手法。
多重共線性
説明変数どうしが強く相関し係数が不安定になる問題。本研究はVIF最大4.08で問題なしと判断した。

📐 使っている手法をわかりやすく解説

この研究の中心である操作変数法を、内生性の認識から妥当性検定まで順に説明する。

全体像
まずパネル分析で個体効果を扱い(F検定・ハウスマン検定で固定効果を選択)→ 離職率と外来受療率の内生性(同時決定)に気づき → 操作変数法(2SLS)で原因側だけを取り出し → 関連性(第1段階F)と外生性(過剰識別検定)で操作変数の妥当性を確かめる。相関で終わらせず因果に迫るのが見どころ。
🎯 内生性(同時決定)
何が問題か
説明変数(離職率)が誤差項と相関すると、最小二乗法の係数は歪む(バイアスを持つ)。原因と結果が双方向に絡む「同時決定」はその典型。
どう見抜く
「Xが増えるとYが増える」と「Yが高い人はXを選ぶ」の両方がありうるか、理論的に考える。離職率と外来受療率はまさにこれ。
放置すると
係数の大きさも符号も信用できない。本研究では固定効果法の離職率が過小評価(8.02・非有意)になっていた。
🔧 操作変数法(2SLS)
何をする
内生変数(離職率)と相関するが結果(外来受療率)には直接効かない操作変数を用意する。第1段階で「操作変数→離職率」を回帰し、第2段階でその予測値を使って「離職率→外来受療率」を推定する。
読み方
2SLSの係数は、操作変数で説明できる離職率の変動だけを使った「内生性を除いた効果」。本研究では46.76(1%有意)。
注意
操作変数が妥当(関連性+外生性)でなければ、かえって歪む。係数が大きい=正しい、ではない。
💪 関連性の検定(弱操作変数の回避)
何をする
操作変数が内生変数と十分強く相関するかを第1段階のF値で確認する。本研究はF=32.2。
目安
F>10なら「弱操作変数ではない」とみなすのが慣例(Staiger–Stock)。F=32.2は余裕で満たす。
なぜ大事
関連が弱い(弱操作変数)と、2SLSの係数が大きくばらつき、わずかな外生性の破れでも結果が大きく歪む。
🚪 外生性・除外制約の検定
何をする
操作変数が結果に直接は効かない(誤差項と無相関)かを確かめる。操作変数が2つ以上あるとき過剰識別制約検定が使える。本研究はp=0.7629。
読み方
p>0.05で「外生性を棄却しない」=仮定と整合的。ただし棄却されないことは除外制約の証明ではない点に注意。
注意
除外制約は最終的に理論で正当化する必要がある。景気指標が精神状態に直接効く経路がないか、といった吟味が欠かせない。

🚀 発展の可能性(結果 X → 新仮説 Y → 課題 Z)

この研究の「離職率が外来受療率を押し上げる」という結論は、次の研究の出発点になる。

発展1:個票・市区町村データで再検証する(著者の今後の展望)
結果X
都道府県パネルの操作変数法で、離職率が外来受療率に正の因果(46.76・1%有意・報告値)を持つと示唆。
新仮説Y
個人属性(年齢・職種・世帯)を考慮しても、離職は精神疾患リスクを高めるのではないか。
課題Z
個票や市区町村レベルのデータで再現し、都道府県集計との結果を比較する。より適切な操作変数の探索も課題。
発展2:除外制約を強めた自然実験へ
結果X
有効求人倍率などを操作変数にしたが、景気は精神状態に直接効く経路もあり除外制約が弱い可能性。
新仮説Y
工場閉鎖や制度改正など、個人には外生的な離職ショックを使えば、より説得力のある因果推定ができるのではないか。
課題Z
自然実験的な操作変数や差の差分析と組み合わせ、除外制約の妥当性を高める。

🎯 自分でやってみよう(5つのチャレンジ)

再現コードを少し変えるだけで試せる課題を、易しい順に用意した。

★☆☆☆☆ 難易度1
別の年で有効求人倍率ランキングを出す
図4のコードは df[df['SSDSE-B-2026']==2023] で2023年を選んでいる。ここを2015年や2019年に変えて、有効求人倍率の順位がどう変わるかを見てみよう。
★★☆☆☆ 難易度2
有効求人倍率の年次推移を折れ線にする
特定の県(例:福井県)について、2012〜2023年の有効求人倍率(F3103/F3102)を計算し、折れ線グラフにしてみよう。景気の波が見える。
★★★☆☆ 難易度3
相関行列を絶対値で並べ替える
スクリプトの CORR_LOWER(報告値)から外来受療率との相関を取り出し、abs() で並べ替えて「関係が強い順」のランキングを作ってみよう。
★★★★☆ 難易度4
4手法の全変数の係数を一覧表にする
スクリプトの COEF(報告値)から、7変数×4手法の係数を pandas.DataFrame にまとめ、表5を再構成してみよう。手法間で符号が変わる変数に注目。
★★★★★ 難易度5
なぜ係数そのものは再現できないのか説明する
原論文の中心(離職率46.76 など)が、なぜSSDSE-Bで実再現できないのかを、外来受療率・離職率という列の有無分析期間(2000〜2017 vs SSDSE 2012〜2023)の2点から自分の言葉で説明してみよう。

💼 この手法は実社会でこう使われている

「内生性を操作変数で断ち切り因果に迫る」発想は、政策評価やビジネスの効果測定で広く使われている。

🏥
医療・公衆衛生の政策評価
「病院が近いほど健康か」を測るとき、健康な人が病院の近くに住む逆向きの効果を除くため、地理的条件などを操作変数に使う。本研究と同じ発想。
🎓
教育の収益率の推定
「教育年数が収入を上げるか」を、義務教育制度の改正や学校までの距離を操作変数にして推定する。労働経済学の古典的応用。
📊
ビジネスの効果測定
広告や価格施策の効果を、内生性(効きそうな相手を狙って打つ)を除いて測るため、外生的な割当(クーポン抽選など)を操作変数に使う。

🤔 よくある質問(読者からの想定Q&A)

この研究を読んで浮かびやすい疑問に答える。

Q. なぜ離職率をそのまま回帰しなかったの?
A. 離職率と外来受療率が互いに影響し合う(同時決定)からです。「離職で環境が変わり精神疾患になる」だけでなく「精神疾患だから離職する」逆の効果も混ざるため、ふつうの回帰の係数は歪みます(内生性)。これを除くために操作変数法を使いました。
Q. 有効求人倍率が操作変数として「良い」のはなぜ?
A. ①離職の決断に効く(関連性:第1段階F=32.2で確認)、②精神疾患には直接は効かないと考えられる(外生性・除外制約:過剰識別検定p=0.76で棄却されず)、の2条件を満たすと著者が判断したからです。ただし除外制約は検定だけでは証明できず、理論的な吟味も要ります。
Q. このページの図は原論文と同じ数値ですか?
A. 図4(有効求人倍率ランキング)はSSDSE-Bからの実再現です(ただし2023年で原論文と別の期間)。図1(相関行列)・図2(係数の4手法比較)・図3(操作変数法のt値)は、外来受療率・離職率などが患者調査・就業構造基本調査などの出典でSSDSE-Bに無いため、原論文の報告値を符号・桁そのままに転記して可視化しています。新たな数値の捏造はしていません。
Q. 刑法犯認知件数が負に有意なのはなぜ?
A. 仮説では正(治安が悪いほど受療率が高い)と予想しましたが、結果は負でした。著者は、外来受療率に密接に関わる重要な変数がモデルから欠落していること、あるいはより適切な操作変数が存在する可能性を挙げ、結果を過大解釈しないよう注意しています。

✅ 理解度チェック(4問)

この論文を理解できたか、クリックで確認しましょう。間違えても解説が出ます。

🐍 ブラウザで動かす — インストール不要でこの論文の分析を再現する

このページの分析は、この画面の中でそのまま実行できます。 Python をインストールする必要も、CSV をダウンロードする必要もありません。 下のセルの 「▶ ブラウザで実行」 を上から順に押すか、 「▶ 最初から全部実行」 で一気に流してください。 表示されるのは、本文の図表とまったく同じ計算の結果です (動かしているのは再現スクリプト code/2022_U5_12_shorei.py そのもの)。

コードは書き換えられます。「✏️ 書き換える」で数字や変数を変えて ▶ を押すと、 結果がどう変わるかをその場で確かめられます(元に戻すボタンつき)。 ページを開いた時点で裏で実行環境の準備が始まっているので、待ち時間はほとんどありません。 初回だけ実行環境の取得にインターネット接続が必要です。