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

家計調査を用いた消費重心と多変量解析による地域性の導出

⏱️ 推定読了時間: 約30分
2021年度(令和3年度)統計データ分析コンペティション | 井手 健太(法政大学経済学部経済学科) | SSDSE-C(家計・食料品目別支出)ほか/再現はSSDSE-C-2026 | 消費重心・階層的クラスタリング(ウォード法)
🔬 クラスター分析🔬 消費重心🔬 相関分析🔬 階層的クラスタリング🏷 食・家計消費
🔬 手法タグ / 🏷 応用タグ(クリックで同タグの論文をネットワーク検索)
🔬 再現カルテ — 原論文と同じデータ・同じ手法で再現

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

原論文が使ったデータSSDSE-C・SSDSE-A・国勢調査・小売物価統計
分析単位:都道府県
中核手法:階層的クラスタリング法・相関分析
この教材が使うデータ
原論文(PDF)家計調査を用いた消費重心と多変量解析による地域性の導出
統計活用奨励賞/井手 健太(法政大学経済学部経済学科)
✅ この教材でできること
  • 原論文の中核手法(階層的クラスタリング法)を実データで実行できる
  • 分析に使うデータは同梱済みで、ブラウザ上でそのまま読み込める
  • 数値・図を最後まで再計算できる(階層クラスター分析)
⚠️ この教材ではできないこと(原論文との違い)
  • 原論文は都道府県を単位に分析しているが、この教材は都道府県庁所在市が単位
🚀 原論文と同じ粒度で挑戦したい人へ

原論文と同じ粒度のデータは、この教材にも同梱しています。これを読み込めば、原論文と同じ細かさで分析をやり直せます(下の「🐍 ブラウザで動かす」でコードを書き換えて試せます)。ただし原論文が使った項目がすべて収録されているとは限りません。足りない項目は、上の「できないこと」に書いた出典から取ってくる必要があります。

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

🏅 論文審査会コメント(審査員はここを評価した)
「記述的多変量解析系の仮説探索型分析が特徴的であり、その範囲内で先行研究を提示していることも論文としての成立要件を満たしており、消費重心が著者のオリジナルの提案との前提の下で論文としての新規性を高く評価できる。」
出典:統計センター「統計データ分析コンペティション」受賞論文PDF掲載の審査講評。プロの審査員が何を評価し、何を注文したかは論文の読み方の最良の手本になる。
📝 3行で分かる要約

目次

  1. 研究のテーマと目的
  2. 使用データ(SSDSE-C 家計調査ほか)
  3. 分析方法:消費重心・5類型・クラスタリング
  4. 図1:消費重心の地理分布(報告値の可視化)
  5. 図2:東西型の消費重心・経度順(報告値の可視化)
  6. 表1:消費品目の5類型グルーピング(報告値)
  7. 再現コード:SSDSE-Cを読み込む(実再現)
  8. 図3:均一消費型=変動係数ランキング(実再現)
  9. 図4:都道府県クラスター分析デンドログラム(実再現)
  10. 表2:クラスターA〜Fの構成(報告値)
  11. 主要な発見(原論文の報告値)
  12. 結果の解釈と課題
  13. まとめ
  14. データ・コードのDL
  15. ⚠️ よくある誤解
  16. 📖 用語集
  17. 📐 手法ガイド
  18. 🚀 発展の可能性
  19. 🎯 自分でやってみよう
  20. 🤔 Q&A
  21. 🐍 ブラウザで動かす

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

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

このページの均一消費型の変動係数(図3)と都道府県クラスター分析(図4)は、以下の手順で自分で再現できます。コードの編集は不要です。(消費重心の地理分布=図1、東西型の経度順=図2は、人口重心の経緯度がSSDSE-Cに無いため、原論文の報告値を可視化します。)

1
データをダウンロードする 独立行政法人統計センターの SSDSE(教育用標準データセット)配布ページから、以下をダウンロードします。
SSDSE-C-2026.csv ← SSDSE-C(家計消費・都道府県庁所在市別 食料品目別支出)📥 直接DL
⬇ SSDSEダウンロードページを開く
2
ファイルを所定のフォルダに配置する ダウンロードしたCSVを、プロジェクトの data/raw/ フォルダに入れます。
2026 統計・データ解析コンペ/ ├── code/ │ └── 2021_U4_katsuyo.py ← 実行するスクリプト └── data/ └── raw/ SSDSE-C-2026.csv ← ここに置く
3
スクリプトをそのまま実行する ターミナルでプロジェクトルートに移動し、以下を実行します。
python3 code/2021_U4_katsuyo.py
図は html/figures/ に自動保存されます。
研究のテーマと目的

総務省統計局の基幹統計「家計調査」(全国約9千世帯を対象に収入・支出などを毎月調査)の結果は、品目別の都道府県庁所在市ランキングとしてまとめられている。ランキングは特産物や支出の多い地域を直観的に把握でき幅広い層に有用だが、著者は次の欠点を指摘する。

①ランキング上位に入らなかった品目・都道府県の特徴が捨象される。②複数あるいは全体で総合的に評価しにくい。——そこで本研究は、ランキング形式以外の方法で、消費品目別の特徴と都道府県別の特徴をそれぞれ導出することを目的とする。前者には独自指標「消費重心」を、後者には多変量解析(クラスター分析)を用いる。

2
都道府県はまず2グループ(近畿以北/中国以南)に分割(報告値)
A〜F
さらに6クラスターに細分化(報告値)
5類型
消費品目のグルーピング数(特定地域/東西/都会地方/均一/その他)
愛知・三重・岐阜
全国平均と同一クラスター=最も平均的な消費(報告値)
研究の問い ランキング形式では表章されない下位の品目の特徴や都道府県間の特徴を、より明確に反映するにはどうすればよいか。消費品目別・都道府県別の地域性を総合的に導出することを目指す。
分析のキモ:独自指標「消費重心」 著者は前年度のコンペで提案した消費重心を用いる。人口重心(1人1人を同じ重さと仮定した地理的な釣り合いの点)の重みを「人口」から「家計消費額」に置き換えることで、その品目が全国のどこを中心に消費されているかを1点の経緯度で表す。経度に着目すれば東西、緯度に着目すれば南北の特色が見える。

大学生・一般の部 家計調査・SSDSE-C・国勢調査・小売物価統計 消費重心(重みつき平均) 階層的クラスタリング(ウォード法) 相関・分散・標準化

使用データ(原論文)

著者は複数の公的統計を組み合わせている。中心はSSDSE-C(家計調査由来の品目別支出)である。

表:用いたデータ(原論文)

用途データ
中心データSSDSE-C-2021:二人以上世帯・都道府県庁所在市別・食料品目別 年間支出金額(2018〜2020年の平均
消費重心の重み補正SSDSE-A-2021:一般世帯数(2015) + 平成27年「国勢調査」の人口重心の経緯度
都会・地方型の判定令和2年「国勢調査 人口速報集計」の人口密度(1km²あたり)
クラスター分析の実質化「小売物価統計」2019 の10大費目別 消費者物価地域差指数(食料)で割って実質値化→標準化
再現可能性の整理(このページの図の作り方)
  • 報告値の可視化(再計算ではない):消費重心の経緯度は人口重心(SSDSE-Cに無い)を重みに使うため再計算できない。図1(地理分布)と図2(東西型の経度順)は、原論文 補表・表1 の報告値を転記して可視化する。
  • 実再現できる部分:家計調査=SSDSE-C(品目別支出)はSSDSEに収録されている。よって「均一消費型(品目のばらつきの小ささ)」の変動係数(図3)と、都道府県のウォード法クラスタリング(図4/原論文 図2の再現)は実データから計算できる。ただし最新版 SSDSE-C-2026(2023-2025年)を用い、物価地域差指数の代わりに食料合計に対する支出割合を標準化する近似的再現(年次・前処理が原論文と異なる)。

分析方法:消費重心 → 5類型 → クラスター分析

分析の流れ
SSDSE-C
品目別支出
消費重心
+相関・分散
品目を5類型
に分類
ウォード法
都道府県を分類

① 消費重心(人口重心の重みを消費額へ)

市区町村の人口重心は、各地点の座標を人口で加重平均して求める。著者は重み wi(人口)を家計消費額 Ci に置き換えた。

消費重心 経度 x = Σ Ci xi / Σ Ci 、 緯度 y = Σ Ci yi / Σ Ci
xi, yi:各都道府県の人口重心の経緯度/Ci:各県庁所在市の家計消費額(1世帯あたり消費額×世帯数)

② 消費品目を5類型に(優先順位つき)

著者は品目を次の①〜⑤の優先順に抽出してグルーピングする。

類型抽出の尺度
①特定地域型全国平均と都道府県別平均の差が大きい品目(特産物)
②東西型①以外で、消費重心の経度が東西に特に外れた品目(上位下位10%)
③都会・地方型①②以外で、消費額と人口密度の相関が正(都会型)/負(地方型)の品目
④均一消費型①②③以外で、都道府県間の分散が小さい品目
⑤その他残った品目

③ 都道府県のクラスター分析(ウォード法)

品目別支出を変数、都道府県を個体として階層的クラスタリングを行う。クラスター間距離にはウォード法を用いた(分析はSPSS)。物価地域差指数で実質化し標準化した値を投入し、結合過程をデンドログラムで可視化する。

データの前処理(原論文3章) 金額データは地域の物価差や品目の価格差の影響を受ける。そこで著者は用途で2通りに分けた。消費重心・分散を見る品目分析では食料合計に対する割合に変換(標準化不要)、クラスター分析では物価地域差指数で実質化してから標準化した。
1
図1:消費重心の地理分布(報告値の可視化)

原論文の図1は、消費重心を日本地図上にプロットしたものである。本ページでは地図の代わりに、補表が報告した経度×緯度の散布図で再表現する(人口重心の経緯度はSSDSE-Cに無いため再計算不可)。

やってみよう原論文 補表 の消費重心(経度・緯度)を転記する【報告値の可視化】
  • ① このコードの目的:消費重心の経緯度は人口重心(SSDSE-Cに無い)を重みに使うため再計算できない。そこで原論文 補表 が報告した各品目の経度・緯度を辞書に転記し、西寄り(経度小)・東寄り(経度大)の代表品目を書き出す。再計算ではなく報告値の転記。
  • ② 前後のつながり:ここで転記した経緯度が図1(地理分布の散布図)と図2(経度ランキング)になる。実データで確かめられる「均一消費型」は後半(図3)で実際に計算する。
📝 コード
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
centroid_report = {
    # 西側(経度小)=表1「西」に対応
    'たい':          (136.457, 35.071), 'あじ':      (136.626, 35.085),
    'まんじゅう':    (136.695, 35.227), '合いびき肉': (136.715, 35.166),
    '揚げかまぼこ':  (136.741, 35.199), 'ぶり':      (136.780, 35.208),
    'さば':          (136.784, 35.247), 'いわし':    (136.807, 35.243),
    '牛肉':          (136.825, 35.197), 'ちくわ':    (136.836, 35.310),
    '焼酎':          (136.848, 35.299), '即席麺':    (136.872, 35.303),
    'ふりかけ':      (136.907, 35.337), '砂糖':      (136.913, 35.327),
    'しょう油':      (136.943, 35.345), 'ソース':    (136.932, 35.335),
    '鶏肉':          (136.940, 35.321),
    # 東側(経度大)=表1「東」に対応
    'まぐろ':        (137.640, 35.482), 'ワイン':    (137.569, 35.528),
    '魚介の漬物':    (137.542, 35.690), 'しゅうまい': (137.523, 35.411),
    'ほたて貝':      (137.458, 35.737), 'ウイスキー': (137.450, 35.655),
    'さやまめ':      (137.434, 35.438), '塩さけ':    (137.432, 35.661),
    '干しあじ':      (137.389, 35.309), 'メロン':    (137.388, 35.797),
    '洋食':          (137.381, 35.472), '他の麺類':  (137.368, 35.449),
    '他の酒':        (137.348, 35.488), '紅茶':      (137.343, 35.407),
    'やきとり':      (137.329, 35.466), 'さんま':    (137.303, 35.557),
    'オレンジ':      (137.298, 35.448),
    # 参考:ほぼ中央(全体の重心付近)の主食
    '米':            (137.082, 35.423),
}
cr = pd.Series({k: v[0] for k, v in centroid_report.items()}).sort_values()
print('  西側(経度が小さい=西日本で相対的に多い, 報告値):')
for name, lon in cr.head(6).items():
    print(f'    {name:8s} 経度 {lon:.3f}')
print('  東側(経度が大きい=東日本で相対的に多い, 報告値):')
for name, lon in cr.tail(6).iloc[::-1].items():
    print(f'    {name:8s} 経度 {lon:.3f}')
print(f'  ※ 全品目の重心は経度137前後に集中(人口重心の加重平均のため)。'
      f' たい {cr["たい"]:.3f} 〜 まぐろ {cr["まぐろ"]:.3f} の幅で東西差を表現。')
▼ 実行結果
=== [2] 報告値:東西型 消費重心の経度(原論文 補表) ===
  西側(経度が小さい=西日本で相対的に多い, 報告値):
    たい       経度 136.457
    あじ       経度 136.626
    まんじゅう    経度 136.695
    合いびき肉    経度 136.715
    揚げかまぼこ   経度 136.741
    ぶり       経度 136.780
  東側(経度が大きい=東日本で相対的に多い, 報告値):
    まぐろ      経度 137.640
    ワイン      経度 137.569
    魚介の漬物    経度 137.542
    しゅうまい    経度 137.523
    ほたて貝     経度 137.458
    ウイスキー    経度 137.450
  ※ 全品目の重心は経度137前後に集中(人口重心の加重平均のため)。 たい 136.457 〜 まぐろ 137.640 の幅で東西差を表現。
  図1保存: html/figures/2021_U4_fig1_ranking.png
  図2保存: html/figures/2021_U4_fig2_scatter.png
  • ④ 実行結果の読み取り:報告値どおり、西の極がたい(経度136.457)、東の極がまぐろ(経度137.640)。西側にはたい・あじ・まんじゅう・ぶり・牛肉、東側にはまぐろ・ワイン・魚介の漬物・しゅうまい・ウイスキーが並ぶ。重心はいずれも経度137前後に密集する(人口重心を加重平均するため)が、そのわずかな差で東西の消費傾向を表現できている。すべて原論文の報告値である。
消費重心の地理分布(報告値の可視化)
図1:消費品目の消費重心(経度×緯度)。報告値の可視化(再計算ではない)(原論文 補表)。赤=西寄り(経度<137.0)/青=東寄り(経度>137.2)の主な品目。地図の代わりに散布図で再表現。
📊 この図の読み方
横軸(経度)
右ほど東日本。まぐろ・ワインなど東寄りの品目が右に、たい・あじなど西寄りの品目が左に並ぶ。
縦軸(緯度)
上ほど北日本。メロン・ほたて貝・魚介の漬物など北で消費が多い品目が上に来る。
位置づけ
報告値の可視化。座標は原論文 補表の報告値で、本ページで新たに計算したものではない。
2
図2:東西型の消費重心・経度順(報告値の可視化)

②「東西型」は、消費重心の経度が東西に特に外れた品目である。図1と同じ報告値を経度順の横棒に並べ替えると、西日本寄り・東日本寄りが一目で分かる。

東西型 消費重心の経度ランキング(報告値の可視化)
図2:主な品目の消費重心の経度(昇順)。報告値の可視化(再計算ではない)(原論文 補表・表1)。赤=西日本寄り/青=東日本寄り。点線は主食「米」(ほぼ全国中央)。
📊 この図の読み方
上(経度小)
西日本で相対的に多く消費される品目。たい・あじ・まんじゅう・合いびき肉・ぶり・牛肉など。
下(経度大)
東日本で相対的に多く消費される品目。まぐろ・ワイン・魚介の漬物・しゅうまい・ウイスキーなど。
米の位置
米はほぼ全国中央(経度137.082)で、東西どちらにも偏らない基準的な品目。

表1:消費品目の5類型グルーピング(原論文の報告値)

家計調査小分類の品目を①〜⑤の優先順位でグルーピングした結果(原論文 表1)。以下はすべて原論文の報告値である。

類型主な品目(かっこ内は代表的な都道府県)
①特定地域型あじ(長崎)、かつお(高知)、かに(福井・鳥取)、しじみ(茨城・島根)、かき貝(広島)、ほたて貝(青森)、たらこ(福岡)、かまぼこ(宮城)、かつお節・削り節(沖縄)、ぶどう(山梨)、桃(福島・山梨・長野・和歌山・岡山)、メロン(北海道・茨城)、カステラ(長崎) ほか
②東西型(西)たい、まんじゅう、合いびき肉、ぶり、さば、いわし、牛肉、ちくわ、焼酎、即席麺、ふりかけ、砂糖、ソース、鶏肉、しょう油、えび、焼肉 ほか
②東西型(東)まぐろ、ワイン、魚介の漬物、しゅうまい、ウイスキー、さやまめ、塩さけ、干しあじ、洋食、他の麺類、紅茶、やきとり、しらす干し、ようかん、さんま、オレンジ ほか
③都会型他の主食的外食、喫茶代、ジャム、ねぎ、ピーマン、トマト、他の乳製品、バター、サラダ、調理パン、ハム、うなぎのかば焼き、チーズ、いちご ほか(外食・加工品・調理食品が多い)
③地方型ソーセージ、つゆ・たれ、カレールウ、しめじ、マヨネーズ、学校給食、スポーツドリンク、食塩、キャンデー、バナナ、アイスクリーム、スナック菓子、みそ、カップ麺、小麦粉、いか、中華そば ほか
④均一消費型ケチャップ、ココア・ココア飲料、豆類、パスタ、あさり、干ししいたけ、酢、もやし、プリン、他の大豆製品、だいこん、すいか、生しいたけ、さつまいも、はくさい、ドレッシング ほか(都道府県間の分散が小さい)

③都会型は外食関連・加工品・調理食品が多く、「都市のイメージ」と整合的。③地方型は都市圏の消費量ランキングで上位に上がらない品目、と著者は解釈している。

3
再現コード:SSDSE-Cを読み込む(実再現)

ここからは実データでの再現。原論文が使ったSSDSE-C(品目別支出)はSSDSEに収録されているので、均一消費型の変動係数と都道府県クラスタリングを自分で計算できる。まず読み込む。

やってみようSSDSE-C を読み込み、品目別支出シェアを用意する【実再現】
  • ① このコードの目的:SSDSE-C-2026 を cp932 で読み込み、日本語ラベル行(row0)を除いて全国+47都道府県を取り出す。カテゴリ小計(「01 穀類」等)を除いた小分類の品目列を選び、各品目を「食料合計に対する支出割合(シェア)」に変換する(世帯規模・物価水準の影響を緩和)。
  • ② 前後のつながり:ここで用意したシェア行列が、以降の均一消費型の変動係数(図3)とクラスター分析(図4)の入力になる。原論文の中心データ SSDSE-C を、最新版で扱う。
📝 コード
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
raw = pd.read_csv(DATA_C, encoding='cp932', header=0)
labels = raw.iloc[0]                      # 日本語ラベル行
body   = raw.iloc[1:].copy()              # 全国(R00000)+47都道府県

CODE_COL = raw.columns[0]                 # 'SSDSE-C-2026'(地域コード)
PREF_COL = raw.columns[1]                 # '2023-2025年'(都道府県名)
FOOD_TOTAL = 'LB00'                       # 食料(合計)

# 品目列=ラベルが数字で始まらない(=カテゴリ小計でない)列のうち食料合計以降
item_cols = [c for c in raw.columns[5:]
             if not re.match(r'^\d', str(labels[c]))]
item_name = {c: str(labels[c]) for c in item_cols}

for c in [FOOD_TOTAL] + item_cols:
    body[c] = pd.to_numeric(body[c], errors='coerce')

# 全国=R00000、都道府県=R01100〜R47201(県庁所在市)
nation = body[body[CODE_COL] == 'R00000'].iloc[0]
pref   = body[body[CODE_COL] != 'R00000'].copy()
print(f'  品目数(小分類): {len(item_cols)}')
print(f'  都道府県数      : {len(pref)}(+全国平均1)')
print(f'  食料合計 全国   : {int(nation[FOOD_TOTAL]):,} 円/年')

# 各品目を「食料合計に対する支出割合(シェア)」に変換(世帯規模・物価水準の影響を緩和)
share = pref[item_cols].div(pref[FOOD_TOTAL], axis=0)
share.index = pref[PREF_COL].values
▼ 実行結果
=== [1] SSDSE-C 読み込み(実再現の準備) ===
  品目数(小分類): 212
  都道府県数      : 47(+全国平均1)
  食料合計 全国   : 1,085,539 円/年
  • ④ 実行結果の読み取り:小分類の品目は212品目、対象は47都道府県(+全国平均1)。食料合計は全国で年間約109万円。原論文(2018-2020年)とは年次が異なるが、同じ SSDSE-C 系列の品目別支出を扱えている。
4
図3:均一消費型=変動係数ランキング(実再現)
やってみよう均一消費型=シェアの変動係数が小さい品目を求める【実再現】
  • ① このコードの目的:各品目のシェアについて、47都道府県にわたる変動係数 CV=標準偏差/平均を計算する。CVが小さい=全国どこでも同じ割合で買われる=原論文の④「均一消費型」にあたる。平均シェアが極端に小さい品目はCVが不安定なので、平均シェア上位半分に絞る。
  • ② 前後のつながり:原論文は「分散が小さい品目」を均一消費型とした。ここでは同じ考え方を実データで再現し、図3の横棒ランキングにする。
📝 コード
187
188
189
190
191
192
193
194
195
196
197
198
199
mean_share = share.mean()
cv = share.std() / mean_share
cv_named = pd.Series(cv.values, index=[item_name[c] for c in item_cols])
mean_named = pd.Series(mean_share.values, index=[item_name[c] for c in item_cols])
# 平均シェアが極端に小さい品目はCVが不安定なので、平均シェア上位半分に絞る
keep = mean_named[mean_named >= mean_named.median()].index
cv_keep = cv_named[keep].sort_values()
print('  均一消費型の候補(CVが小さい上位10品目・実データ):')
for name, v in cv_keep.head(10).items():
    print(f'    {name:12s} CV={v:.3f}')
print('  参考:特定地域型の候補(CVが大きい上位8品目・実データ):')
for name, v in cv_keep.tail(8).iloc[::-1].items():
    print(f'    {name:12s} CV={v:.3f}')
▼ 実行結果
=== [3] 実再現:均一消費型(シェア変動係数が小さい品目, SSDSE-C-2026) ===
  均一消費型の候補(CVが小さい上位10品目・実データ):
    他の調味料        CV=0.050
    豚肉           CV=0.063
    食用油          CV=0.075
    チョコレート       CV=0.077
    乾燥スープ        CV=0.077
    アイスクリーム・シャーベット CV=0.078
    バナナ          CV=0.090
    牛乳           CV=0.091
    たまねぎ         CV=0.092
    ケーキ          CV=0.092
  参考:特定地域型の候補(CVが大きい上位8品目・実データ):
    まぐろ          CV=0.485
    そうざい材料セット    CV=0.455
    魚介の漬物        CV=0.445
    学校給食         CV=0.386
    ぶり           CV=0.376
    緑茶           CV=0.371
    他の主食的外食      CV=0.370
    合いびき肉        CV=0.363
  図3保存: html/figures/2021_U4_fig3_ols.png
  • ④ 実行結果の読み取り:実データで均一消費型の候補は他の調味料・豚肉・食用油・チョコレート・牛乳など(CV約0.05〜0.09)。全国で満遍なく一定割合が消費される品目である。逆にCVが大きい(=特定地域型寄り)のはまぐろ・魚介の漬物・ぶり・合いびき肉など。原論文(2018-2020年)とは品目が完全一致はしないが、「均一に消費される品目 vs 地域に偏る品目」を分けるという発想は実データでも再現できた。
均一消費型 変動係数ランキング(実再現)
図3:都道府県間のシェア変動係数が小さい品目(=均一消費型の候補)。実再現:SSDSE-C-2026(2023-2025年)/食料合計に対する支出割合で計算(N=47)。CVが小さいほど全国均一に消費される。
📊 この図の読み方
棒が短い(CV小)
どの都道府県でも同じ割合で買われる均一消費型。他の調味料・豚肉・食用油など。
裏返すと
CVが大きい品目(まぐろ・魚介の漬物など)は地域偏りが強く、原論文の①特定地域型・②東西型に対応しやすい。
位置づけ
実再現。原論文の④均一消費型の考え方(分散の小ささ)を、最新SSDSE-Cの変動係数で確かめたもの。年次が異なるため品目リストは原論文と完全一致しない。
5
図4:都道府県クラスター分析デンドログラム(実再現)

原論文の主結果は、都道府県のクラスター分析(図2)だった。SSDSE-Cの品目別支出があれば実際に計算できるので、ウォード法で再現する。

やってみよう都道府県をウォード法でクラスタリングする【実再現】
  • ① このコードの目的:各品目シェアを標準化(z-score)し、全国平均も1個体として加えてウォード法で階層的クラスタリングする。2分割・6分割での所属を書き出し、原論文の「近畿以北 vs 中国以南」と「愛知・三重・岐阜が全国平均と同一クラスター」を実データで確かめる。
  • ② 前後のつながり:これは原論文 図2(テンドログラム)の核心を実データで再現する部分。結果を図4のデンドログラムにする。
📝 コード
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
nation_share = (nation[item_cols].astype(float) / float(nation[FOOD_TOTAL]))
share_all = pd.concat([share, pd.DataFrame([nation_share.values],
                       columns=item_cols, index=['全国平均'])])
Z_std = (share_all - share_all.mean()) / share_all.std()
Zmat = Z_std.fillna(0.0).values
link = linkage(Zmat, method='ward')

labels_all = list(share_all.index)
# 2分割・6分割のクラスター所属
c2 = fcluster(link, t=2, criterion='maxclust')
c6 = fcluster(link, t=6, criterion='maxclust')
grp2 = pd.Series(c2, index=labels_all)
grp6 = pd.Series(c6, index=labels_all)

print('  大きく2グループに分割した結果(原論文:近畿以北 vs 中国以南):')
for g in sorted(grp2.unique()):
    members = [m for m in labels_all if grp2[m] == g]
    print(f'    グループ{g}{len(members)}): {" ".join(members)}')

nat_grp = grp6['全国平均']
same_as_nation = [m for m in labels_all if grp6[m] == nat_grp and m != '全国平均']
print(f'\n  全国平均と同じクラスターに入った都道府県(原論文:愛知・三重・岐阜):')
print(f'    {" ".join(same_as_nation)}')
▼ 実行結果
=== [4] 実再現:クラスター分析(ウォード法, SSDSE-C-2026) ===
  大きく2グループに分割した結果(原論文:近畿以北 vs 中国以南):
    グループ1(17): 鳥取県 島根県 岡山県 広島県 山口県 徳島県 香川県 愛媛県 高知県 福岡県 佐賀県 長崎県 熊本県 大分県 宮崎県 鹿児島県 沖縄県
    グループ2(31): 北海道 青森県 岩手県 宮城県 秋田県 山形県 福島県 茨城県 栃木県 群馬県 埼玉県 千葉県 東京都 神奈川県 新潟県 富山県 石川県 福井県 山梨県 長野県 岐阜県 静岡県 愛知県 三重県 滋賀県 京都府 大阪府 兵庫県 奈良県 和歌山県 全国平均

  全国平均と同じクラスターに入った都道府県(原論文:愛知・三重・岐阜):
    富山県 石川県 福井県 岐阜県 愛知県 三重県 滋賀県 京都府 大阪府 兵庫県 奈良県 和歌山県
  図4保存: html/figures/2021_U4_fig4_timeseries.png
  • ④ 実行結果の読み取り:実データでもまず大きく2グループに分かれ、片方は中国・四国・九州・沖縄の17県(中国以南)、もう片方は近畿以北の31(+全国平均)。原論文の「近畿以北 vs 中国以南で大きく異なる」がほぼそのまま再現された(広島の帰属だけ原論文と異なる)。さらに全国平均は中部・近畿のクラスターに入り、その中に原論文が「最も平均的」とした愛知・三重・岐阜が含まれる。年次・前処理が違ってもコアな地域構造は頑健だと分かる。
都道府県 食料消費クラスター分析デンドログラム(実再現)
図4:都道府県の食料消費クラスター分析(ウォード法)。実再現:SSDSE-C-2026(2023-2025年)品目別支出シェアを標準化(N=47+全国平均)。原論文 図2 の再現。
📊 この図の読み方
高さ(結合距離)
低い位置で結ばれる県ほど消費傾向が似ている。まず大きく2つの束に割れる。
2大分割
一方が中国・四国・九州・沖縄(中国以南)、他方が近畿以北。原論文の主結論と一致。
位置づけ
実再現。手法(ウォード法)と主結論(地方ごとの大別)は原論文と共通。ただし年次・物価調整の有無が異なるため、細部(広島の帰属など)は完全一致しない。

表2:クラスターA〜Fの構成(原論文の報告値)

原論文はデンドログラム(図2)を類似度6〜7の段階で切り、6クラスターを得た。以下は原論文の報告値である。

クラスター構成(原論文の記述)
A中部地方・近畿地方+広島:「大阪・兵庫・広島」に「滋賀・京都・奈良」「愛知・三重・岐阜」「富山・石川・福井」が順に加わる
B北海道・東北地方+新潟・長野:「岩手・宮城」「新潟・長野」「山形」と、「青森・秋田」「北海道」が合わさる
C関東地方+福島・静岡:「栃木・群馬」に「茨城」「福島・山梨」、「1都3県」に「静岡」が加わる
D九州地方+島根:「大分・宮崎・熊本」に「鹿児島」、「福岡・佐賀」「島根・長崎」が合わさる
E中国地方・四国地方:「徳島・愛媛・岡山」に「和歌山」「山口・香川」「高知」「鳥取」が順に加わる
F沖縄(単独)

結合の順は D→E、B→C、(D+E)→F、(B+C)→A で進み、最終的に「近畿以北(A・B・C)」と「中国以南(D・E・F)」の2つにまとまる。全国平均のデータが「愛知・三重・岐阜」と同じクラスターを形成したことから、この3県が食料において最も平均的な消費をしていると分かる、と著者は述べる。

主要な発見(原論文の報告値)

消費品目:ランキングでは埋もれる総合的な特徴を抽出

消費重心という独自尺度を含む複数の尺度で、①特定地域型(特産物)②東西型(西:たい・まんじゅう…/東:まぐろ・ワイン…)③都会・地方型(都会:外食・加工品/地方:みそ・カップ麺…)④均一消費型⑤その他、の5類型に整理。ランキング形式では取り上げられない大まかな地方ごとの傾向まで反映できた。

都道府県:近畿以北 vs 中国以南、そしてA〜F

食料消費の地域性は「位置する地方」で概ね大別できる クラスター分析の結果、まず北海道〜近畿のグループ(広島を除く)中国地方〜九州のグループに分割された。すなわち我が国の食料家計消費は近畿以北と中国以南で大きく異なる。さらにA〜Fの6クラスターに細分化され、いずれも地理的にまとまっている。全国平均は愛知・三重・岐阜と同一クラスター=この3県が最も平均的

結果の解釈と課題(原論文「5. 結果の解釈」)

ランキングの限界を超えられた点

①特定地域型では、品目別全国平均消費割合との差を用いることで、ランキング上位品目の中でも特に特定地域で消費される品目のみを抽出できた。②東西型では、都道府県ごとの単純比較ではなく、全体のデータと人口重心を使って総合的な中心点(消費重心)を求め、経度でソートして西・東の傾向を抽出した。③都会・地方型では人口密度との相関を用い、都会型が外食・加工品中心という「都市のイメージ」と整合的な結果を得た。

残る課題(原論文「5.3」)

著者自身が挙げる限界
  • グルーピングの順序・基準:どのグループから順に抽出するか、特徴ありと判断する基準をどう定めるかで結果が変わる。最適な順序・基準の検討は課題。
  • クラスター手法の選択:採用する手法によってグルーピング結果が大きく異なる。どの手法が都道府県間の特性をもれなく表章できるか、多角的な検討が必要。
  • データの性質:家計調査は速報目的。構造統計である「全国消費実態調査」で同様に分析すれば、より安定的・詳細(県庁所在市以外・人口階級別)な導出が可能と展望する。

まとめ

本研究は、家計調査のランキング形式では埋もれてしまう下位の消費品目や都道府県間の特徴を、独自指標「消費重心」と多変量解析(ウォード法クラスタリング)で総合的に導出した点に価値がある。消費品目は5類型に、都道府県は近畿以北/中国以南→A〜Fの6クラスターに大別でき、食料消費の地域性が「位置する地方」で概ね説明できることを示した。愛知・三重・岐阜が全国平均に最も近いという発見も、ランキングでは得られないものである。

この研究から学べること 審査会も「記述的多変量解析系の仮説探索型分析」であり、消費重心という著者オリジナルの提案を前提に新規性を高く評価した。既存の指標(人口重心)の重みを置き換えて新しい尺度を作る発想、複数の尺度を優先順位づけて品目を類型化する設計、そして多変量解析で全体像を可視化する姿勢が学べる。

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

このページの均一消費型の変動係数(図3)と都道府県クラスター分析(図4)は、以下から再現できます。

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

※ 消費重心の地理分布(図1)と東西型の経度順(図2)は、人口重心の経緯度がSSDSE-Cに無いため、原論文 補表・表1 の報告値を可視化したものです。図3・図4は最新版 SSDSE-C-2026(2023-2025年)による近似的再現で、原論文(SSDSE-C-2021・2018-2020年・物価地域差指数で実質化)とは年次・前処理が異なります。

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

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

誤解1:「消費重心は、その品目が最も多く消費される『場所』を示す」
消費重心は各都道府県の人口重心を消費額で加重平均した1点。だから重心は全品目で経度137前後(=日本の人口重心付近)に集中する。示すのは「絶対的な消費地」ではなく、全国平均と比べてどちら(東西・南北)に寄っているかという相対的な偏りである。
誤解2:「クラスターの2大分割=味覚や文化がそこで断絶」
クラスター分析はデータ上の類似度で束ねるだけ。「近畿以北 vs 中国以南」は食料支出パターンの相対的な近さの話で、県境で消費が急に変わるわけではない。手法(ウォード法など)を変えると分割も変わりうる、と著者自身が注意している。
誤解3:「均一消費型=どうでもいい品目」
均一消費型は全国どこでも一定割合で買われる基礎的な品目(調味料・豚肉・食用油など)。地域性が無いだけで消費の土台であり、地域差を論じる際の「基準線」として重要。地域性のある品目を浮かび上がらせるために欠かせない。
誤解4:「このページの図はすべて原論文と同じ数値」
図1・図2は原論文 補表の報告値の可視化(再計算ではない)。図3・図4は実再現だが、最新版SSDSE-C-2026(2023-2025年)を用い、原論文の物価地域差指数による実質化を割合変換で代替した近似であり、年次・前処理が原論文と異なる。図注に明記している。

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

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

消費重心(重みつき平均)
人口重心の重み(人口)を家計消費額に置き換えた独自指標。各都道府県の人口重心を消費額で加重平均し、品目の消費が全国のどこを中心にしているかを1点の経緯度で表す。
階層的クラスタリング
似た個体を近いものから順に結合して木構造(デンドログラム)を作る手法。本研究は都道府県を食料消費パターンで束ねた。
ウォード法
クラスターを結合したときの分散(平方和)の増加が最小になるように結合する手法。まとまりのよい球状クラスターを作りやすい。
変動係数(CV)
標準偏差÷平均。単位や規模に依らずばらつきの大きさを比べられる。小さいほど均一(本ページの均一消費型判定に使用)。
相関係数
2つの数量が一緒に増減する強さと向きを−1〜+1で表す。原論文は消費額と人口密度の相関で都会・地方型を判定した。
標準化
平均0・標準偏差1に変換する操作。規模の異なる品目を対等に比べ、クラスター分析に投入するために行う。
人口重心
1人1人を同じ重さと仮定したとき、地域の人口が釣り合う地理的な点。消費重心の下敷きになった概念。

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

この研究で使われている手法を、手を動かす順に説明する。

全体像
消費重心・相関・分散で品目を5類型に分け(記述的な仮説探索)、標準化した品目別支出を使ってウォード法で都道府県を束ねる(多変量解析)。ランキングでは見えない全体像を、重心と樹形図で可視化するのが見どころ。
🧭 消費重心(重みつき平均の応用)
何をする
各都道府県の人口重心(経緯度)を、その品目の家計消費額で加重平均し、消費の「中心点」を1点で表す。
読み方
経度が小さい→西日本寄り、大きい→東日本寄り。緯度が大きい→北寄り。全体平均(米の位置)からのズレで地域性を読む。
注意
重心は人口重心付近に密集するので、差はわずか。絶対位置ではなく相対的な偏りとして解釈する。人口重心の経緯度が別途必要(SSDSE-Cだけでは作れない)。
🌳 階層的クラスタリングウォード法
何をする
都道府県を、食料消費パターンが似たものから順に結合して樹形図(デンドログラム)を作る。ウォード法は結合による分散増加が最小になるよう束ねる。
読み方
低い高さで結ばれる県ほど似ている。任意の高さで横に切ればクラスター数を選べる(本研究は2分割・6分割で解釈)。
注意
手法(結合法・距離)で結果が変わる。標準化(規模合わせ)を忘れると金額の大きい品目に引っ張られる。
📏 相関・分散による品目分類
何をする
消費額と人口密度の相関の符号で都会型/地方型を、都道府県間の分散(変動係数)の小ささで均一消費型を判定する。
なぜ必要
1つの尺度では捉えきれない品目の性格を、複数の尺度を優先順位づけて多面的に類型化するため。
注意
相関は因果ではない。平均が極端に小さい品目は変動係数が不安定になるので前処理で注意。

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

この研究の「記述的に地域性を可視化した」という結論は、次の研究の出発点になる。

発展1:より安定的なデータでの再検証
結果X
速報目的の家計調査で、近畿以北/中国以南の2大分割とA〜Fの6クラスターを得た。
新仮説Y
サンプルの大きい構造統計なら、県庁所在市以外や人口階級別でも同じ地域構造が出るのでは。
課題Z
全国消費実態調査で同じ分析を行い、地域性がより鮮明・安定に再現されるか検証する(原論文が明示した展望)。
発展2:クラスター手法の頑健性チェック
結果X
ウォード法で地方ごとの大別が得られたが、手法で結果が変わる欠点がある。
新仮説Y
群平均法・最長距離法・k-means等でも「近畿以北 vs 中国以南」は保たれるのか。
課題Z
複数の距離・結合法でクラスタリングの安定性を比較し、頑健な地域構造だけを結論とする。

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

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

★☆☆☆☆ 難易度1
均一消費型を増やして見る
図3の cv_keep.head(14)head(25) に変えて、どんな品目まで「均一に消費される」のか広げて眺めよう。
★★☆☆☆ 難易度2
特定地域型の候補を出す
cv_keep.tail(15) を表示し、CVが大きい=地域に偏る品目を確認。原論文の①特定地域型(あじ・かつお・メロン等)とどれくらい重なるか比べよう。
★★★☆☆ 難易度3
クラスター数を変える
fcluster(link, t=6, ...)t を 3 や 8 に変えて、各クラスターの構成都道府県がどう変わるか観察しよう。
★★★★☆ 難易度4
結合法を変えて頑健性を見る
linkage(Zmat, method='ward')method'average''complete' に変え、「近畿以北 vs 中国以南」の2大分割が保たれるか確かめよう。
★★★★★ 難易度5
主成分分析で2次元に落とす
sklearn.decomposition.PCA で品目シェアを2主成分に圧縮し、47都道府県を散布図にプロット。クラスターの色分けと重ねて、地域構造を別角度から可視化しよう。
ヒント:標準化済みの Zmat をそのまま PCA(n_components=2).fit_transform() に渡せる。

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

「多次元のデータを重心や樹形図で束ね、全体像を可視化する」発想は、現場でも広く使われている。

🛒
小売・マーケティング
POSデータで店舗や地域を購買パターンでクラスタリングし、地域限定商品や品揃えの最適化に使う。消費重心の発想は物流拠点の重心立地にも通じる。
🗺️
地域分析・EBPM
都道府県・市区町村を多指標でクラスタリングし、似た地域どうしを比較して政策のベンチマークにする。
🧬
データサイエンス全般
階層的クラスタリングは遺伝子発現・顧客セグメント・文書分類など、ラベルの無いデータの構造発見(教師なし学習)の定番手法。

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

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

Q. 消費重心の経度が全部137前後で、差が小さすぎませんか?
A. はい、それが消費重心の性質です。各都道府県の人口重心を消費額で加重平均するので、重心は必ず日本の人口重心(岐阜県あたり、経度137付近)の近くに来ます。大事なのは絶対位置ではなく、平均からどちらへわずかにズレるか。たい(136.457)とまぐろ(137.640)の約1.2度の差が、西日本・東日本の消費傾向の違いを表します。
Q. このページの図は原論文と同じ数値ですか?
A. 一部だけ実再現です。図1(地理分布)・図2(東西の経度順)は、人口重心の経緯度がSSDSE-Cに無いため原論文 補表の報告値を可視化したもの。図3(均一消費型のCV)・図4(クラスター分析)はSSDSE-Cの品目別支出から実際に計算した実データですが、最新版SSDSE-C-2026(2023-2025年)を用い、原論文の物価地域差指数による実質化を割合変換で代替した近似です。図注に明記しています。
Q. 再現で「近畿以北 vs 中国以南」がちゃんと出たのはなぜ?
A. 食料消費の地域構造が年次や前処理の違いに対して頑健だからです。実データでも中国・四国・九州・沖縄の17県が一方の束に、近畿以北の31が他方に分かれ、原論文の主結論とほぼ一致しました(広島の帰属だけ差があります)。地域性が本物であることの傍証といえます。
Q. 愛知・三重・岐阜が「最も平均的」とはどういう意味?
A. クラスター分析に全国平均のデータも1個体として入れると、この3県が全国平均と同じクラスターに入りました。つまり食料の消費構成が全国平均に最も近い=突出した地域性が薄い、ということです。全国の人口重心が岐阜県付近にあることとも符合します。

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

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

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

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

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