0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「大分は医療分散度1位」は本当か?── 22年分の時系列データで自分の結論を壊しにいった話

Posted at

TL;DR

  • Part 3で出した「大分は医療分散度で全国1位」という結論。本当に信じていいのか?
  • e-Stat APIから20指標 x 12年分(2000-2022)の時系列データを取得し、8つの合成指標の安定性を検証
  • 結果: 大分の1位は2016年以降の現象。2000年時点では6位。「勝った」のではなく「他県が先に崩壊した」だけだった
  • 一方、滋賀県の病院集約度1位は22年間一度もブレない鉄板。結論の信頼度には天と地の差がある
  • パイプラインがなければ、この検証は不可能だった。 e-Stat APIの自動取得基盤があるから「仮説→データ取得→検証→発見」が数分で回る

0. なぜ「自分の結論を壊しにいく」のか

Part 3の宿題

前回のPart 3で、自分でこう書いた。

Gap 2: 「Why Now?(なぜ今?)」の到達度 ... 30%
高齢化ステージは「擬似時間軸」であり、真の時系列比較ではない
次の一手:
1. e-Statから過去データを取得して真の時系列分析

30%と自己評価した「Why Now?」のGapを埋めなければ、Part 3の結論は砂上の楼閣だ。

「正解が壊れるシナリオ」という発想

データ分析の価値は「答えを出す」ことではない。「その答えがどこまで信じられるか」を定量化することだ。

Part 3で出した結論:

  • 「大分は医療分散度で全国1位」
  • 「滋賀は病院集約度で全国1位」
  • 「島根/高知は教育投資効率でTOP2」

これらは全て 2022年の1枚のスナップショット から出した結論だ。
もし10年前は順位が違っていたら?
もし大分が「最近たまたま1位になった」だけだったら?

結論に「賞味期限」と「信頼度」を付ける。
それが今回の目的だ。

1. パイプラインがなければ、検証は不可能だった

人力だったらどうなるか

Part 3の8つの合成指標を時系列検証するには、以下のデータが必要だ。

分野 指標数 年数 API呼び出し回数
I: 健康・医療 8 12 96
J: 福祉・社会保障 5 12 60
E: 教育 2 12 24
A: 人口・世帯 2 12 24
C: 経済基盤 1 12 12
F: 労働 1 12 12
合計 19 12 228

228回のAPI呼び出し。
各レスポンスには市区町村単位の生データが入っており、都道府県レベルへの集約が必要。
手作業でやるなら:

1. e-Statの画面で指標を探す(指標コードの体系を理解するだけで半日)
2. 年ごとにCSVをダウンロード(228ファイル)
3. Excelで開いて市区町村を都道府県に集約(228回のピボットテーブル)
4. 47都道府県 x 12年 x 19指標を1つのテーブルに結合
5. 合成指標を計算
6. ランキングを付ける
7. 安定性を評価する

控えめに見積もって丸3日。
しかもミスの温床だらけだ。「2008年の岩手県の小学校教員数、集約先が間違っていました」を1つ見つけるたびにやり直し。

パイプラインがあると

python scripts/fetch\_timeseries\_all\_composites.py

これだけ。
228回のAPI呼び出し、市区町村→都道府県の集約、合成指標の計算、ランキング付け、安定性分析まで全て自動。
所要時間は約5分(API待機時間含む)。

\[1/19] I510201 (有床一般診療所数) - statsId=0000020209
  2000: 47県
  2002: 47県
  ...
  2022: 47県
  -> saved: timeseries\_I510201.csv (564 rows)

\[2/19] I5212 (一般診療所病床数) - statsId=0000020209
  ...

1回構築したパイプラインが、仮説検証のたびに再利用される。
Part 1で作ったe-Stat API基盤 →
Part 2で隣接県差異に使い →
Part 3で合成指標に使い →
Part 4で時系列検証に使う。
投資対効果は回を追うごとに上がる。

2. 検証結果: 結論の「信頼度格付け」

全合成指標の安定性サマリー

8つの合成指標のうち、時系列検証が可能だったのは7つ。
うち長期(22年間・12時点)のデータが取れたのは4つ、短期(3時点)のみが3つだった。

合成指標 データ期間 時点数 最新1位 安定性
病院集約度 2000-2022 12 滋賀県 SD=0.0
教育投資効率 2000-2022 12 高知県 SD=0.5
診療所ベッド密度 2000-2022 12 高知県 SD=1.4
医療分散度 2000-2022 12 大分県 SD=2.1
福祉哲学スコア 2018-2022 3 宮崎県 検証不足
経済生産性 2000,2010,2020 3 東京都 検証不足
医療福祉バランス 2018-2022 3 東京都 検証不足
高齢者施設供給力 - 0 - 計算不可

信頼度格付け

S ランク: 鉄板(22年間不動)

病院集約度: 滋賀県が22年間1位を独占

滋賀県の順位推移: 1位→1位→1位→1位→1位→1位→1位→1位→1位→1位→1位→1位
標準偏差: 0.0(ブレなし)

12回連続1位。標準偏差ゼロ。
Part 3の全結論の中で、最も自信を持って言える事実。

滋賀県は1病院あたり239床。全国平均の約1.5倍。
琵琶湖の地理的制約で病院数が少なく、結果として1施設あたりの規模が大きくなる構造が固定されている。

上位常連の安定性:

滋賀県: 平均1.0位 (SD=0.0, 範囲1-1)   ← 鉄板
新潟県: 平均2.6位 (SD=0.8, 範囲2-4)   ← ほぼ鉄板
静岡県: 平均3.4位 (SD=1.0, 範囲2-5)   ← 安定

教育投資効率: 島根・高知が22年間TOP2を分け合う

島根県: 平均1.2位 (SD=0.5, 範囲1-2)
高知県: 平均1.8位 (SD=0.5, 範囲1-2)

この2県は22年間ずっと1位と2位を入れ替わっているだけ。
3位以下に落ちたことが一度もない。
人口減少・少子化が進んだ地方ほど「児童あたり教員数」が手厚くなるという構造的な背景がある。

A ランク: 安定(上位グループが固定)

診療所ベッド密度: 高知県がほぼ定位置

高知県: 平均2.1位 (SD=1.4, 範囲1-6)
宮崎県: 平均3.3位 (SD=1.2, 範囲1-5)

高知・宮崎・徳島が常に上位5に入る。四国・九州の「有床診療所文化」が安定的に反映されている。

B ランク: トレンド型(上昇/下降が進行中)

医療分散度: 大分県は「最近1位になった」

ここが今回の核心だ。

大分県の順位推移:
  2000: 6位 → 2006: 3位 → 2008: 2位 → 2016: 1位 → 2022: 1位

大分は2000年時点では6位だった。
1位になったのは2016年。わずか8年前だ。

C ランク: データ不足で判定困難

福祉哲学スコア、経済生産性、医療福祉バランスは3時点以下のデータしか取れなかった。J分野(福祉・社会保障)のe-Statデータが2018年以降しか存在しないためだ。
高齢者施設供給力は年齢中位数のデータが取得できず計算不可。

Part 3の結論のうち、半分は時系列検証ができていない。 これは重要な限界として認識すべきだ。

3. 深掘り: 「大分1位」はどう作られたか

全国トレンド: 有床診療所は22年で65%消滅

有床一般診療所数の全国推移:
  2000: 21,031
  2010: 12,732 (残存率 60.5%)
  2022:  7,245 (残存率 34.4%)

医師数の全国推移:
  2000: 332,950
  2010: 398,955 (+19.8%)
  2022: 470,837 (+41.4%)

分子(診療所)は65%減、分母(医師)は41%増。
医療分散度は構造的に崩壊し続けている。
全国平均の分散度は0.063→0.015と、22年で4分の1になった。

大分も減っている。ただし減り方が遅い。

大分の有床診療所: 389 → 221(残存率 56.8%
全国平均の残存率: 34.4%

大分は「増やした」のではない。
「減るスピードが遅かった」だけだ。

2000年のTOP6はどうなったか

2000年順位 2022年順位 診療所残存率 何が起きたか
1位 青森県 6位 30% 7割が消えた
2位 愛媛県 9位 25% 4分の3が消えた
3位 長崎県 5位 37%
4位 宮崎県 4位 38% 順位キープ
5位 鹿児島県 2位 51% 上昇
6位 大分県 1位 57% 最も残した

青森は2000年の1位だった。 しかし有床診療所の70%が消滅し、6位まで転落した。

大分は「勝った」のではなく「生き残った」。
上にいた県が先に崩壊したから、相対的に浮上した。

診療所残存率の全国ランキング

残存率が高い(=診療所が残った県):
  熊本県: 596→359 (60.2%)
  大分県: 389→221 (56.8%)  ← 2位
  岡山県: 352→185 (52.6%)
  佐賀県: 262→137 (52.3%)
  鹿児島県: 551→281 (51.0%)

残存率が低い(=診療所が激減した県):
  富山県: 170→32  (18.8%)
  長野県: 297→61  (20.5%)
  群馬県: 309→65  (21.0%)
  宮城県: 630→142 (22.5%)

残存率1位は熊本(60.2%)。しかし熊本は医師数が大幅に増えた(+91%)ため、分散度のランキングでは7位に留まる。

大分が分散度1位なのは「残存率2位 × 医師増加率が中程度(+26%)」の組み合わせ。
分子が残り、分母の増加が緩やかだった。

真の「上位常連」は鹿児島

順位の平均で見ると:

鹿児島県: 平均2.0位 (SD=1.3, 範囲1-5)  ← 真の安定上位
大分県:   平均2.8位 (SD=2.1, 範囲1-6)  ← トレンド上昇中
青森県:   平均3.6位 (SD=2.1, 範囲1-6)  ← トレンド下降中
佐賀県:   平均3.9位 (SD=1.2, 範囲3-7)  ← 安定した4位近辺

鹿児島は22年間ずっと2位前後にいる。 大分より安定している。
鹿児島の離島医療・僻地医療の構造が、有床診療所を維持し続けている。

4. 結論に「信頼度カード」を付ける

Part 3の結論を、時系列検証を踏まえてアップデートする。

Before(Part 3の結論)

大分は医療分散度で全国1位(0.064、東京の10.5倍)

After(信頼度カード付き)

結論: 大分は医療分散度で全国1位

項目 内容
時系列安定性 B(2016年以降の現象。2000年は6位)
メカニズム 他県の診療所崩壊が速く、大分が相対的に浮上
大分自身の変化 診療所は43%減少。ただし全国平均(65%減)より緩やか
逆転リスク 鹿児島(2位)との差は小さい。大分の減少が加速すれば逆転可能
賞味期限 大分の診療所減少ペース次第。現在のペースなら5-10年は維持
真の上位常連 鹿児島(平均2.0位、SD=1.3)の方が22年間安定的に上位

他の結論の信頼度カード

「滋賀は病院集約度で全国1位」

項目 内容
時系列安定性 S(22年間一度もブレない)
メカニズム 琵琶湖の地理的制約による構造的固定
逆転リスク 事実上ゼロ

「島根/高知は教育投資効率でTOP2」

項目 内容
時系列安定性 S(22年間TOP2を独占)
メカニズム 人口減少→児童減→相対的に教員数が手厚くなる構造
逆転リスク 徳島(平均3.7位)が迫っているが、TOP2の壁は厚い

5. Part 3の「Why Now?」到達度アップデート

Part 3での自己評価: 30%

今回の検証後: 60%

埋まったこと:
  - 4つの合成指標で22年間の時系列を取得し、安定性を定量化
  - 「大分1位」が2016年以降の現象であることを発見
  - 各結論に信頼度ランク(S/A/B/C)を付与

まだ埋まっていないこと:
  - J分野(福祉)の過去データが取得できず、福祉哲学スコア等は3年分のみ
  - 高齢者施設供給力は年齢中位数データの制約で時系列計算不可
  - 「なぜ大分だけ残存率が高いのか」の因果分析は未着手

6. 技術的な学び

e-Stat APIの分野別データ可用性

228回のAPIコールの結果、分野ごとのデータ可用性が判明した。

分野 指標例 2000-2016 2018-2022
I: 健康・医療 病院数、診療所数、医師数 全て取得可能 取得可能
E: 教育 教員数、児童数 取得可能 取得可能
C: 経済基盤 課税対象所得 取得可能 取得可能
J: 福祉 介護施設数、養護ホーム数 取得不可 取得可能
A: 人口 総人口、就業者数 国勢調査年のみ 国勢調査年のみ
F: 労働 就業者数 国勢調査年のみ 国勢調査年のみ

I分野(医療)は22年分の完全なデータがある。
一方、J分野(福祉)は2018年以降しか市区町村データが存在しない。
A・F分野は国勢調査(5年ごと)に連動するため、偶数年フルでは取れない。

この可用性マップ自体が、パイプラインを回して初めてわかった知見だ。

年齢中位数の罠

年齢中位数(A1231)は都道府県の「平均的な」値であり、市区町村データを合算して計算できる指標ではない。
市区町村の中位数を足し合わせても都道府県の中位数にはならない。

# これは間違い: 市区町村の中位数を足してもダメ
pref\_totals\[pref\_name] += float(中位数)

# 正しくは: 都道府県レベルのデータ(area\_codeが末尾000)のみ使う
if area\_code.endswith('000'):
    pref\_totals\[pref\_name] = float(中位数)

しかしe-Statの該当データには都道府県レベルのレコードが存在しなかった。これが「高齢者施設供給力」が計算できなかった原因だ。

7. まとめ

Part 1→2→3→4の進化

Part 問い 手法 到達点
1 何が外れているか 裏切り度スコア 「長野の公民館は5.5シグマ」
2 何が隣と違うか 隣接県差異 「大分の460年医療史」
3 だから何をすべきか 合成指標+ステージ 「大分は分散型遠隔診療のモデル県」
4 その結論は信じられるか 時系列安定性検証 「大分1位は最近の現象。鉄板は滋賀」

発見のまとめ

  1. Part 3の結論は、半分が「鉄板」で半分が「要注意」だった
  2. 滋賀の病院集約度、島根/高知の教育投資効率は22年間不動(S ランク)
  3. 大分の医療分散度1位は2016年以降の現象で、他県の崩壊による相対的浮上(B ランク)
  4. 福祉系の3指標はe-Statのデータ制約で時系列検証が不十分(C ランク)

パイプラインの価値

今回の分析で改めて実感したのは、データ取得パイプラインの累積的な価値だ。

Part 1: e-Stat API基盤を構築(投資フェーズ)
Part 2: 同じ基盤で隣接県差異を計算(再利用1回目)
Part 3: 同じ基盤で合成指標を計算(再利用2回目)
Part 4: 同じ基盤で時系列データを取得(再利用3回目)
         ↑ 辞書に1行足すだけで新指標が追加できる

もし人力でやっていたら、Part 4の228回のAPIコール+集約作業だけで丸3日。Part 1からの累計では数週間を費やしていたはずだ。

パイプラインがあるから「自分の結論を壊しにいく」という贅沢な検証ができる。

結論を出すことよりも、結論を検証する基盤を作ることの方が、長期的には価値がある。

Part 1で「何が外れているか」を見た。
Part 2で「何が隣と違うか」を見た。
Part 3で「だから何をすべきか」に踏み込んだ。
Part 4で「その結論はいつから、いつまで信じられるか」を検証した。

データ分析の成熟とは、答えの精度を上げることではなく、答えの壊れ方を知ることだ。


使用データ: e-Stat 社会・人口統計体系(6分野19指標 x 47都道府県 x 12年、228 APIコール)
コード: Python / pandas / requests / e-Stat API v3.0

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?