論文一覧に戻る 🕸 論文ネットワーク 🗺 用語ネットワーク 統計データ分析コンペ 教育用再現集
特別賞(統計活用)[高校生の部]
2020年度(令和2年度) 統計データ分析コンペティション

高校生と高齢者の利用で
中央商店街を活性化しよう!!

⏱️ 推定読了時間: 約28分
著者:田中千遥・玉井菜実(愛媛県立松山南高等学校3年) 手法:時系列の可視化・構成比・アンケート集計・エリア分析(GIS) 対象:松山市 中央商店街(銀天街・大街道)
🔬 アンケート集計🔬 エリア分析🔬 時系列分析🔬 構成比🏷 交通🏷 経済・産業
🔬 手法タグ / 🏷 応用タグ(クリックで同タグの論文をネットワーク検索)
🔬 再現カルテ — データが公開されておらず、原論文の報告値をたどる形で再現

この教材は、元データが公開されていないため再計算ができません。原論文が論文中に報告した数値をたどって図表にし、「その数値からどこまで言えるか」を読み解く形で学びます。数値そのものは原論文からの引用であり、この教材が計算したものではありません。

原論文が使ったデータSSDSE-A・SSDSE-B・国勢調査・日本の地域別将来推計人口・松山市ホームページ・jSTAT MAP・経済センサス・本校全校生徒アンケート
分析単位:その他
中核手法:相関分析
この教材が使うデータCSV は読み込まない(原論文が報告した数値をそのまま図表化して読み解く)
原論文(PDF)高校生と高齢者の利用で中央商店街を活性化しよう!!
特別賞/田中千遥・玉井菜実(愛媛県立松山南高等学校)
⚠️ この教材ではできないこと(原論文との違い)
  • 元データが公開されていないため、数値の再計算はできない(原論文が報告した値をたどる形で学ぶ)
📄 原論文との違いを、もっと詳しく
📄 原論文:商店街の独自アンケートと SSDSE で記述統計を実施。
📘 本教材:原論文の報告値を転記して図表化。独自アンケートデータは入手不可能なため再計算していない。
⚠️ 注意:ページ中の数値は原論文の報告値。
🚀 原論文と同じ粒度で挑戦したい人へ

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

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

🏅 論文審査会コメント(審査員はここを評価した)
「データの調査にとどまっている感があるが、実際に街づくりをして地域を活性化したいという切実な思いを感じる。」
出典:統計センター「統計データ分析コンペティション」受賞論文PDF掲載の審査講評。プロの審査員が何を評価し、何を注文したかは論文の読み方の最良の手本になる。
📝 3行で分かる要約

目次

  1. 研究の背景と目的
  2. 使用データと再現可能性
  3. 中央商店街の状況(通行量・空き店舗率)
  4. 周辺エリアの人口・世帯・産業
  5. 周辺の高校と高校生
  6. 全校生徒アンケート
  7. 活性化のための施策提案
  8. 結論・展望
  9. 📥 データの準備
  10. ⚠️ よくある誤解
  11. 📖 用語集
  12. 📐 手法ガイド
  13. 🚀 発展の可能性
  14. 🎯 自分でやってみよう
  15. 📚 関連する論文
  16. 💼 実社会での応用
  17. 🤔 Q&A
  18. 🐍 ブラウザで動かす

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

研究の背景と目的

著者が通う愛媛県立松山南高校の近くには、松山市の中央商店街(銀天街・大街道)がある。 近年この商店街では空き店舗が増え、通行量が減り、活気不足だと感じられていた。 そこで、中央商店街の現状と周辺住民の状況をデータで分析し、活性化のための具体的な施策を考えることを目的とした研究である。

まず「なぜ商店街に活気がないのか」を感覚ではなくデータでとらえることが出発点になる。 通行量が減る → 店の売上が下がる → 空き店舗が増える → さらに人が来なくなる、という悪循環が起きていないかを、公開データで確かめていく。

研究の問い 中央商店街はどれくらい衰退しているのか? 周辺にはどんな人が住み、通っているのか? そして、誰をターゲットにどんな施策を打てば、商店街に人を呼び戻せるのか?
分析の流れ
現状把握
通行量・空き店舗率
人口・将来
愛媛県・松山市
エリア分析
jSTAT MAP
高校生アンケート
1,023人
施策提案
企業ヒアリング

SSDSE-2020A/B 時系列の可視化 構成比・帯グラフ エリア分析(GIS) アンケート集計

受賞・審査コメント(原論文より) 本研究は特別賞(統計活用)[高校生の部]を受賞した。論文審査会コメントは 「データの調査にとどまっている感があるが、実際に街づくりをして地域を活性化したいという切実な思いを感じる」であった。 本ページでも、この研究が高度な統計モデルではなく「丁寧なデータ収集と可視化」で地域課題に迫った点を尊重して解説する。

使用データと再現可能性

本研究は、教育用標準データセット SSDSE と、複数の公的データ・独自アンケートを組み合わせている。

原論文が使用したデータ

データ内容・年度出典
SSDSE-2020A(市区町村データ)松山市の総人口・年少/生産年齢/老年人口(2015)国勢調査
SSDSE-2020B(都道府県・時系列)愛媛県の人口(2010, 2015 ほか)国勢調査
追加:人口の長期推移愛媛県・松山市(1980〜2010)国勢調査
追加:将来推計人口2020〜2045(5年刻み)国立社会保障・人口問題研究所「日本の地域別将来推計人口」
中央商店街 通行量平成18〜26年度松山市HP「中心市街地の現状と課題」
空き店舗率平成10〜25年度松山市HP「中心市街地の現状と課題」
エリア分析レポート半径500m〜1km 圏(H27)e-Stat 地図で見る統計(jSTAT MAP)
商店街利用アンケート令和元年度・全校生徒1,023人本校独自アンケート
⚠️ 再現可能性トリアージ(このページの図はどこまで再現か) 本研究の中心データ(市レベルの通行量・空き店舗率jSTAT MAP のエリア分析独自アンケート)は、 いずれも SSDSE には収録されていない。 そのため本ページの図は、原論文の本文・図に印字された「報告値」をそのまま可視化したものであり、 生データからの再計算ではない。各図のキャプションと図注に二重に明記している。 数値はすべて原論文(PDF)を正とし、新しい数値は一切作っていない。 また、地図・GISエリア図(原論文 図4・図9 の地図)は再現できないため、表・文章で提示し「地図は原論文参照」とした。
26,765
通行量の減少(人)平成19→26年度
約7倍
中央商店街の空き店舗率(H10→H25)
約7,000
半径約1km圏の高校生(7校合計)
1,023
アンケート回答者(本校全校生徒)
1
中央商店街の状況(通行量・空き店舗率)

まず松山市の公開データから、中央商店街の通行量空き店舗率の推移を確認する。 原論文によれば、通行量は平成19年度から平成26年度にかけて 26,765人減少し、 空き店舗率は平成10年度から平成25年度にかけて約7倍に増加した。 通行量が減って売上が下がり、空き店舗が増える——という悪循環に陥っている。

通行量の推移(原論文 図1・報告値) 平成18年度の約10.6万人/平成19年度の約10.8万人(ピーク)から、平成26年度には約8.2万人まで減少(約26,765人減)。 出典は松山市HP「中心市街地の現状と課題」。 各年の点ごとの数値は原論文の図に印字されていないため、忠実な折れ線は再現せず数値のみを示す。グラフは原論文(図1)参照

目的:空き店舗率が「市全体・中心市街地・中央商店街」でどう違い、どのように悪化してきたかを一目で比べたい。 そのために:まず分析の土台(ライブラリ・日本語フォント・図の保存先)を用意する。

やってみようセットアップ:ライブラリ・日本語フォント・図の保存先
📝 コード
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import os
import numpy as np
import pandas as pd
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt

plt.rcParams['font.family'] = 'Hiragino Sans'   # Windowsは 'Yu Gothic'
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['figure.dpi'] = 150

FIG_DIR = 'html/figures'
os.makedirs(FIG_DIR, exist_ok=True)
▼ 実行結果
このステップは print しません。以降で使う準備(フォント設定・保存先フォルダの作成)が整っただけです。
💡 解説
  • matplotlib.use('Agg') — 画面表示せず図をPNGファイルに保存するための指定。
  • plt.rcParams['font.family'] = 'Hiragino Sans' — グラフの日本語が豆腐(□)にならないようにするフォント指定(Windowsなら Yu Gothic)。
  • os.makedirs(FIG_DIR, exist_ok=True) — 図の保存先 html/figures/ を作成(既にあってもエラーにしない)。
💡 Python TIPS matplotlib.use('Agg')import matplotlib.pyplot前に呼ぶのが安全です。

そのため次を実行:原論文 図2 の空き店舗率(3系列×9時点)の報告値をそのまま表にして、増加の大きさを数値で確認する。

やってみよう空き店舗率の報告値を定義して確認する(原論文 図2)
📝 コード
14
15
16
17
18
19
20
21
22
23
24
# 原論文 図2 の報告値をそのまま定義(%)
years = ['H10', 'H12', 'H13', 'H15', 'H17', 'H19', 'H21', 'H23', 'H25']
vac = pd.DataFrame({
    '市全体':     [6.7, 10.4, 11.1, 11.9, 10.6, 14.2, 15.5, 16.0, 16.2],
    '中心市街地': [5.2,  5.4,  5.7,  6.2,  7.6,  8.9, 11.2, 13.8, 14.0],
    '中央商店街': [1.6,  2.6,  2.4,  2.3,  2.7,  6.5,  9.8,  9.6, 11.3],
}, index=years)

print(vac.to_string())
ratio = vac['中央商店街'].iloc[-1] / vac['中央商店街'].iloc[0]
print(f"中央商店街: {ratio:.1f}倍 ≒ 約7倍")
▼ 実行結果
      市全体  中心市街地  中央商店街
H10   6.7    5.2    1.6
H12  10.4    5.4    2.6
H13  11.1    5.7    2.4
H15  11.9    6.2    2.3
H17  10.6    7.6    2.7
H19  14.2    8.9    6.5
H21  15.5   11.2    9.8
H23  16.0   13.8    9.6
H25  16.2   14.0   11.3
中央商店街: 7.1倍 ≒ 約7倍
💡 解説
  • pd.DataFrame({...}, index=years) — 3系列(市全体/中心市街地/中央商店街)×9時点の報告値をそのまま表にした。
  • vac['中央商店街'].iloc[-1] / vac['中央商店街'].iloc[0] — 最後(H25=11.3)÷最初(H10=1.6)=7.1倍。原論文の「約7倍」と一致する。
  • 市全体(6.7→16.2%)・中心市街地(5.2→14.0%)も上昇しているが、中央商店街は倍率でみると最も急増していることが読み取れる。
💡 Python TIPS .iloc[-1] は「末尾の要素」。マイナス添字で後ろから数えられます。

そのため次を実行:表だけでは推移の形が見えないので、3系列の折れ線グラフにして各点に報告値を印字する。

やってみよう空き店舗率の推移を折れ線で描く(図1として保存)
📝 コード
25
26
27
28
29
30
31
32
33
34
35
fig, ax = plt.subplots(figsize=(10, 5.5))
colors_v = {'市全体': '#1F3B99', '中心市街地': '#D63FA0', '中央商店街': '#E8A33D'}
markers  = {'市全体': 'o', '中心市街地': 's', '中央商店街': '^'}
for col in vac.columns:
    ax.plot(years, vac[col], marker=markers[col], color=colors_v[col],
            linewidth=2, markersize=7, label=col)
    for x, y in zip(years, vac[col]):        # 各点に報告値を印字
        ax.annotate(f'{y}', (x, y), textcoords='offset points',
                    xytext=(0, 7), ha='center', fontsize=8)
ax.set_ylabel('空き店舗率(%)'); ax.set_ylim(0, 18); ax.legend()
fig.savefig(f'{FIG_DIR}/2020_H5_2_fig1.png', bbox_inches='tight')
▼ 実行結果
このステップは図を保存するだけで print はしません。下の図1が生成されます。
💡 解説
  • 系列ごとに ax.plot(...) を呼び、色とマーカーを分けて重ねている。
  • 内側の for x, y in zip(years, vac[col]) で、各点の真上に報告値(例: 11.3)を annotate で印字。
  • これは報告値の可視化であり、原データからの再計算ではない点に注意。
💡 Python TIPS zip(a, b) は2つのリストを同時に回せます。座標と値をペアで扱うときに便利。
空き店舗率の推移
図1:空き店舗率の推移(市全体・中心市街地・中央商店街、H10〜H25)。 報告値の可視化(再計算ではない)。数値は原論文 図2 の報告値、出典は松山市HP「中心市街地の現状と課題」。
📌 この折れ線グラフの読み方
このグラフは
横軸に年度(平成)、縦軸に空き店舗率(%)をとり、3つの範囲を色分けした折れ線。
読み方
線が右上がりなら悪化。3本とも右上がりで、中央商店街(オレンジ)は H17 まで低かったのに H19 以降で急上昇している。
なぜそう言えるか
H10 の 1.6% が H25 に 11.3% と約7倍。傾きが H17→H19 で急に立ち上がっており、この時期に空き店舗化が一気に進んだことがわかる。
2
周辺エリアの人口・世帯・産業

次に「商店街の周りにはどんな人が住んでいるのか」を調べる。原論文は、銀天街・大街道の境目あたりを中心に 半径約500m のエリア(原論文 図4 の地図)について、e-Stat 地図で見る統計(jSTAT MAP)で エリア分析レポートを作成し、年齢別人口・世帯人員・産業構成を調べた。

エリアの位置(原論文 図4・地図) 分析エリアは銀天街・大街道を中心とした半径約500mの円内。地図は再現できないため原論文(図4)を参照

目的:周辺エリアは松山市全体と比べて「高齢者が多いのか」「単身世帯が多いのか」を、報告値で端的に比べたい。 そのために:原論文の本文に明記された代表値(高齢者割合・単身世帯割合)を表にして比較する。

やってみよう周辺エリア vs 松山市全体の代表値を比べる(原論文 図5・図6)
📝 コード
36
37
38
39
40
41
# 原論文 図5・図6 の報告値(本文に明記された代表値のみ)
area = pd.DataFrame({
    '65歳以上人口の割合': [30, 25],
    '単身世帯の割合':     [65, 40],
}, index=['商店街周辺エリア', '松山市全体'])
print(area.to_string())
▼ 実行結果
          65歳以上人口の割合  単身世帯の割合
商店街周辺エリア          30       65
松山市全体             25       40
💡 解説
  • 原論文 図5・図6 は詳細な帯グラフだが、点ごとの数値は本文の代表値のみ明記されている。そこで明記された値だけを表にした。
  • 65歳以上人口の割合:周辺 30% > 松山市 25%。単身世帯の割合:周辺 65% = 松山市 40% の約1.6倍。
  • つまり周辺エリアは高齢者と単身世帯が相対的に多い。これが後の施策(高齢者・単身世帯ターゲット)の根拠になる。
💡 Python TIPS 棒の高さで「率」を比べる図は、母集団が違っても割合なら比較できるのが利点です。
周辺エリアと松山市全体の比較
図2:商店街周辺エリア vs 松山市全体(65歳以上人口の割合・単身世帯の割合)。 報告値の可視化(再計算ではない)。数値は原論文 図5・図6 の本文報告値、出典は jSTAT MAP エリア分析レポート(H27国勢調査)。
📌 この棒グラフの読み方
このグラフは
左が高齢者割合、右が単身世帯割合。各パネルで「周辺エリア」と「松山市全体」を並べて比較。
読み方
周辺エリアの棒が両方とも高い。高齢者は 30% vs 25%、単身世帯は 65% vs 40%
なぜ重要か
商店街の「すぐ近くの住民」に高齢者・単身世帯が多いなら、その層が来やすい施設・催しが活性化のカギになる。

産業構成(原論文 図7・図8)

さらに原論文は、周辺エリアの産業別事業所数を松山市・愛媛県と比較している(図7)。 周辺エリアは第3次産業(サービス業)の割合が特に大きく、その内訳(図8)では 宿泊業・飲食サービス業の割合が大きい。商店街周辺は「食べる・過ごす」ためのお店が中心の街だとわかる。 図7・図8 は多カテゴリの帯グラフで各値が明記されていないため、グラフは原論文参照とした。

3
周辺の高校と高校生

原論文は、銀天街・大街道を中心に半径約1kmの範囲に、本校を含め高校が7校集まり、 約7,000人の高校生がいることを地図(図9)と表で示している。 毎日この地域に通う高校生は、商店街にとって大きな潜在的利用者だ。

目的:「どの高校に何人いるか」を一覧し、周辺の高校生数の大きさを実感したい。 そのために:原論文 図9 の表の報告値を定義し、横棒グラフにする。

やってみよう周辺の高校別生徒数を集計する(原論文 図9)
📝 コード
42
43
44
45
46
47
48
# 原論文 図9 の報告値(半径約1km圏の7校)
schools = pd.DataFrame({
    '高校': ['松山東', '松山南', '松山工業', '松山商業', '聖カタリナ学園', '済美', '松山東雲'],
    '全校生徒数': [1050, 1050, 950, 950, 950, 1800, 300],
})
print(schools.to_string(index=False))
print(f"合計: 約{schools['全校生徒数'].sum():,}人")
▼ 実行結果
     高校  全校生徒数
    松山東   1050
    松山南   1050
   松山工業    950
   松山商業    950
聖カタリナ学園    950
     済美   1800
   松山東雲    300
合計: 約7,050人
💡 解説
  • 7校の全校生徒数(概数)を表にし、合計を計算。約7,050人(原論文表記は「約7,000人」)。
  • 最多は済美高校(約1,800人)。本校(松山南)と松山東が各約1,050人。
  • 合計が原論文の「約7,000」とわずかに違うのは、各校が概数だから。無理に丸めず、原論文の各校値をそのまま用いた。
💡 Python TIPS {値:,},3桁区切りの書式。7050 が 7,050 と表示されます。
周辺の高校別生徒数
図3:商店街周辺(半径約1km圏)の高校別生徒数(概数)。 報告値の可視化(再計算ではない)。数値は原論文 図9 の表、出典は国土地理院・各校HP。地図は原論文参照。
4
全校生徒アンケート(1,023人)

「高校生は中央商店街に何を望んでいるのか」を調べるため、著者は本校全校生徒1,023人にアンケートを実施した。 結果、半数以上が中央商店街の利用は週1回以下で、「自宅と商店街の方向が逆」「部活が忙しい」「行く理由がない」といった声が多かった。

目的:高校生の利用頻度の分布を一目でつかみたい。 そのために:原論文 図10 の報告値(%)を円グラフにする。

やってみよう利用頻度の割合を円グラフにする(原論文 図10, n=1023)
📝 コード
49
50
51
52
53
54
55
56
57
58
59
# 原論文 図10(利用頻度, n=1023)の報告値を円グラフに
freq_labels = ['毎日', '週4〜6回', '週1〜3回', 'それ以下', '通らない']
freq_vals   = [3, 3, 9, 57, 28]   # %(合計100)

fig, ax = plt.subplots(figsize=(7, 7))
ax.pie(freq_vals,
       labels=[f'{l}\n{v}%' for l, v in zip(freq_labels, freq_vals)],
       startangle=90, counterclock=False,
       wedgeprops=dict(edgecolor='white', linewidth=1.5))
fig.savefig(f'{FIG_DIR}/2020_H5_2_fig4.png', bbox_inches='tight')
print('週1回以下(それ以下+通らない)=', 57 + 28, '%')
▼ 実行結果
週1回以下(それ以下+通らない)= 85 %
この円グラフは図4として保存され、print は集計値のみ出力します。
💡 解説
  • 「それ以下(57%)+通らない(28%)=85%」が週1回以下。半数どころか8割超がほとんど利用していない。
  • 「毎日(3%)+週4〜6回(3%)」の常連はごくわずか。高校生は商店街のすぐ近くにいるのに使っていないという強いギャップが見える。
💡 Python TIPS counterclock=Falsestartangle=90 で、円グラフを12時から時計回りに描けます。
中央商店街の利用頻度
図4:本校生徒の中央商店街 利用頻度(n=1,023)。 報告値の可視化(再計算ではない)。数値は原論文 図10、出典は本校全校生徒アンケート。
📌 この円グラフの読み方
このグラフは
利用頻度を5区分に分け、全体(1,023人)に占める割合で扇形にしたもの。
読み方
大きい扇形=多数派。「それ以下」57%+「通らない」28% で約85%が週1回以下。
次の問い
ではどうすれば来てもらえるか? 著者はここから「自習室」という具体案の検証に進む。

自習室のニーズ検証(原論文 図11・図12)

著者は「高校生に気軽に来てもらうために、空き店舗に自習室を設置してはどうか」と考え、 その賛否と、払ってもよい料金を追加でアンケートした。

そのため次を実行:自習室の賛否(図11)と希望価格帯(図12)の報告値を確認し、「賛成は多いが、お金は払いたくない」という現実を数値でとらえる。

やってみよう自習室の賛否と希望価格帯を確認する(原論文 図11・図12)
📝 コード
60
61
62
63
64
# 図11(自習室の利用希望)と 図12(希望価格帯)の報告値
wish_vals  = [58, 42]              # はい / いいえ
price_vals = [2, 4, 19, 16, 59]   # 1000円以上 … 払いたくない
print('自習室に賛成:', wish_vals[0], '%')
print('料金を払いたくない:', price_vals[-1], '%(最多)')
▼ 実行結果
自習室に賛成: 58 %
料金を払いたくない: 59 %(最多)
💡 解説
  • 設置への賛成は 58%(図11)と半数以上。ニーズはある。
  • 一方で利用料金は「払いたくない」が 59% で最多(図12)。賛成でも有料だと利用は鈍る可能性が読み取れる。
  • この「賛成58% × 払いたくない59%」のねじれが、後の施策(安価な料金設定・放課後割引)の根拠になる。
💡 Python TIPS アンケート結果は合計100%になるか必ず確認。ズレていれば集計ミスのサインです。
自習室の利用希望
図5:自習室を利用したいか(はい58% / いいえ42%)。報告値の可視化。原論文 図11。
自習室の希望価格帯
図6:自習室の希望価格帯(払いたくない59%が最多)。報告値の可視化。原論文 図12。
5
活性化のための施策提案

以上の分析——少子高齢化、通行量減少と空き店舗増加、周辺に多い高齢者・単身世帯、約7,000人の高校生、そして「近いのに使っていない」高校生——から、 著者は高校生・高齢者・単身世帯をターゲットに、次の施策を提案した。

🏫
(1) 空き店舗を交流スペースに
安価な自習室(放課後割引・席の空き状況アプリ)、単身高齢者向けワークショップ、部活の発表の場、フォトコンなどの展示スペース
🛠️
(2) 施設の充実
「荷物が多い」「駐輪場が少ない」という声に応え、コインロッカーや無料駐輪場を整備(立地の都合で高くなる分は学割で軽減)。
🗺️
(3) 店舗マップの設置
分かりやすい位置に店舗マップを設置し、全年代が店を探しやすくする。
📱
(4) 情報発信の充実
商店街全体の情報が集まるアプリと、高校生が拡散役になるSNS発信で、施策と店舗情報を届ける。
企業ヒアリング(株式会社まちづくり松山) 著者は提案を実際に企業へ持ち込み意見をもらった。銀天街のフリースペース「きらりん」2階が自習室に適すること、 ワークショップは講師確保が課題で高校生自身の企画が有効なこと、店舗マップは入れ替えがあり作り直しが必要なこと——など、 現場でしか分からない運営の実情を知り、施策(1)〜(3)に加えて(4)情報発信を新たに加えた。
結論・展望

愛媛県・松山市の人口減少と、中央商店街の通行量減少・空き店舗増加をデータで確認し、 著者の通う高校の近くにある中央商店街が活気不足であることを示した。 そのうえで高校生・高齢者・単身世帯をターゲットにした具体的な活性化施策を提案した。

この研究のいちばんの発見 企業ヒアリングを通じて、著者は「商店街を運営する側」と「利用する側」の間に情報の壁があることに気づいた。 運営側には利用者向けの施設や仕組みがあるのに、利用者にはそれが知られていない。 この情報格差を埋める役割(=情報発信)こそが活性化のカギ、というのが結論である。

本ページはこの研究を「報告値の忠実な可視化」として再現した。統計モデルによる因果推論は行われていないが、 身近な課題を多面的なデータで裏づけ、当事者(高校生)目線で施策に落とし込んだ点に価値がある。 審査コメントの「データの調査にとどまっている」という指摘は、次の一歩——施策の効果測定——への宿題でもある。

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

このページの図は原論文の報告値をそのまま可視化したものです。そのため、外部データのダウンロードは不要で、スクリプトだけでそのまま動きます。

1
スクリプトをそのまま実行する 外部データは不要です(報告値はスクリプト内に定義済み)。ターミナルでプロジェクトルートに移動して実行します。
python3 code/2020_H5_2_shorei.py
図(fig1〜fig6)は html/figures/ に自動保存されます。
2
原論文の生データにあたりたい場合(発展) 市の通行量・空き店舗率は松山市HP「中心市街地の現状と課題」、エリア分析は e-Stat 地図で見る統計(jSTAT MAP)、 人口は SSDSE(教育用標準データセット)や国勢調査から入手できます。 ⬇ SSDSEダウンロードページを開く

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

この研究のデータ・図を読むときに、特に気をつけたいポイントを手法別に整理する。

誤解1:「この図は生データから計算し直した結果だ」
本ページの図はすべて原論文の報告値の可視化であって、再計算ではない。 市レベル・エリア・アンケートのデータは SSDSE に無く、手元で再計算できないため、数値は原論文をそのまま図示している。
誤解2:「空き店舗率が約7倍だから、商店街だけが特別に悪化した」
中央商店街の倍率は大きいが、出発点(H10=1.6%)が低いための倍率でもある。 市全体(6.7→16.2%)・中心市街地(5.2→14.0%)も一貫して上昇している。倍率と実数(水準)は分けて読むのが鉄則。
誤解3:「アンケートは1,023人だから松山の高校生全体を代表する」
回答者は本校(松山南高校)の全校生徒であり、1校の生徒である。母集団は「本校生徒」で、松山市の全高校生に一般化するには注意が必要。
誤解4:「相関・回帰の分析がないから価値が低い」
本研究は高度なモデルではなく、丁寧なデータ収集と可視化で課題に迫った。手法が単純でも、問いの立て方とデータの多面性で説得力を出せる好例である(審査は特別賞)。

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

この論文を読むうえで押さえておきたい用語をまとめた。

SSDSE
教育用標準データセット(Standardized Statistical Data Set for Education)。独立行政法人統計センターが提供する、表計算ソフトですぐ使える公的統計のデータセット。本研究では都道府県版(B)・市区町村版(A)の人口データを利用。
国勢調査
5年ごとに日本に住む全員を対象に行う人口・世帯の全数調査。SSDSEの人口データの多くもこれが出典。
将来推計人口
国立社会保障・人口問題研究所が公表する「日本の地域別将来推計人口」。将来の年齢別人口を推計した値で、実測ではなく推計
空き店舗率
商店街などの全店舗のうち、営業していない店舗の割合(%)。商店街の衰退の代表的な指標。
単身世帯
1人で暮らす世帯。周辺エリアでは約65%と、松山市全体(約40%)より多い。
エリア分析(jSTAT MAP)
e-Stat「地図で見る統計(jSTAT MAP)」の機能。地図上で任意の円などを描き、その範囲の人口・世帯・産業を集計できる。GIS(地理情報システム)の一種。
構成比・帯グラフ/円グラフ
全体を100%として各カテゴリの割合を示す図。年齢構成・世帯構成・アンケート回答の分布を比べるのに向く。

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

本研究は高度なモデルを使わず、目的に応じて「基本的な可視化」を的確に選んでいる。手法ごとに要点と注意点を示す。

この研究の手法をひとことで
「複雑な統計ではなく、正しいグラフを正しい場面で使うこと」。時系列は折れ線、構成比は帯/円、比較は棒。データの型に合ったグラフ選びそのものが分析力になる。
1. 時系列の可視化(折れ線グラフ)
何をする
年ごとに変化する量(通行量・空き店舗率・人口)を折れ線で描き、増減の「向き」と「変わり目」を見る。
この研究では
空き店舗率の3系列(図1)。H17→H19 で急上昇=この時期に空き店舗化が進んだ、と読める。
注意点
縦軸の下限(0からか途中からか)で印象が変わる。複数系列は出発点の水準もあわせて見る(倍率だけで判断しない)。
2. 構成比の比較(帯グラフ・棒グラフ)
何をする
全体を100%として、年齢・世帯人員・産業などの割合を地域間で比べる。
この研究では
周辺エリア vs 松山市(図2/原論文 図5〜8)。高齢者・単身世帯・第3次産業(飲食)の割合が周辺で大きい。
注意点
割合は母数が違っても比較できるのが利点だが、実数(人数・店舗数)を見落とすと規模感を誤る。割合と実数はセットで。
3. アンケート集計(円グラフ・単純集計)
何をする
選択式の回答を区分ごとに数え、割合(%)で示す。利用頻度・賛否・希望価格帯など。
この研究では
全校生徒1,023人(図4〜6)。利用は週1回以下が約85%、自習室は賛成58%だが料金は「払いたくない」59%。
注意点
回答者が1校の生徒である点(標本の偏り)に注意。合計が100%になるかで集計ミスを検算できる。
4. エリア分析(GIS:jSTAT MAP)
何をする
地図上に円などの範囲を描き、その中の人口・世帯・事業所を国勢調査などから集計する。
この研究では
半径約500m〜1km 圏のレポート(原論文 図4・図9)。周辺住民と周辺高校を定量化した。
注意点
提供元は e-Stat「地図で見る統計(jSTAT MAP)」。市区町村より細かい「エリア」の値は SSDSE には無いため、本ページでは再計算せず報告値を用いた。
出典表記についての補足 本研究の人口データは SSDSE(教育用標準データセット) と国勢調査、エリア分析は e-Stat「地図で見る統計(jSTAT MAP)」、将来推計は国立社会保障・人口問題研究所による。 SSDSE の提供主体は独立行政法人統計センターである。

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

この研究を出発点に、さらに深められる方向を挙げる。

発展1:施策の「効果測定」へ
結果 X
高校生の約85%が週1回以下、自習室は賛成58%だが有料は敬遠。
新仮説 Y
「安価な放課後自習室を設ければ、来街頻度が上がる」。
課題 Z
実際に試行し、前後の通行量・利用回数を比較(介入前後比較)して効果を検証する。審査コメントが示した宿題。
発展2:他都市の商店街との比較
結果 X
松山の中央商店街は空き店舗率が約7倍に上昇。
新仮説 Y
「地方中核市の中心商店街は同様の悪循環をたどる」。
課題 Z
SSDSE の市区町村データで複数都市の人口・高齢化を並べ、共通パターンを探す。
発展3:アンケートの標本を広げる
結果 X
回答は本校(松山南)1校の全校生徒。
新仮説 Y
「学校の立地で利用行動が変わる(近い学校ほど使う)」。
課題 Z
周辺7校に調査を広げ、学校ごとの距離と利用頻度の関係を分析する。

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

再現スクリプトを少し書き換えて、手を動かして理解を深めよう。

難易度 ★☆☆☆☆
1. 折れ線の色・マーカーを変える
colors_vmarkers を編集して、図1 の見た目を変えてみよう。凡例と対応しているか確認。
難易度 ★★☆☆☆
2. 空き店舗率の「増加分」を計算する
vac['中央商店街'].iloc[-1] - vac['中央商店街'].iloc[0] で H10→H25 の増加ポイントを出し、3系列で比べよう。
難易度 ★★★☆☆
3. 利用頻度を「週1回以下 / それ以上」の2区分に
freq_vals をまとめ直し、2区分の円グラフを描く。約85% がひと目でわかる図になる。
難易度 ★★★★☆
4. 高校別生徒数に「本校」を強調表示
図3 で「松山南」だけ棒の色を変える(color をリストで指定)。ターゲット校を目立たせよう。
難易度 ★★★★★
5. 自分の街の商店街で同じ分析を
jSTAT MAP で近所の商店街に半径500mの円を描き、高齢者・単身世帯の割合を出して、図2 と同じ比較を作ってみよう。
💡 市区町村より細かい「エリア」の値は SSDSE には無い。jSTAT MAP のエリア分析レポートを使うのがポイント。

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

「エリアの特性を集計し、基本的な図で示す」やり方は、実務で広く使われている。

🏬
出店計画・商圏分析
小売やチェーン店は、候補地の周辺人口・年齢・世帯を jSTAT MAP 等で集計し、出店可否を判断する。まさに本研究の手法。
🏛️
自治体のまちづくり・計画
中心市街地活性化計画などで、通行量・空き店舗率・人口推移をモニタリング指標として用いる。
📋
住民ニーズ調査
施設整備やイベント企画の前に、対象層へアンケートを取り、賛否・価格感を単純集計で把握する。
🗺️
防災・福祉のエリア分析
高齢者・単身世帯が多い地域の特定に GIS を使い、見守りや避難支援の重点エリアを決める。

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

この研究とページについての疑問に答える。

Q. なぜ図は「報告値の可視化」で、生データから作らないの?
A. 中心データ(市の通行量・空き店舗率、エリア分析、独自アンケート)が SSDSE に無く、手元で再計算できないため。数値は原論文(PDF)を正として、そのまま図示している。
Q. 空き店舗率が「約7倍」って本当にそんなに悪い?
A. 中央商店街は H10 の 1.6% から H25 の 11.3% へ。倍率が大きいのは出発点が低かったためでもあるが、水準としても市全体・中心市街地と並んで上昇しており、悪化は明らか。
Q. 統計モデル(回帰など)が無いのに受賞できたのはなぜ?
A. 手法が単純でも、問いの立て方・データの多面性・当事者目線の施策・企業ヒアリングまでの実行力が評価された。審査コメントも「切実な思い」を評価している(特別賞)。
Q. 自分の学校でも同じことはできる?
A. できる。市の公開データ+ jSTAT MAP のエリア分析+校内アンケートがあれば、同じ枠組みで自分の街の商店街や施設を分析できる。

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

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

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

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

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