結論から言います
家計調査で「外食支出1位」の東京都区部。
飲食店数で補正すると──47都市中最下位になる。
これが入口だった。
仮説を重ね、変数を追加し、昼夜人口比でも解けなかった「奈良の謎」は、最終的に**持ち家率(住宅費負担の代理変数)**を加えた瞬間、大部分が縮んだ。
外食モデル:奈良の残差 +248% → +88%(-160%) 持ち家率 p=0.008
書籍モデル:奈良の残差 +213% → +65%(-148%) 持ち家率 p=0.002
「外食文化」でも「読書文化」でもなかった。データが示したのは、「住宅費が軽い地域ほど、外食・書籍などの生活余力支出(discretionary spending)が強い」という構造だ。
ただし、残差はまだ残っている。謎は半分しか解けていない。
はじめに:「割り算ひとつ」では終わらない
最初のアイデアはシンプルだった。
外食支出 ÷ 飲食店数 = 飲食店1軒あたりの外食需要
東京の飲食店数(92,967軒)は鳥取県(3,466軒)の26倍以上。支出総額の差は1.4倍しかない。補正すれば東京の「外食の街」イメージが崩れるのは、計算するまでもなく予想できた。
しかし「飲食店が多いから支出が大きい」以外にも、
「人口が多いから」「所得が高いから」「働き盛り世代が多いから」
という別の説明も成り立つ。
そこで重回帰分析に進んだ。
目的は「インフラ量の効果を分離する」ことではなく、「それでもなお説明できない地域差があるか」を確かめることだ。
なぜ「人口補正」ではなく「インフラ補正」なのか
「1人あたり支出で比べればいいのでは?」という疑問は正当だ。
数式で見ると、両者の関係はこうなる。
インフラ補正値 = 支出 / インフラ数
= (支出 / 人口) / (インフラ数 / 人口)
= 1人あたり支出 ÷ 1人あたりインフラ密度
インフラ補正は人口補正をしたうえで、さらに「インフラ密度」まで除去している。
見たいのは「個人の消費傾向」ではなく、「インフラが少ない環境でも支出が高いか」という供給側の効果だ。
参考値として確認したが、東京都区部は人口補正後も外食順位が**47位(最下位)**だった。
使用データ
| データ | 出典 | 粒度 | 年度 |
|---|---|---|---|
| 外食9品目支出 | e-Stat 家計調査 品目別支出(statsDataId: 0003348233) | 47都道府県庁所在市 | 2024年 |
| 書籍+新聞+雑誌支出 | 同上 | 47都道府県庁所在市 | 2024年 |
| 飲食サービス業事業所数 | e-Stat 経済センサス C210719 | 47都道府県 | 2014年 |
| 図書館数 | e-Stat 社会教育調査(0003079842) | 47都道府県 | H23(2011年) |
| 課税対象所得・人口・労働力人口 | e-Stat 社会・人口統計体系 pref47 | 47都道府県 | 最新年度 |
注意点: 家計調査は都市レベル、他のデータは都道府県レベル。都市と県を1対1で近似対応させているため厳密な分析ではない。また飲食店数は2014年、図書館数は2011年と古いデータを使用しており、現在との差異がある。
Part 1:インフラ補正ランキング(単変量)
外食支出 ÷ 飲食サービス業事業所数
まず相関係数を確認した。
r = df['飲食店数'].corr(df['外食合計']) # r = 0.373
r = 0.373。弱い正相関だ。「店が多いほど支出が増える傾向はある。しかし決定的ではない」ことを示す。補正に意味がある。
補正前後のランキング逆転を「補正前順位(横軸)× 補正後順位(縦軸)」の散布図で見ると、東京は右上から左下へ吹き飛ぶ。
| 補正後順位 | 都市 | 1000軒あたり外食支出 | 補正前順位 | 変動 |
|---|---|---|---|---|
| 1位 | 鳥取市 | 26,267円 | 27位 | +26 |
| 2位 | 高知市 | 21,629円 | 3位 | +1 |
| 4位 | 佐賀市 | 19,669円 | 23位 | +19 |
| 7位 | 松江市 | 18,075円 | 42位 | +35 |
| 8位 | 徳島市 | 17,954円 | 33位 | +25 |
| ... | ... | ... | ... | ... |
| 44位 | 名古屋市 | 2,727円 | 9位 | -35 |
| 46位 | 大阪市 | 1,714円 | 19位 | -27 |
| 47位 | 東京都区部 | 1,394円 | 1位 | -46 |
書籍支出 ÷ 図書館数
r = df['図書館数'].corr(df['書籍合計']) # r = 0.149
r = 0.149。ほぼ無相関だ。図書館数と書籍購入額の間には、このデータ上はほとんど直線的な関係がない。
| 補正後順位 | 都市 | 1館あたり書籍支出 | 補正前順位 | 変動 |
|---|---|---|---|---|
| 1位 | 和歌山市 | 2,112円 | 4位 | +3 |
| 2位 | 鳥取市 | 1,829円 | 19位 | +17 |
| 5位 | 佐賀市 | 1,504円 | 41位 | +36 |
| 7位 | 宮崎市 | 1,467円 | 36位 | +29 |
| ... | ... | ... | ... | ... |
| 38位 | 長野市 | 656円 | 2位 | -36 |
| 44位 | さいたま市 | 441円 | 12位 | -32 |
| 47位 | 東京都区部 | 166円 | 18位 | -29 |
東京の図書館221館は全国1位。1館あたりの書籍支出は最下位となる。
Part 2:重回帰分析による検証
単変量の補正は「他の要因が混ざる」という批判を受ける。
そこで重回帰分析で交絡変数を統制した。
探索的分析として読んでほしい
本分析は n=47(都道府県数)という小サンプルであり、自由度に根本的な限界がある。変数を4個以上入れると自由度が急速に失われ、推定値の信頼性が低下する。ここで示す結果は「確証」ではなく「探索的仮説の生成(exploratory hypothesis generation)」として解釈されたい。
モデル設計
n = 47 という制約を最優先にした。変数が多すぎると過学習リスクが高まる。
# 目的変数(全て1人あたりに変換してlogをとる)
y = log(外食支出 / 人口 × 10000)
# 説明変数(全て「密度」に統一、z-score標準化)
X = [
log(飲食店密度), # = log(飲食店数 / 人口 × 10000)
log(課税対象所得 / 人口), # 所得水準
労働力率, # 就業・活動水準
]
目的変数を「1人あたり支出」にした理由:総支出を使うと人口規模(東京・大阪)がモデルを支配してしまうため。
変数を「密度」に統一した理由:都市規模効果を除去するため。
z-score標準化した理由:変数間のスケール差(log_所得_per_人平均7.2 vs 労働力率平均0.49)による数値的不安定性を防ぐため。
多重共線性チェック(VIF)
外食モデル: log_飲食店密度 VIF=1.19 log_所得 VIF=1.03 労働力率 VIF=1.18
書籍モデル: log_図書館密度 VIF=1.40 log_所得 VIF=1.05 労働力率 VIF=1.36
全て1.0〜1.4。VIFは変数間の相関行列から計算されるが(実際の変数間相関係数は0.09〜0.21と低い)、今回は強い多重共線性は確認されなかった。
回帰係数(標準化β)の結果
外食モデル(R²=0.54, F統計量p<0.001)
| 変数 | β係数(標準化) | p値 | 解釈 |
|---|---|---|---|
| log_飲食店密度 | +0.414 | <0.001 | 最も強い正の効果 |
| 労働力率 | +0.240 | 0.007 | 就業率が高いほど外食支出も高い |
| log_所得_per_人 | -0.130 | 0.105 | このモデルでは統計的に有意ではなかった |
少なくとも今回のモデルでは、所得の独立した寄与は外食支出に対して有意に確認できなかった(p=0.105)。サンプルサイズ47の制約もあり断定はできないが、示唆的な結果だ。
もし「所得が効かない」という方向性が支持されるとすれば、それは社会学的に面白い。
「人は金があるから外食する」のではなく、「外食をする生活構造が整っているから外食する」のかもしれない。所得より、飲食店密度(アクセス可能性)と労働力率(生活リズム) が外食支出を規定しているという都市構造的な解釈だ。
書籍モデル(R²=0.66, F統計量p<0.001)
| 変数 | β係数(標準化) | p値 | 解釈 |
|---|---|---|---|
| log_図書館密度 | +0.558 | <0.001 | 最も強い正の効果 |
| log_所得_per_人 | -0.180 | 0.017 | 有意な負の効果(ただし後述) |
| 労働力率 | +0.160 | 0.059 | ギリギリ有意 |
「図書館が多い → 書籍支出も高い」という正の係数は、図書館と書籍購入が代替ではなく補完的な可能性を示唆する(あるいは第三変数が両方を上げているか)。
所得が負の係数というのは直感に反するが、これは東京の影響が大きい。次節で検証する。
東京はCook距離1.17の「影響点」
Cook距離: 東京都(書籍モデル) = 1.174
閾値 4/n = 0.085
→ 閾値の14倍
Cook距離は「その1点を抜いたときにモデルの推定値がどれだけ変わるか」の指標だ。東京の1.17は圧倒的に高い。
東京を除外してモデルを再推定した結果:
| 変数 | 東京あり(β) | 東京なし(β) | 変化 |
|---|---|---|---|
| log_図書館密度 | 0.558*** | 0.565*** | 安定 |
| log_所得_per_人 | -0.180* | -0.034(非有意) | 消えた |
| 労働力率 | 0.160 | 0.082(非有意) | 弱まった |
東京を1点除外すると、所得と書籍支出の「負の関係」が消える。
この関係は東京が作っていた見せかけの可能性が高い。「東京はモデルの外れ値である」とは言えないが、「東京はモデルの推定を大きく歪める影響点である」 ことはデータが示している。
残差の正規性(Shapiro-Wilk)はいずれのモデルもp>0.10で支持された。
部分回帰図:各変数の純粋な効果
部分回帰図(他の変数を固定したときの各説明変数の効果)では、log_飲食店密度と外食支出の正の関係が最も明確に見える。所得の散布は外食モデルではほぼ水平(効果なし)、書籍モデルでは東京を除くと平坦になる傾向がある。
Part 3:残差分析 — 「説明できなかった地域差」
重回帰でモデル予測値を出し、実測値との乖離を計算した。
残差 = log(実測) - log(予測)
乖離率(%) = (exp(残差) - 1) × 100
「正の乖離 = モデルが予測するより実際の支出が高い都市」。
外食モデルの残差(上位)
| 都道府県 | 乖離率 | 残差 |
|---|---|---|
| 奈良県 | +248% | 1.247 |
| 滋賀県 | +140% | 0.876 |
| 高知県 | +120% | 0.786 |
| 鳥取県 | +117% | 0.775 |
| 香川県 | +102% | 0.705 |
| 徳島県 | +93% | 0.657 |
書籍モデルの残差(上位)
| 都道府県 | 乖離率 | 残差 |
|---|---|---|
| 奈良県 | +213% | 1.142 |
| 和歌山県 | +164% | 0.972 |
| 香川県 | +104% | 0.714 |
| 徳島県 | +98% | 0.682 |
両モデルで残差が大きかった都道府県
| 都道府県 | 外食乖離率 | 書籍乖離率 |
|---|---|---|
| 奈良県 | +248% | +213% |
| 滋賀県 | +140% | +46% |
| 鳥取県 | +117% | +48% |
| 香川県 | +102% | +104% |
| 徳島県 | +93% | +98% |
| 宮城県 | +59% | +66% |
これらの都道府県では、人口・所得・飲食店/図書館密度・労働力率を調整した後でもなお、支出密度が予測値を大幅に上回っている。
残差には以下の全てが混入していることに注意が必要だ。
- 未観測の社会構造(昼夜人口差、通勤構造、観光客の影響など)
- データ粒度の不一致(家計調査は都市レベル、インフラは都道府県レベル)
- 測定誤差(飲食店数は2014年、図書館数は2011年、家計調査は2024年)
- モデル仕様の限界(今回は線形log-logモデル、非線形関係は捉えられない)
この残差を「文化」や「県民性」と呼ぶことはできない。ただ、モデルで説明できない追加的要因が存在することだけは示している。
Part 4:奈良県の謎を仮説で掘る — 「生活余力」という視点
奈良県は外食・書籍の両モデルで最大の正の残差を示した。最終的に持ち家率が大部分を説明したが、それでも残差はまだある。仮説を整理したい。
この分析を通じて浮かび上がった構造を対比させると:
| 東京モデル | 奈良モデル | |
|---|---|---|
| 所得水準 | 高い | 大阪圏水準 |
| 住宅費 | 高い(持ち家率0.43) | 相対的に低い(持ち家率0.73) |
| 可処分所得(推定) | 圧迫されている | 余裕がある |
| 外食・書籍支出密度 | 低い(補正後最下位) | 高い(補正後上位) |
生活余力 = 所得 - 住宅コスト の代理として持ち家率が機能した可能性がある。
仮説1:昼夜人口構造
奈良県は大阪・京都への通勤流出が全国トップ級で、「大阪で稼ぎ、奈良で消費する」ベッドタウン構造が支出密度を押し上げている可能性を考えた。しかし検証の結果、昼夜人口比は非有意(p=0.77)だった。
仮説2:大型繁華街のなさ
大阪のキタ・ミナミ級の商業集積がなく、少数の地元店舗に需要が集中しやすい。「支出密度が高い」というこの分析の発見と整合する。
仮説3:アクセス格差
奈良県は山地が多く人口が分散している。図書館数はあっても実際のアクセス性が悪い可能性があり、「図書館密度」という変数が実態を捉えられていないかもしれない。
仮説1検証:昼夜人口比の追加回帰
国勢調査の昼夜人口データを取得し、4変数モデルで再推定した。
| 外食モデル | 書籍モデル | |
|---|---|---|
| 昼夜人口比 p値 | 0.767(非有意) | 0.501(非有意) |
| 奈良の残差変化 | +248% → +236%(-12%) | +213% → +187%(-27%) |
埼玉(0.865)・千葉(0.873)という典型的なベッドタウンでは昼夜人口比を加えると残差が縮小した。しかし奈良ではほぼ効果なし。「ベッドタウンだから外食密度が高い」という仮説はデータ上支持されなかった。仮説1:棄却。
仮説2検証:持ち家率(住宅費負担の代理変数)の追加
「大阪圏の所得水準 × 奈良の低住宅費 → 可処分所得が余る → 外食・書籍に使う」という仮説を検証した。pref47データの持ち家率(H1310/H1101)を追加変数として投入した。
| 外食モデル | 書籍モデル | |
|---|---|---|
| 持ち家率 β係数 | +0.306 | +0.333 |
| 持ち家率 p値 | 0.008(有意) | 0.002(強く有意) |
| R²の変化 | 0.535 → 0.608 | 0.657 → 0.731 |
| AICの変化 | 76.8 → 70.7(改善) | 68.0 → 58.6(大幅改善) |
| 奈良残差の変化 | +248% → +88%(-160%) | +213% → +65%(-148%) |
| VIF | 全て1.0〜2.3(✓ OK) | 全て1.1〜2.4(✓ OK) |
持ち家率は両モデルで統計的に有意(p<0.01)であり、奈良の残差を大幅に縮小させた。仮説2:支持。
「持ち家率が高い → 家賃・住宅ローン負担が軽い → 可処分所得が余る → 外食・書籍に回る」という経路が、データ上は整合する。奈良県(0.728)は全国上位の持ち家率を持ち、東京都(0.431)は最低クラスだ。
ただし、謎は完全には解けていない
奈良の残差は縮小したが、外食+88%・書籍+65%がまだ残っている。持ち家率以外の未観測変数(所得の捉え方の誤差、観光客の影響、文化資本など)が引き続き存在する。
また注目すべき副産物がある。東京の残差は持ち家率を加えると-25%→+24.9%に転換した。「東京の外食支出が低いのは、高家賃・住宅費が可処分所得を圧迫しているため」という解釈が成り立つようになった。
奈良県の年齢中位数は56.9歳(東京都47.2歳)。高齢化が進んでいるにも関わらず支出密度が高い点も、今後の課題だ。
「言えること / 言えないこと」
| 言えること | 言えないこと |
|---|---|
| インフラ補正でランキングが大きく変わる | 「外食文化」「読書文化」が高いとは言えない |
| 持ち家率は両モデルで有意(p<0.01)。住宅費負担と支出密度の関連が示唆された | 持ち家率が「原因」かどうかは不明(逆因果・第三変数の可能性あり) |
| 昼夜人口比は非有意。通勤構造は奈良残差を説明しなかった | 昼夜人口比という変数が間違いとは言えない(埼玉・千葉には効いた) |
| 東京は書籍モデルの「影響点」(Cook距離1.17)。持ち家率追加後は残差が転換 | 東京が「間違った観測値」とは言えない |
| 奈良・香川・徳島の残差は持ち家率追加後も正のまま残った | 残差の原因を特定するには追加の変数・データが必要 |
| R²=0.61〜0.73(持ち家率追加後):一定の説明力をもつモデルが構成された | 27%〜39%は未説明のまま |
本分析は因果関係を主張するものではない。インフラ量・所得・労働力率を調整した後に残る「支出密度の地域差」を記述したものである。
技術メモ
使用したAPI・コード概要
# 家計調査(外食9品目 + 書籍3品目)
STATS_HOUSEHOLD = '0003348233'
# 飲食サービス業事業所数(経済センサス)
INFRA_EATING = 'C210719' # statsDataId: 0000020303
# 図書館数(社会教育調査)
INFRA_LIBRARY = '0003079842' # 設置者別本館・分館別図書館数 H23
# 所得・人口(社会・人口統計体系 pref47)
STATS_PREF47 = '0000020303'
重回帰の実装
import statsmodels.api as sm
from statsmodels.stats.outliers_influence import variance_inflation_factor
from scipy import stats
# z-score標準化(スケール差による数値的不安定性を防ぐ)
X_std = (X - X.mean()) / X.std()
model = sm.OLS(y, sm.add_constant(X_std)).fit()
# VIF
vif_vals = [variance_inflation_factor(X_std.values, i) for i in range(X_std.shape[1])]
# Cook距離
influence = model.get_influence()
cooks_d = influence.cooks_distance[0]
# Shapiro-Wilk検定
stat, p_val = stats.shapiro(model.resid)
# 部分回帰図
sm.graphics.plot_partregress_grid(model)
まとめ
補正前: 東京 1位 / 名古屋 1位
補正後: 東京 47位 / 鳥取 1位 / 和歌山 1位
重回帰後の残差: 奈良が両モデルで+200%超
「東京が最下位だった」という入口から始まったこの分析は、最終的に予想外の場所に着いた。
重回帰で人口・所得・インフラ密度を制御しても地域差は消えなかった。昼夜人口比(通勤構造)を加えても奈良の謎は解けなかった。しかし持ち家率(住宅費負担の代理変数)を加えた瞬間、奈良の残差の大部分が縮んだ。
「人は豊かだから外食するのではなく、住宅費が軽いから外食できる」——そういう構造の可能性をデータは示している。
そしてこの仮説は、もう一つの「副産物」を生んだ。
持ち家率を加えた瞬間、東京の外食残差は -25% から +24.9% へ大転換した。これが意味するのは、「東京の外食支出が低いのは、住宅費が可処分所得を圧迫し、外食・書籍という生活余力支出を抑制している可能性をデータは示している」ということだ。その構図が、持ち家率という変数を一つ加えた瞬間に数字の上で浮かび上がった。
データは「地域文化」を直接語らない。
しかし、どの変数で地域差が縮み、どの変数では縮まないかを丁寧に見ていくと、「モデルの外にある構造」の輪郭が少しずつ見えてくる。
奈良の残差はまだ+88%残っている。三世代同居・教育資本・データの粒度問題——複数の仮説が待っている。完全には解けていない。それが次の分析を呼ぶ。
次の分析予告
- 奈良の残差+88%に残る未観測要因の特定(世帯構造・商業集中度・教育水準)
- 「生活余力仮説」を他の支出カテゴリ(娯楽・教育・医療)で横断検証
- スポーツ支出 ÷ スポーツ施設数への拡張(インフラで割るシリーズ)
- 教育費 ÷ 子ども数での世代別教育投資密度
データ取得:e-Stat API(家計調査・経済センサス・社会教育調査・社会人口統計体系)
分析環境:Python 3.13 / pandas / statsmodels / scipy / matplotlib
分析日:2026年5月