この教材は原論文と同じデータを読み込み、同じ手順で計算し直しています。画面に出る数値と図は、あなたのブラウザがその場で計算した結果です。
| 原論文が使ったデータ | 国勢調査・日本の地域別将来推計人口・日本政府観光局(JNTO)訪日外客数・観光庁 旅行・観光消費動向調査・総務省 地方財政状況調査関係資料(財政状況資料)・観光庁 訪日外国人消費動向調査・国土交通省 FF-Data(訪日外国人流動データ)・モバイル空間統計・DBJ・JTBF アジア・欧米豪 訪日外国人旅行者の意向調査(平成 29 年版)・松山お遍路交流サロン データ 分析単位:都道府県 中核手法:相関分析・経済波及効果推定 |
|---|---|
| この教材が使うデータ |
|
| 原論文(PDF) | 交流人口増加による愛媛県の活性化 日本統計協会賞/白石 大悟、高田 蒼大、武田 裕喜(愛媛県立松山南高等学校) |
▶ ここに書いてある分析は、ページ下部の「🐍 ブラウザで動かす」でそのまま実行できます(インストール不要)。動かしているのは code/2018_H3_suri.py(265 行)そのものです。
このページで実SSDSEから実再現できるのは図1・図3(外国人延べ宿泊者数)です。コードの編集は不要です。図2(財政力指数×外国人訪問者数)と図4(お遍路達成者数)は、原論文が使った統計がSSDSEに収録されていないため、原論文の報告値を転記して可視化します。
data/raw/ フォルダに入れます。html/figures/ に自動保存されます。図1・図3は SSDSE-B の観光統計(G7101・G7102)から実再現、図2・図4は原論文の報告値から可視化します。
少子高齢化で日本の地方は大規模な過疎化が進む。著者ら(松山南高校)は「他県からの移住で愛媛の人口問題を解決しても、他県の状況が悪化するだけ」と考え、代わりに「交流人口」——目的を問わず外から訪れる人——に着目した。人口減少による経済の縮小を、交流人口がもたらす経済効果で穴埋めしようという発想である。
交流人口のターゲットは外国人旅行客。国内旅行者数と比べ大幅な増加傾向を維持していたからだ。さらに、外国人訪問者数の上位県と財政力指数の上位県が多く一致することから、著者らは「交流人口(外国人)が増えれば財政力が強化されるのではないか」という仮説を立て、愛媛県で交流人口を増やす具体策を検討した。
高校生の部・日本統計協会賞 観光統計・財政力指数(報告値) SSDSE-B 宿泊統計(実再現) 経済波及効果(直接効果)の概算
審査講評でも「SSDSE以外の様々な公的統計を活用し、経済波及効果も推定したチャレンジングな論文」と評された通り、本研究は多様な統計を組み合わせている。そのほとんどはSSDSEに収録が無いため、本ページでは報告値の可視化と実SSDSEでの実再現を明確に分ける。
| 役割 | 変数(原論文の図表) | 出典(調査) | 本ページでの扱い |
|---|---|---|---|
| 仮説の根拠 | 財政力指数 上位10県/外国人訪問者数 上位10県(表1) | 総務省「地方財政状況調査」、観光庁「訪日外国人消費動向調査」、JNTO「訪日外客数」 | 報告値の可視化(SSDSE収録外) |
| 訪問客の傾向 | 訪問者の国籍割合(図5)、直前・直後の滞在地(表2) | 観光庁「訪日外国人消費動向調査」、国交省「FF-Data」 | 報告値(SSDSE収録外) |
| 方策IIの根拠 | 外国人歩き遍路達成者(図8) | 松山お遍路交流サロン | 報告値(SSDSE収録外) |
| 経済波及効果 | 一人当たり平均消費 22,785円 ほか | 観光庁「訪日外国人消費動向調査」(2017) | 報告値(SSDSE収録外) |
| 実再現できる | 外国人延べ宿泊者数(G7102)・延べ宿泊者数(G7101) | SSDSE-B-2026(都道府県・時系列) | 実再現 |
著者は、外国人訪問者数の上位10県と財政力指数の上位10県を並べ、7県が一致することを観察した。ここから「交流人口(外国人)が増えれば財政力が強化されるのでは」という仮説を立てる。ただしこれは上位県の重なりという記述的観察であり、相関係数や回帰の算出は行っていない点に注意する(後述)。
訪日外国人が「訪日前に期待したこと/次回したいこと」(温泉入浴・四季の体感が上昇)、愛媛への訪問者の国籍割合(台湾31%・中国16%…)、訪問の直前・直後の滞在地(香川→愛媛→高知の四国遍路ルート)、モバイル空間統計による滞在地メッシュ(市街地集中)を多面的に把握する。
把握した現状から、Ⅰ.地方の魅力発信(温泉・古民家リメイク=祖谷地区の成功例)とⅡ.四国遍路によるリピーター獲得(受入環境の整備)を提案。それぞれの直接効果を「外国人訪問者数 × 一人当たり平均消費(22,785円)」で概算した。
まず、原論文の出発点「愛媛は外国人の交流人口が少ない」という現状を、実データで確かめる。原論文が使った訪問者数(JNTO/FF-Data)はSSDSEに無いが、テーマの核である外国人宿泊は現行 SSDSE-B の外国人延べ宿泊者数(G7102)で実再現できる。
G7101(延べ宿泊者数)と G7102(外国人延べ宿泊者数)を、都道府県×年の形で読み込む。原論文のテーマ「外国人の交流人口」を実データで扱える唯一の入口。データ仕様は cp932・先頭列が年度・2行目がコード名/単位行。64 65 66 67 68 69 70 71 72 73 | # 現行 SSDSE-B-2026 には観光統計 G7101(延べ宿泊者数)・G7102(外国人延べ宿泊者数) が # 都道府県×年で収録されている。原論文のテーマ「外国人の交流人口」を実データで扱える # 唯一の入口。データ仕様: cp932・先頭列 SSDSE-B-2026=年度・2行目(コード名/単位)は skiprows。 dfb = pd.read_csv(DATA_B, encoding='cp932', header=0, skiprows=[1]) tour = dfb[['SSDSE-B-2026', 'Prefecture', 'G7101', 'G7102']].copy() tour.columns = ['年度', '都道府県', '延べ宿泊者数', '外国人延べ宿泊者数'] tour['延べ宿泊者数'] = pd.to_numeric(tour['延べ宿泊者数'], errors='coerce') tour['外国人延べ宿泊者数'] = pd.to_numeric(tour['外国人延べ宿泊者数'], errors='coerce') # 全国行を除き、都道府県のみ・外国人延べ宿泊者数が得られる年だけ残す tour = tour[tour['都道府県'] != '全国'].dropna(subset=['外国人延べ宿泊者数']) |
=== [1] 実SSDSE-B-2026 の観光統計を読み込む(実再現の土台) === 収録年: 2012〜2023 都道府県数: 47 2023年 外国人延べ宿泊者数 全国計: 95,027,710 人泊 愛媛県 2023年 外国人延べ宿泊者数: 173,480 人泊(全国 35/47 位) → 原論文の問題意識(愛媛は外国人の交流人口が全国的に少ない)を実データが裏づける。
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | # 原論文は「愛媛は外国人の交流人口が少ないので増やそう」と主張する。その現状を、 # 現行 SSDSE-B の外国人延べ宿泊者数(G7102・2023年)で全国ランキングにして確かめる。 # 愛媛県を強調色にして、47都道府県中の位置づけを可視化する(実データの実再現)。 d23 = tour[tour['年度'] == 2023].sort_values('外国人延べ宿泊者数') short = d23['都道府県'].map(short_name) colors = ['#C62828' if p == '愛媛県' else '#3949AB' for p in d23['都道府県']] fig1, ax1 = plt.subplots(figsize=(10, 12)) ax1.barh(short, d23['外国人延べ宿泊者数'] / 1e6, color=colors, alpha=0.85, edgecolor='white', linewidth=0.4) for y, (v, p) in enumerate(zip(d23['外国人延べ宿泊者数'], d23['都道府県'])): ax1.text(v / 1e6 + 0.3, y, f'{v/1e6:.2f}', va='center', fontsize=8, color='#C62828' if p == '愛媛県' else '#333', fontweight='bold' if p == '愛媛県' else 'normal') ax1.set_title('図1 外国人延べ宿泊者数 都道府県別ランキング(2023年)\n' '【実SSDSE-B-2026・G7102 からの実再現/赤=愛媛県】', fontsize=13, fontweight='bold', pad=12) ax1.set_xlabel('外国人延べ宿泊者数(百万人泊)', fontsize=11) ax1.grid(axis='x', alpha=0.3) plt.tight_layout() fig1.savefig(os.path.join(FIG_DIR, '2018_H3_fig1.png'), bbox_inches='tight') plt.close(fig1) |
=== [2] 図1: 外国人延べ宿泊者数 全国ランキング 2023(実SSDSE-B・実再現) === 上位5都道府県(人泊): 東京都: 34,378,530 大阪府: 15,669,930 京都府: 9,950,040 北海道: 6,184,810 福岡県: 4,630,330 愛媛県: 173,480(全国 35 位/東京都の約 0.5%) saved: html/figures/2018_H3_fig1.png
次に、原論文の仮説の根拠である表1を可視化する。財政力指数の上位10県と外国人訪問者数の上位10県を並べ、どれだけ重なるかを見る。財政力指数(総務省)も外国人訪問者数(観光庁・JNTO)もSSDSEに無いため、原論文 表1 の報告値を転記して可視化する(再計算ではない)。
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | # 原論文の仮説「交流人口(外国人)が増えれば財政力が強化されるのでは」の根拠が表1。 # 財政力指数 上位10県と 外国人訪問者数 上位10県を並べ、7県が一致することを示した。 # 元データ(総務省 財政力指数/観光庁・JNTO 訪問者数)は SSDSE に無いため、 # ここは原論文 表1 の報告値を転記して可視化する(再計算ではない)。 zaisei = [('東京都', 0.93), ('神奈川県', 0.92), ('愛知県', 0.92), ('千葉県', 0.76), ('埼玉県', 0.76), ('大阪府', 0.74), ('静岡県', 0.69), ('茨城県', 0.62), ('兵庫県', 0.60), ('福岡県', 0.60)] gaikoku = [('東京都', 6898247), ('大阪府', 3738251), ('京都府', 2940957), ('神奈川県', 1651064), ('千葉県', 1568254), ('愛知県', 1227835), ('福岡県', 1195907), ('北海道', 1042728), ('兵庫県', 828799), ('山梨県', 644216)] set_z = {p for p, _ in zaisei} set_g = {p for p, _ in gaikoku} both = set_z & set_g # 財政力・外国人訪問者数の両方で上位10に入る県 fig2, (axL, axR) = plt.subplots(1, 2, figsize=(13, 7)) zp = [short_name(p) for p, _ in zaisei][::-1] zv = [v for _, v in zaisei][::-1] zc = ['#E65100' if p in both else '#90A4AE' for p, _ in zaisei][::-1] axL.barh(zp, zv, color=zc, alpha=0.9, edgecolor='white') for y, v in enumerate(zv): axL.text(v + 0.005, y, f'{v:.2f}', va='center', fontsize=9) axL.set_title('財政力指数 上位10県', fontsize=12, fontweight='bold') axL.set_xlabel('財政力指数', fontsize=10) axL.set_xlim(0, 1.02) gp = [short_name(p) for p, _ in gaikoku][::-1] gv = [v / 1e6 for _, v in gaikoku][::-1] gc = ['#E65100' if p in both else '#90A4AE' for p, _ in gaikoku][::-1] axR.barh(gp, gv, color=gc, alpha=0.9, edgecolor='white') for y, v in enumerate(gv): axR.text(v + 0.05, y, f'{v:.2f}', va='center', fontsize=9) axR.set_title('外国人訪問者数 上位10県(百万人)', fontsize=12, fontweight='bold') axR.set_xlabel('外国人訪問者数(百万人)', fontsize=10) fig2.suptitle('図2 財政力指数と外国人訪問者数の上位十県(オレンジ=両方に入る7県)\n' '【原論文 表1 の報告値の可視化(再計算ではない)】', fontsize=13, fontweight='bold', y=1.02) plt.tight_layout() fig2.savefig(os.path.join(FIG_DIR, '2018_H3_fig2.png'), bbox_inches='tight') plt.close(fig2) |
=== [3] 図2: 財政力指数×外国人訪問者数 上位十県の重なり(報告値・原論文 表1) === 両方の上位10県に入る県(7県一致): 東京都、神奈川県、愛知県、千葉県、大阪府、兵庫県、福岡県 → 原論文はこの重なりを根拠に『交流人口が増えれば財政力が強化されるのでは』と仮説化。 ただし相関係数の算出はしておらず、上位県の重なりという記述的観察である(因果は不明)。 saved: html/figures/2018_H3_fig2.png
原論文 図9「四国外国人訪問者数推移」で著者は「2014年頃から香川県と愛媛県の間に開きが現れ始めた」と指摘した。この観察を、現行 SSDSE-B の外国人延べ宿泊者数(G7102)で時系列に実再現する。指標・年は原論文と異なるが、傾向を実データで確かめられる。
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 | # 原論文 図9「四国外国人訪問者数推移」で著者は『2014年から香川県と愛媛県の間に開きが # 現れ始めた』と指摘した。これを現行 SSDSE-B の外国人延べ宿泊者数(G7102)で実再現する。 # 指標(訪問者数 vs 延べ宿泊者数)も年も原論文と異なるが、傾向を実データで確かめる。 shikoku = ['香川県', '愛媛県', '高知県', '徳島県'] piv = (tour[tour['都道府県'].isin(shikoku)] .pivot(index='年度', columns='都道府県', values='外国人延べ宿泊者数') .sort_index()) style = {'香川県': ('#E65100', 'o'), '愛媛県': ('#C62828', 's'), '高知県': ('#2E7D32', '^'), '徳島県': ('#3949AB', 'D')} fig3, ax3 = plt.subplots(figsize=(11, 7)) for pref in shikoku: c, m = style[pref] lw = 2.8 if pref in ('香川県', '愛媛県') else 1.6 ax3.plot(piv.index, piv[pref] / 1e3, marker=m, color=c, linewidth=lw, markersize=6, label=short_name(pref), alpha=0.9) ax3.axvline(2014, color='gray', linestyle=':', linewidth=1.5) ax3.text(2014.15, ax3.get_ylim()[1] * 0.9, '2014年頃から\n香川と愛媛の差が拡大', fontsize=9, color='gray') ax3.set_title('図3 四国4県 外国人延べ宿泊者数の推移\n' '【実SSDSE-B-2026・G7102 からの実再現(原論文 図9 の再表現)】', fontsize=13, fontweight='bold', pad=12) ax3.set_xlabel('年', fontsize=11) ax3.set_ylabel('外国人延べ宿泊者数(千人泊)', fontsize=11) ax3.legend(fontsize=11, loc='upper left') ax3.grid(alpha=0.3) plt.tight_layout() fig3.savefig(os.path.join(FIG_DIR, '2018_H3_fig3.png'), bbox_inches='tight') plt.close(fig3) |
=== [4] 図3: 四国4県の外国人延べ宿泊者数の推移(実SSDSE-B・実再現) === 香川県 vs 愛媛県 外国人延べ宿泊者数(人泊): 2013年: 香川=81,350 / 愛媛=49,740 差=31,610 2014年: 香川=123,570 / 愛媛=56,540 差=67,030 2019年: 香川=541,890 / 愛媛=203,890 差=338,000 2021年: 香川=8,200 / 愛媛=19,350 差=-11,150 2023年: 香川=354,670 / 愛媛=173,480 差=181,190 → 原論文どおり2014年頃から香川が愛媛を引き離す傾向を実データでも確認。 2020〜21年はコロナ禍で全県が急減、2023年に回復(原論文当時=2017年には無い動き)。 saved: html/figures/2018_H3_fig3.png
原論文の方策IIは「四国遍路によるリピーター獲得」。その根拠が図8——外国人歩き遍路達成者の急増だ。出典は松山お遍路交流サロンでSSDSEに無いため、原論文 図8 の報告値(2004〜2017年)を転記して可視化する(再計算ではない)。
222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 | # 原論文の方策IIは「四国遍路によるリピーター獲得」。その根拠が図8(外国人歩き遍路 # 達成者の急増)。出典は松山お遍路交流サロンで SSDSE には無いため、原論文 図8 の # 報告値(2004〜2017年)を転記して可視化する(再計算ではない)。 years = list(range(2004, 2018)) henro = [0, 10, 34, 33, 44, 63, 78, 63, 79, 98, 129, 184, 221, 322] fig4, ax4 = plt.subplots(figsize=(11, 6.5)) ax4.bar(years, henro, color='#6A1B9A', alpha=0.85, edgecolor='white') for x, v in zip(years, henro): ax4.text(x, v + 4, str(v), ha='center', fontsize=8) ax4.set_title('図4 外国人歩き遍路 達成者数の推移\n' '【原論文 図8 の報告値の可視化(再計算ではない・出典:松山お遍路交流サロン)】', fontsize=13, fontweight='bold', pad=12) ax4.set_xlabel('年', fontsize=11) ax4.set_ylabel('外国人歩き遍路 達成者数(人)', fontsize=11) ax4.set_xticks(years) ax4.grid(axis='y', alpha=0.3) plt.tight_layout() fig4.savefig(os.path.join(FIG_DIR, '2018_H3_fig4.png'), bbox_inches='tight') plt.close(fig4) |
=== [5] 図4: 外国人歩き遍路達成者の推移(報告値・原論文 図8) === 2004年: 0人 → 2017年: 322人 直近5年の増加: 98→322人(約 3.3倍) → 原論文はこの急増をリピーター獲得の好機とし、Wi-Fi・案内標識等の受入整備を提案。 saved: html/figures/2018_H3_fig4.png
著者は現状把握から2つの改善点を導き、それぞれに具体策と経済波及効果を示した。原論文3〜5章の考察である。
モバイル空間統計のメッシュから、外国人は松山・今治・新居浜など市街地に集中し地方部にはほとんど来ていないことが分かった。そこで著者は、内子町の小藪温泉や八日市護国の伝統的建造物群など地方でこそできる体験の発信と、空き家・古民家のリメイクによる宿泊整備を提案。極端な成功例として、徳島県三好市祖谷地区が古民家リメイクと集落のおもてなしで外国人宿泊客を大きく伸ばした事例を挙げる。
訪問の直前・直後の滞在地(表2)から香川→愛媛→高知という四国遍路ルートが読み取れ、外国人歩き遍路達成者も急増(図4)。著者は「八十八カ所を少し回るとその面白さに気付き、残りも回りたくなる」ためリピーター獲得に有効と考え、Wi-Fi・案内標識・洗濯設備の英語表記・休憩所・安価な宿泊施設など受入環境の整備を提案した。
著者は「外国人訪問者数 × 一人当たり平均消費(22,785円/2017観光庁)」で直接効果を概算した。方策Ⅰは松山・今治・新居浜を除く市町村で2万人増を見込み約4億6千万円、方策Ⅱは香川と同数まで増えたと仮定して差の132,619人で約30億円とした。
本研究は、人口減少下の愛媛県を「交流人口」で活性化できるかという問いに、SSDSE以外の多様な公的統計と経済波及効果の概算で迫った。財政力指数と外国人訪問者数の上位10県が7県一致することから交流人口の重要性を仮説化し、地方の魅力発信と四国遍路によるリピーター獲得を提案。直接効果を約4.6億円+約30億円と概算した。「生まれたお金を県内で有効に使えば移住も期待でき、人口減少に歯止めをかけ地域が活性化する」というのが著者の結論である。本ページでは、財政力・訪問者数・お遍路達成者は報告値として可視化し、テーマの核である外国人宿泊を実SSDSE-Bで実再現して切り分けた。
このページの図は、以下から再現できます。
🐍 再現コード(.py) 📊 SSDSE-B-2026.csv
※ 図1(外国人延べ宿泊者数の全国ランキング・2023年)と図3(四国4県の推移・2012〜2023年)は、SSDSE-B-2026 の観光統計 G7101・G7102 から算出した実再現です。図2(財政力指数×外国人訪問者数の上位十県)は総務省「地方財政状況調査」・観光庁・JNTO 由来で現行SSDSEに列が無いため、図4(外国人歩き遍路達成者)は松山お遍路交流サロンの集計でSSDSEに無いため、いずれも原論文の報告値を転記して可視化したものです。経済波及効果(約4.6億円・約30億円)は原論文の報告値で、本ページで再計算していません。原論文は交流人口と財政力の相関係数を算出していません(上位県の重なりという記述的観察)。新たな数値の捏造はしていません。
この研究を読むとき・まねするときに陥りやすい誤解を整理する。
クリックすると各用語の詳しい解説ページに移動できます。
この研究は高度な統計モデルより、多様なデータを組み合わせて現状を描き、方策の効果を概算するアプローチが中心。使われている手法を注意点まで順に説明する。
この研究の「交流人口で愛媛を活性化する」という発見は、次の研究の出発点になる。
再現コードを少し変えるだけで試せる課題を、易しい順に用意した。
tour['年度'] == 2023 の外国人延べ宿泊者数を並べている。ここを 2019(コロナ前)に変えて、愛媛の順位や上位県の顔ぶれがどう変わるか見てみよう。'外国人延べ宿泊者数' を '延べ宿泊者数'(G7101・日本人含む総数)に変えると、愛媛の順位はどう変わる? 外国人比率が低い県が見えてくる。外国人延べ宿泊者数 / 延べ宿泊者数 * 100 を計算して県別に並べてみよう。愛媛(約4.9%)が全国平均(約19%)よりかなり低い=外国人依存が小さいことを確かめる。shikoku リストに '広島県' や '岡山県' を足して、瀬戸内の近隣県と四国の推移を比べてみよう。愛媛の伸び悩みがより立体的に見える。「多様なデータで現状を描き、施策の効果を概算して意思決定につなげる」発想は、観光・行政・ビジネスの現場で広く使われている。
この研究を読んで浮かびやすい疑問に答える。
この論文を理解できたか、クリックで確認しましょう。間違えても解説が出ます。
このページの分析は、この画面の中でそのまま実行できます。
Python をインストールする必要も、CSV をダウンロードする必要もありません。
下のセルの 「▶ ブラウザで実行」 を上から順に押すか、
「▶ 最初から全部実行」 で一気に流してください。
表示されるのは、本文の図表とまったく同じ計算の結果です
(動かしているのは再現スクリプト code/2018_H3_suri.py そのもの)。
コードは書き換えられます。「✏️ 書き換える」で数字や変数を変えて ▶ を押すと、 結果がどう変わるかをその場で確かめられます(元に戻すボタンつき)。 ページを開いた時点で裏で実行環境の準備が始まっているので、待ち時間はほとんどありません。 初回だけ実行環境の取得にインターネット接続が必要です。