この教材は、元データが公開されていないため再計算ができません。原論文が論文中に報告した数値をたどって図表にし、「その数値からどこまで言えるか」を読み解く形で学びます。数値そのものは原論文からの引用であり、この教材が計算したものではありません。
| 原論文が使ったデータ | SSDSE-A・SSDSE-B・情報通信白書・労働力調査・宿泊旅行統計調査・観音寺市観光基本計画・気象庁-過去の気象データ検索・農林水産省 観音寺市基本データ・国勢調査 分析単位:都道府県 中核手法:相関分析 |
|---|---|
| この教材が使うデータ | CSV は読み込まない(原論文が報告した数値をそのまま図表化して読み解く) |
| 原論文(PDF) | 観光業による観音寺市の少子高齢化による問題解決 統計数理賞/藤村小桜・石川花鈴・石川桜大・川崎泰治・佐藤龍之介・宮武颯樹(香川県立観音寺第一高等学校) |
原論文と同じ粒度のデータは、この教材にも同梱しています。これを読み込めば、原論文と同じ細かさで分析をやり直せます(下の「🐍 ブラウザで動かす」でコードを書き換えて試せます)。ただし原論文が使った項目がすべて収録されているとは限りません。足りない項目は、上の「できないこと」に書いた出典から取ってくる必要があります。
▶ ここに書いてある分析は、ページ下部の「🐍 ブラウザで動かす」でそのまま実行できます(インストール不要)。動かしているのは code/2020_H3_suri.py(186 行)そのものです。
本ページの図1〜図4は、いずれも原論文(PDF)に印字された報告値をそのまま可視化したもの(再計算ではない)です。原論文は Excel で作成されており、用いた元データの多くは 観音寺市の市レベル統計・観光庁データ で、教育用標準データセット SSDSE(独立行政法人統計センターが配布)には収録されていません。
code/2020_H3_suri.py に直接記載されています(原論文の報告値)。乱数生成・合成データは一切使いません。
html/figures/ に自動保存されます。
日本では少子高齢化が進み、2006年から2017年までの12年間を通して、15歳未満人口の割合と15〜64歳人口の割合は年々減少し、65歳以上人口の割合は増加し続けている。 著者たちが暮らす香川県観音寺市でも同様に少子高齢化が進行しており、日本全体と比べても老年人口の割合が大きく、高齢化がより進んでいる。 少子高齢化は人口減少・労働力低下・経済の衰退・医療費増大など、さまざまな問題を引き起こすと考えられている。
そこで著者たちは、観音寺市の少子高齢化を止めたいと考え、「市の観光を発展させ、移住したいと思う人を増やすことで、少子高齢化によって生じる問題の解決につながるのではないか」という仮説を立て、公開データを用いて検証を進めた。
相関分析(CORREL) 記述統計(平均) 時系列グラフ アンケート集計 観音寺市(市レベル)
| 用途 | データ・出典 | SSDSE収録? |
|---|---|---|
| 日本の人口推移 | 総務省 平成28年版 情報通信白書 | 未収録 |
| 日本・香川県の年齢3区分人口 | SSDSE-2020B(15歳未満A1301・15〜64歳A130101・65歳以上A1303・総人口A1101) | 収録(別ヴィンテージ) |
| 年齢階級別労働力人口比率 | e-Stat 労働力調査 | 未収録 |
| 都道府県別 転入者数 | SSDSE-2020A(転入者数(日本人移動者)A5101) | 収録(別ヴィンテージ) |
| 都道府県別 延べ宿泊者数 | 観光庁 宿泊旅行統計調査 | 未収録 |
| 観音寺市の観光客数・旅行費 | 観音寺市観光基本計画 | 未収録(市レベル) |
| 観音寺市の気候 | 統計かんおんじ・気象庁 過去の気象データ | 未収録(市レベル) |
CORREL 関数で相関係数を算出(宿泊者数×転入者数)。46 47 48 49 50 51 52 53 54 55 56 57 58 | # 原論文の報告値をコードに転記(再計算ではない) # 図5:年齢階級別労働力人口比率(出典 e-Stat 労働力調査) labor_ages = ['15-19','20-24','25-29','30-34','35-39','40-44','45-49', '50-54','55-59','60-64','65-69','70-74','75-79','80-84'] labor_rate = [20.9,75.5,90.2,86.8,88.6,88.2,88.7, 87.9,84.0,72.4,50.1,31.8,17.9,8.4] # 図8:観音寺市の観光客数の推移(出典 観音寺市観光基本計画, H23-H28) kanko_years = ['H23','H24','H25','H26','H27','H28'] kanko_num = [1422592,1455969,1429115,1400654,1420584,1475724] # 相関分析の中心的発見(CORREL, 原論文図6の報告値) CORR_REPORT = 0.8194 |
print はしません。図が保存されただけ。次のステップへ進みましょう。CORR_REPORT = 0.8194 は原論文図6の報告値。私たちが計算し直した値ではありません。原論文は、日本の人口推移(生産年齢人口は1995年をピークに減少、総人口も減少局面)と、香川県の人口動態(老年人口率の上昇と並行して総人口が減少)を示した。 総務省国勢調査によれば2015年の総人口は1億2,520万人・生産年齢人口は7,592万人。国立社会保障・人口問題研究所の推計では、総人口は2048年に1億人を割り、2060年には8,674万人まで減少するとされる(いずれも原論文の記載値)。
82 83 84 85 86 87 88 89 90 91 | fig1, ax1 = plt.subplots(figsize=(11, 5.5)) ax1.plot(labor_ages, labor_rate, marker='o', color='#e05c5c', linewidth=2.2, markersize=7, zorder=3) for x, y in zip(labor_ages, labor_rate): ax1.annotate(f'{y}', xy=(x, y), xytext=(0, 8), textcoords='offset points', ha='center', fontsize=9) ax1.set_ylim(0, 100) ax1.set_xlabel('年齢階級(歳)'); ax1.set_ylabel('労働力人口比率(%)') fig1.savefig('html/figures/2020_H3_fig1.png', bbox_inches='tight') print("fig1 saved.") |
fig1 saved.
plt.subplots(...) で図と軸を作り、ax.plot(x, y, marker='o') で折れ線を描きます。ax.annotate(...) で各点に数値ラベルを付けています。zip(a, b) は2つのリストを同時に回すときの定番。for x, y in zip(...) と書けます。著者たちは「観光業が発展すれば、それをきっかけに移住者が増える」と仮定し、都道府県別の延べ宿泊者数と転入者数の相関を調べた。日帰りを含む観光客の動向を正確にとらえるのは難しいため、宿泊施設に泊まった人数(延べ宿泊者数)を観光客の代理指標として用いている。
観音寺市の観光客数は近年140万人程度で推移し、年ごとに5万人程度の増減を繰り返している。主な増減要因は四国遍路のうるう年の「逆打ち」や瀬戸内国際芸術祭などのイベントで、裏を返せばイベントがなければ観光客数は伸びていない、という指摘である。
100 101 102 103 104 105 106 107 108 | fig2, ax2 = plt.subplots(figsize=(10, 5.5)) ax2.plot(kanko_years, kanko_num, marker='o', color='#1A237E', linewidth=2.4, markersize=9, zorder=3) for x, y in zip(kanko_years, kanko_num): ax2.annotate(f'{y:,}', xy=(x, y), xytext=(0, 10), textcoords='offset points', ha='center', fontsize=9.5) ax2.set_ylim(1_360_000, 1_500_000) fig2.savefig('html/figures/2020_H3_fig2.png', bbox_inches='tight') print("fig2 saved.") |
fig2 saved.
ax.set_ylim(1_360_000, 1_500_000) のように、数値の桁が大きいときは縦軸範囲を絞ると変化が見やすくなります。f'{y:,}' は3桁区切り(1,455,969)で表示する書式。1_360_000 のようにアンダースコアで区切れて読みやすくなります(値は変わりません)。2018年の都道府県別 延べ宿泊者数では、香川県は全国39位と少ない。東京都・大阪府・北海道が突出し、香川県(=399)は上位県と大きな差がある。ここから「香川県で宿泊する人は全国と比べて少ない」と結論づけている。
| 順位 | 都道府県 | 宿泊者数 | 順位 | 都道府県 | 宿泊者数 |
|---|---|---|---|---|---|
| 1位 | 東京都 | 6,120 | 6位 | 静岡県 | 2,141 |
| 2位 | 大阪府 | 3,576 | 7位 | 神奈川県 | 2,035 |
| 3位 | 北海道 | 3,527 | 8位 | 京都府 | 1,828 |
| 4位 | 千葉県 | 2,518 | 9位 | 長野県 | 1,821 |
| 5位 | 沖縄県 | 2,283 | 10位 | 愛知県 | 1,729 |
| …(中略)… | 39位 | 香川県 | 399 | ||
※ 上表は原論文表1のうち、確実に読み取れた上位10県と香川県(39位)を抜粋したもの。全47県は原論文 表1 を参照。
120 121 122 123 124 125 126 127 128 129 130 | rank_labels = ['東京都','大阪府','北海道','千葉県','沖縄県','静岡県', '神奈川県','京都府','長野県','愛知県','香川県\n(39位)'] rank_vals = [6120,3576,3527,2518,2283,2141,2035,1828,1821,1729,399] colors = ['#9b59b6' if '香川' in lab else '#3949AB' for lab in rank_labels] fig4, ax4 = plt.subplots(figsize=(10, 6)) ax4.bar(range(len(rank_labels)), rank_vals, color=colors, width=0.7) ax4.set_xticks(range(len(rank_labels))) ax4.set_xticklabels(rank_labels) fig4.savefig('html/figures/2020_H3_fig4.png', bbox_inches='tight') print("fig4 saved.") |
fig4 saved.
['#9b59b6' if '香川' in lab else '#3949AB' for lab in rank_labels] で、香川県だけ色を変えています。ax.bar(...) で棒グラフ、set_xticklabels で県名ラベルを設定。'香川' in lab は文字列の部分一致判定。条件で色分けするときに便利です。観音寺市内での1人当たりの旅行費用合計は1,000円未満が大半(61.7%)で、平均は1,841円。交通費も1,000円未満が大半(62.7%)で、平均は3,178円(いずれも母集団 n=12,942)。旅行費が少ないことから飲食・特産品への出費が乏しく、交通費が少ないことから公共交通ではなく自家用車移動(=比較的近隣からの来訪)が多いと考察している。
平成21〜30年の観音寺市の年間降水量は比較的少なく(平成23年・30年の増加は台風の影響)、年平均気温は大きな変化がなく温暖。瀬戸内沿岸で讃岐山脈・四国山地・中国山地に囲まれるためと考察している。水不足の可能性はデメリットだが、水害が少なく温暖で住みやすい、台風被害も少ないとまとめている(グラフは原論文 図11・図12 参照)。
観音寺市観光協会の情報から、市内には海・山・川があり、水辺や山の動植物が豊か。「ハマゴウ」をはじめ数の少なくなった植物も生育しており、自然が豊かな市であると位置づけている。
東京圏の20〜30代で地方移住に興味がある既婚男女500人へのアンケートでは、「山・川・海などの自然にあふれた魅力的な観光」「子育てに適した自然環境」「子供の教育・知力・学力向上」といった環境に関する選択肢を選んだ人が全体の7割超に及んだ。移住者は移住先の環境を特に重視していると考えられる(棒グラフは原論文 図7 参照)。
少子高齢化の問題を解決する一手として「移住者を増やす」ことが挙げられる。移住者を増やすには観光業を発展させて市の魅力を伝え、さらに宿泊したくなる観光地にすることが効果的である。都道府県別の延べ宿泊者数と転入者数には強い相関(r=0.8194)がみられ、観音寺市は自然・温暖な気候・災害の少なさという移住希望者が重視する条件を備えている。
一方で、現在の観音寺市の観光はイベント依存で、来訪者の滞在時間が短く宿泊・消費が少ないという課題がある。観光を活性化させて魅力を伝え、宿泊・消費を促すことで、移住のきっかけを生み出し、少子高齢化によって生じる問題の解決につなげられる、と結論づけている。
この論文の手法(相関・記述統計・時系列・アンケート)は、地域づくりの現場で広く使えます。
この研究を読むときに陥りやすい誤解を整理します。
この論文で登場する統計・データ用語をまとめます。
CORREL 関数で計算できる。本論文では r=0.8194(強い正の相関)。=CORREL(範囲1, 範囲2)。本論文が用いた4つの手法を、注意点とともに整理します。
=CORREL(宿泊者数の範囲, 転入者数の範囲)。散布図に点を打って傾向を目で確認する。この研究をさらに深めるための方向性です。
難易度別の練習課題です。
python3 code/2020_H3_suri.py を実行し、図1〜図4が html/figures/ に保存されることを確認しよう。=CORREL(...) で相関係数を計算し、散布図と見比べよう。この論文について、よくある疑問に答えます。
この論文を理解できたか、クリックで確認しましょう。間違えても解説が出ます。
このページの分析は、この画面の中でそのまま実行できます。
Python をインストールする必要も、CSV をダウンロードする必要もありません。
下のセルの 「▶ ブラウザで実行」 を上から順に押すか、
「▶ 最初から全部実行」 で一気に流してください。
表示されるのは、本文の図表とまったく同じ計算の結果です
(動かしているのは再現スクリプト code/2020_H3_suri.py そのもの)。
コードは書き換えられます。「✏️ 書き換える」で数字や変数を変えて ▶ を押すと、 結果がどう変わるかをその場で確かめられます(元に戻すボタンつき)。 ページを開いた時点で裏で実行環境の準備が始まっているので、待ち時間はほとんどありません。 初回だけ実行環境の取得にインターネット接続が必要です。