このページの分析を自分で再現するには、以下の手順でデータを準備してください。コードの編集は不要です。
data/raw/ フォルダに入れます。html/figures/ に自動保存されます。
う蝕(虫歯)は食生活・生活習慣・生活環境・経済環境など複合的な要因から生じる。本研究では47都道府県の12歳児う歯本数を目的変数に設定し、多角的なデータから主要因を探索する。特に「経済環境」と「家族環境」に着目した。
まず「う蝕罹患に関する要因の研究とよりよい生活の提案」を統計的にとらえることが有効だと考えられる。 その理由は感覚や経験則だけでは、複雑な社会要因の中で「何が本当に効いているか」を見極めにくいからである。 本研究では公開データと統計手法を組み合わせ、この問いに定量的な答えを出すことを目指す。
相関分析 外れ値分析 探索的データ分析 特性要因図
| カテゴリ | 変数 | 出典 |
|---|---|---|
| 目的変数 | 12歳児う歯本数(2019年度) | 厚生労働省「歯科疾患実態調査」 |
| 食生活 | 外食支出 | SSDSE-C |
| 砂糖・菓子類支出 | SSDSE-C | |
| 魚介類支出 | SSDSE-C | |
| (一般的に「甘いものが多い地域はう歯が多い」と思われがち) | ||
| 生活習慣 | 学業行動者率(%) | SSDSE-D |
| スポーツ行動者率(%) | SSDSE-D | |
| 生活環境 | 合計特殊出生率 | SSDSE-B |
| 母子・父子世帯割合(%) | SSDSE-B | |
| 歯科医師数(10万人対) | SSDSE-E | |
| 経済環境 | 消費支出(千円/月) | SSDSE-B |
本教育用コードは合成データを使用(np.random.seed(42))。沖縄県は単親世帯割合・消費支出の特徴を実データに近い形で模擬。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | df_raw = pd.read_csv(DATA_PATH, encoding='cp932', header=0) df_raw = df_raw.iloc[1:].reset_index(drop=True) df_raw = df_raw.rename(columns={ 'SSDSE-B-2026': '年度', 'Code': '地域コード', 'Prefecture': '都道府県', }) # 都道府県レベル(R\d{5} 形式)のみ・2022年度に絞る df_raw = df_raw[df_raw['地域コード'].str.match(r'^R\d{5}$', na=False)] df_b = df_raw[df_raw['年度'] == '2022'].copy().reset_index(drop=True) # 数値化 num_cols = ['A1101', 'A1303', 'A130102', 'A110102', 'A4103', 'E2101', 'C5401', 'L3221', 'L322101', 'I5103'] for col in num_cols: df_b[col] = pd.to_numeric(df_b[col], errors='coerce') df_b = df_b.dropna(subset=num_cols).reset_index(drop=True) |
print はしません。データや図が裏で更新されただけ。次のステップへ進みましょう。pd.read_csv(...) でCSVを読み込みます。encoding='cp932' は日本語Windows由来の文字コード、header=1 は「2行目を列名として使う」。df['地域コード'].str.match(r'^R\d{5}', ...) — 正規表現で「R+数字5桁」の行(47都道府県)だけTrueにし、真偽値で行をフィルタ。df['A'] / df['B'] — pandasの列同士の四則演算は要素ごと(element-wise)。forループ不要なのが強み。20 21 22 23 24 25 26 27 | df_b['dental_per_10k'] = df_b['I5103'] / df_b['A1101'] * 10000 # 歯科診療所数/万人 df_b['aging_rate'] = df_b['A1303'] / df_b['A1101'] * 100 # 高齢化率(%) df_b['child_female_ratio']= df_b['A130102'] / df_b['A110102'] * 100 # 15歳未満女性割合(%) df_b['food_ratio'] = df_b['L322101'] / df_b['L3221'] * 100 # 食料費割合(%) df_b['school_density'] = df_b['E2101'] / df_b['A1101'] * 10000 # 小学校密度(校/万人) OUTCOME = 'dental_per_10k' OUTCOME_LABEL = '歯科診療所密度(診療所数/万人)' |
print はしません。データや図が裏で更新されただけ。次のステップへ進みましょう。.map() は「1対1の置き換え」、.apply() は「関数を当てる」。辞書なら .map()、ロジックなら .apply()。28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | # 説明変数の定義:コード → 表示名 PREDICTORS = { '食料費割合(%)': 'food_ratio', '食料費(円/月)': 'L322101', '合計特殊出生率': 'A4103', '消費支出(円/月)': 'L3221', '高齢化率(%)': 'aging_rate', '15歳未満女性割合(%)': 'child_female_ratio', '小学校密度(校/万人)': 'school_density', '住宅地標準価格(円/m²)': 'C5401', } PRED_LABELS = list(PREDICTORS.keys()) PRED_COLS = list(PREDICTORS.values()) N = len(df_b) print("=" * 65) print(f"■ データ概要: 2022年度 N={N}都道府県(SSDSE-B-2026)") print("=" * 65) print(df_b[['都道府県', OUTCOME] + PRED_COLS].describe().round(3)) |
=================================================================
■ データ概要: 2022年度 N=47都道府県(SSDSE-B-2026)
=================================================================
dental_per_10k food_ratio ... school_density C5401
count 47.000 47.000 ... 47.000 47.000
mean 4.995 26.472 ... 1.926 53372.340
std 0.654 1.392 ... 0.547 61991.622
min 3.815 23.298 ... 0.945 13200.000
25% 4.639 25.410 ... 1.573 25300.000
50% 4.941 26.534 ... 1.879 30800.000
75% 5.283 27.303 ... 2.212 55500.000
max 7.619 30.506 ... 3.299 389100.000
[8 rows x 9 columns].describe() — 件数・平均・標準偏差・四分位・最大/最小を一括計算。データの素性チェックに必須。[式 for x in リスト] はリスト内包表記。forループでappendする代わりに1行でリストを作れます。全変数の中で最も強い正相関を示したのは「母子・父子世帯割合」であった。沖縄県は両変数とも極端に高い値を示す「外れ値候補」として注目される。
散布図で外れ値を目視確認するのは探索的データ分析(EDA)の基本。特定の都道府県・国・企業が外れ値になる場合は、その背景を必ず調査する。
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | sorted_pairs = sorted(zip(PRED_LABELS, corrs_all), key=lambda x: abs(x[1])) labels_sorted = [p[0] for p in sorted_pairs] corrs_sorted = [p[1] for p in sorted_pairs] colors_sorted = ['#C62828' if r >= 0 else '#1565C0' for r in corrs_sorted] fig1, ax1 = plt.subplots(figsize=(10, 6)) bars = ax1.barh(labels_sorted, corrs_sorted, color=colors_sorted, alpha=0.78, edgecolor='white') for bar, r in zip(bars, corrs_sorted): xpos = bar.get_width() + (0.015 if r >= 0 else -0.015) ha = 'left' if r >= 0 else 'right' ax1.text(xpos, bar.get_y() + bar.get_height() / 2, f'{r:.3f}', va='center', ha=ha, fontsize=9) ax1.axvline(0, color='gray', linestyle='--', linewidth=0.9) ax1.axvline( 0.3, color='gray', linestyle=':', linewidth=0.7, alpha=0.5) ax1.axvline(-0.3, color='gray', linestyle=':', linewidth=0.7, alpha=0.5) ax1.set_xlabel('ピアソン相関係数', fontsize=11) ax1.set_title(f'各説明変数と歯科診療所密度の相関係数(N={N}都道府県、2022年度)\n' '正(赤)= 高密度地域と正の関係、負(青)= 逆の関係', fontsize=11, fontweight='bold') ax1.set_xlim(-0.85, 0.85) ax1.grid(axis='x', alpha=0.3) plt.tight_layout() out1 = os.path.join(FIG_DIR, '2024_H5_4_fig1_scatter.png') fig1.savefig(out1, bbox_inches='tight', dpi=150) plt.close(fig1) print(f"\n図1保存: 2024_H5_4_fig1_scatter.png") |
図1保存: 2024_H5_4_fig1_scatter.png
fig, ax = plt.subplots(...) — 図全体(fig)と軸(ax)を作る定番。以降は ax.bar(...) 等で操作。ax.axhline / ax.axvline — 水平/垂直の点線。平均線や基準線として定番。x if cond else y は三項演算子。リスト内包表記と組み合わせると、forとifを1行で書けます。9変数全てとう歯本数のピアソン相関係数を、沖縄込み・除外の両方で算出し比較する。「食生活が主要因」という一般的な仮説を検証する。
| 変数 | r(全体) | r(沖縄除外) | 有意性 | 解釈 |
|---|---|---|---|---|
| 母子父子世帯割合 | +0.70 | +0.63 | *** | 育児的余裕の欠如 |
| 消費支出 | -0.54 | -0.46 | ** | 経済的余裕がある → ケア充実 |
| 砂糖・菓子支出 | +0.05 | +0.03 | n.s. | 仮説外れ(菓子 → う歯 は単純でない) |
| 外食支出 | -0.02 | -0.04 | n.s. | 非有意 |
| 歯科医師数 | +0.00 | -0.03 | n.s. | 非有意 |
77 78 79 80 81 82 83 84 85 86 87 88 89 90 | col2 = 'aging_rate' lab2 = '高齢化率(%)' r2a, p2a = stats.pearsonr(df_b[col2], df_b[OUTCOME]) r2e, p2e = stats.pearsonr(df_excl[col2], df_excl[OUTCOME]) fig2, ax2 = plt.subplots(figsize=(8, 6)) ax2.scatter(df_excl[col2], df_excl[OUTCOME], color='#1565C0', s=55, alpha=0.7, zorder=3, label='各都道府県') ax2.scatter(df_b.loc[outlier_idx, col2], df_b.loc[outlier_idx, OUTCOME], color='#C62828', s=180, zorder=5, marker='*', label=f'{outlier_pref}(外れ値候補)') ax2.annotate(outlier_pref, (df_b.loc[outlier_idx, col2], df_b.loc[outlier_idx, OUTCOME]), textcoords='offset points', xytext=(8, 4), fontsize=10, color='#C62828', fontweight='bold') |
print はしません。データや図が裏で更新されただけ。次のステップへ進みましょう。fig, ax = plt.subplots(...) — 図全体(fig)と軸(ax)を作る定番。以降は ax.bar(...) 等で操作。stats.pearsonr(x, y) — Pearson相関係数 r と p値を同時に返します。df[col](1列)と df[[col1, col2]](複数列)でカッコの数が違います。リストを渡していると覚えるとミスを減らせます。91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | # 全体の回帰直線 x_range = [df_b[col2].min() - 0.5, df_b[col2].max() + 0.5] slope_a, intercept_a, *_ = stats.linregress(df_b[col2], df_b[OUTCOME]) ax2.plot(x_range, [slope_a * x + intercept_a for x in x_range], 'b--', linewidth=1.5, alpha=0.6, label=f'回帰(全体)r={r2a:.3f}') # 除外後の回帰直線 slope_e, intercept_e, *_ = stats.linregress(df_excl[col2], df_excl[OUTCOME]) ax2.plot(x_range, [slope_e * x + intercept_e for x in x_range], 'r-', linewidth=2, alpha=0.8, label=f'回帰({outlier_pref}除外)r={r2e:.3f}') ax2.set_xlabel(lab2, fontsize=11) ax2.set_ylabel(OUTCOME_LABEL, fontsize=11) ax2.set_title(f'高齢化率と歯科診療所密度の関係\n({outlier_pref}の外れ値効果を確認)', fontsize=12, fontweight='bold') ax2.legend(fontsize=9) ax2.grid(True, alpha=0.3) plt.tight_layout() out2 = os.path.join(FIG_DIR, '2024_H5_4_fig2_corr.png') fig2.savefig(out2, bbox_inches='tight', dpi=150) plt.close(fig2) print("図2保存: 2024_H5_4_fig2_corr.png") |
図2保存: 2024_H5_4_fig2_corr.png
stats.linregress(x, y) — 単回帰の傾き・切片・r値・p値・標準誤差を返します。使わない値は _ で受け取り。s[:-n]「末尾n文字を除く」/s[n:]「先頭n文字を除く」。スライス [start:stop:step] はリスト・タプル・文字列共通の基本ワザです。沖縄県は母子父子世帯割合・う歯本数ともに他県より著しく高い「外れ値」候補である。沖縄県の除外が各変数との相関係数にどう影響するかを系統的に調べる。
外れ値を「感覚」ではなく「基準」で検出する2つの方法。地域別データでは IQR 法が安定していることが多い。
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | col3 = 'L3221' lab3 = '消費支出(円/月)' r3a, p3a = stats.pearsonr(df_b[col3], df_b[OUTCOME]) r3e, p3e = stats.pearsonr(df_excl[col3], df_excl[OUTCOME]) fig3, ax3 = plt.subplots(figsize=(8, 6)) ax3.scatter(df_excl[col3], df_excl[OUTCOME], color='#2E7D32', s=55, alpha=0.7, zorder=3, label=f'各都道府県({outlier_pref}除外)') ax3.scatter(df_b.loc[outlier_idx, col3], df_b.loc[outlier_idx, OUTCOME], color='#C62828', s=180, zorder=5, marker='*', label=f'{outlier_pref}') ax3.annotate(outlier_pref, (df_b.loc[outlier_idx, col3], df_b.loc[outlier_idx, OUTCOME]), textcoords='offset points', xytext=(5, 6), fontsize=9, color='#C62828', fontweight='bold') x_min3 = df_b[col3].min() - 5000 x_max3 = df_b[col3].max() + 5000 x_rng3 = [x_min3, x_max3] |
print はしません。データや図が裏で更新されただけ。次のステップへ進みましょう。fig, ax = plt.subplots(...) — 図全体(fig)と軸(ax)を作る定番。以降は ax.bar(...) 等で操作。stats.pearsonr(x, y) — Pearson相関係数 r と p値を同時に返します。s[:-n]「末尾n文字を除く」/s[n:]「先頭n文字を除く」。スライス [start:stop:step] はリスト・タプル・文字列共通の基本ワザです。133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | # 全体の回帰 s3a, i3a, *_ = stats.linregress(df_b[col3], df_b[OUTCOME]) ax3.plot(x_rng3, [s3a * x + i3a for x in x_rng3], 'b--', linewidth=1.5, alpha=0.6, label=f'回帰(全体)r={r3a:.3f}, p={p3a:.3f}') # 除外後の回帰 s3e, i3e, *_ = stats.linregress(df_excl[col3], df_excl[OUTCOME]) ax3.plot(x_rng3, [s3e * x + i3e for x in x_rng3], 'g-', linewidth=2, alpha=0.85, label=f'回帰({outlier_pref}除外)r={r3e:.3f}, p={p3e:.3f}') ax3.set_xlabel(lab3, fontsize=11) ax3.set_ylabel(OUTCOME_LABEL, fontsize=11) ax3.set_title(f'消費支出と歯科診療所密度の関係\n({outlier_pref}除外の影響比較)', fontsize=12, fontweight='bold') ax3.legend(fontsize=9) ax3.grid(True, alpha=0.3) ax3.ticklabel_format(style='plain', axis='x') plt.tight_layout() out3 = os.path.join(FIG_DIR, '2024_H5_4_fig3_outlier.png') fig3.savefig(out3, bbox_inches='tight', dpi=150) plt.close(fig3) print("図3保存: 2024_H5_4_fig3_outlier.png") |
図3保存: 2024_H5_4_fig3_outlier.png
stats.linregress(x, y) — 単回帰の傾き・切片・r値・p値・標準誤差を返します。使わない値は _ で受け取り。np.cumsum(arr) は累積和、np.linspace(a, b, n) は「aからbを等間隔でn個」。NumPyの定石です。最強の負相関を示した「消費支出」とう歯本数の関係を散布図で確認する。消費支出は経済的余裕の代理変数として解釈できる。
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 | import pandas as pd import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt from scipy import stats import os import warnings warnings.filterwarnings('ignore') plt.rcParams['font.family'] = 'Hiragino Sans' plt.rcParams['axes.unicode_minus'] = False plt.rcParams['figure.dpi'] = 150 DATA_PATH = 'data/raw/SSDSE-B-2026.csv' FIG_DIR = 'html/figures' os.makedirs(FIG_DIR, exist_ok=True) |
print はしません。データや図が裏で更新されただけ。次のステップへ進みましょう。import pandas as pd など — 必要なライブラリをまとめて呼び出します。as pd は短い別名(alias)。matplotlib.use('Agg') — グラフを画面表示せずファイルに保存するためのおまじない。plt.rcParams['font.family'] — グラフの日本語表示用フォント指定(Macは Hiragino Sans、Windowsなら Yu Gothic 等)。os.makedirs('html/figures', exist_ok=True) — 図の保存先フォルダを作る(既にあってもOK)。f"...{x}..." はf-string。文字列の中に {変数} と書くだけで埋め込めて、{x:.2f} のように書式も指定できます。173 174 175 176 177 178 179 | outlier_idx = df_b[OUTCOME].idxmax() outlier_pref = df_b.loc[outlier_idx, '都道府県'] mask_out = df_b.index != outlier_idx # 外れ値除外マスク(True = 外れ値以外) df_excl = df_b[mask_out].copy() N_excl = len(df_excl) print(f"\n外れ値: {outlier_pref}({OUTCOME}={df_b.loc[outlier_idx, OUTCOME]:.3f})") |
外れ値: 東京都(dental_per_10k=7.619)
[式 for x in リスト] はリスト内包表記。forループでappendする代わりに1行でリストを作れます。180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 | print("\n" + "=" * 65) print("■ Step1. 各説明変数と歯科診療所密度の相関分析(N=47)") print("=" * 65) print(f"\n {'変数':<22} {'r':>8} {'p値':>10} {'有意':>6}") print(" " + "-" * 50) corrs_all = [] corrs_excl = [] for label, col in zip(PRED_LABELS, PRED_COLS): r_all, p_all = stats.pearsonr(df_b[col], df_b[OUTCOME]) r_excl, p_excl = stats.pearsonr(df_excl[col], df_excl[OUTCOME]) corrs_all.append(r_all) corrs_excl.append(r_excl) sig = "**" if p_all < 0.01 else ("*" if p_all < 0.05 else "") print(f" {label:<22} {r_all:>8.4f} {p_all:>10.4f} {sig:>6}") print(f"\n外れ値({outlier_pref})除外後(N={N_excl}):") print(f"\n {'変数':<22} {'r':>8} {'p値':>10} {'有意':>6}") print(" " + "-" * 50) for label, col, r_excl in zip(PRED_LABELS, PRED_COLS, corrs_excl): _, p_excl = stats.pearsonr(df_excl[col], df_excl[OUTCOME]) sig = "**" if p_excl < 0.01 else ("*" if p_excl < 0.05 else "") print(f" {label:<22} {r_excl:>8.4f} {p_excl:>10.4f} {sig:>6}") |
================================================================= ■ Step1. 各説明変数と歯科診療所密度の相関分析(N=47) ================================================================= 変数 r p値 有意 -------------------------------------------------- 食料費割合(%) 0.0651 0.6639 食料費(円/月) 0.1821 0.2204 合計特殊出生率 -0.3821 0.0080 ** 消費支出(円/月) 0.1402 0.3472 高齢化率(%) -0.2884 0.0493 * 15歳未満女性割合(%) -0.1916 0.1970 小学校密度(校/万人) -0.2998 0.0406 * 住宅地標準価格(円/m²) 0.6466 0.0000 ** 外れ値(東京都)除外後(N=46): 変数 r p値 有意 -------------------------------------------------- 食料費割合(%) 0.0109 0.9425 食料費(円/月) 0.0004 0.9978 合計特殊出生率 -0.2528 0.0900 消費支出(円/月) -0.0109 0.9426 高齢化率(%) -0.0752 0.6194 15歳未満女性割合(%) -0.1813 0.2279 小学校密度(校/万人) -0.1813 0.2279 住宅地標準価格(円/m²) 0.3463 0.0184 *
stats.pearsonr(x, y) — Pearson相関係数 r と p値を同時に返します。r, p = stats.pearsonr(...) — Pythonは複数戻り値を同時に受け取れる(タプルアンパック)。203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 | col4 = 'food_ratio' lab4 = '食料費割合(%)' r4, p4 = stats.pearsonr(df_b[col4], df_b[OUTCOME]) fig4, ax4 = plt.subplots(figsize=(8, 6)) ax4.scatter(df_b[col4], df_b[OUTCOME], color='#6A1B9A', s=55, alpha=0.75, zorder=3, label='各都道府県') ax4.scatter(df_b.loc[outlier_idx, col4], df_b.loc[outlier_idx, OUTCOME], color='#C62828', s=180, zorder=5, marker='*', label=f'{outlier_pref}') ax4.annotate(outlier_pref, (df_b.loc[outlier_idx, col4], df_b.loc[outlier_idx, OUTCOME]), textcoords='offset points', xytext=(5, 5), fontsize=9, color='#C62828', fontweight='bold') x_min4 = df_b[col4].min() - 0.3 x_max4 = df_b[col4].max() + 0.3 x_rng4 = [x_min4, x_max4] s4, i4, *_ = stats.linregress(df_b[col4], df_b[OUTCOME]) ax4.plot(x_rng4, [s4 * x + i4 for x in x_rng4], color='#6A1B9A', linewidth=2, alpha=0.8, label=f'回帰直線 r={r4:.3f}, p={p4:.3f}') ax4.set_xlabel(lab4, fontsize=11) ax4.set_ylabel(OUTCOME_LABEL, fontsize=11) ax4.set_title(f'食料費割合と歯科診療所密度の関係(N={N}都道府県、2022年度)\n' f'r={r4:.3f}, p={p4:.3f}', fontsize=12, fontweight='bold') ax4.text(0.05, 0.93, '食料費割合が高い地域ほど\n歯科診療所密度の傾向を確認', transform=ax4.transAxes, fontsize=9, color='#444', bbox=dict(facecolor='#F3E5F5', edgecolor='#6A1B9A', boxstyle='round,pad=0.4')) ax4.legend(fontsize=9) ax4.grid(True, alpha=0.3) plt.tight_layout() out4 = os.path.join(FIG_DIR, '2024_H5_4_fig4_income.png') fig4.savefig(out4, bbox_inches='tight', dpi=150) plt.close(fig4) print("図4保存: 2024_H5_4_fig4_income.png") print("\n全図の生成完了(4枚)") |
図4保存: 2024_H5_4_fig4_income.png 全図の生成完了(4枚)
fig, ax = plt.subplots(...) — 図全体(fig)と軸(ax)を作る定番。以降は ax.bar(...) 等で操作。stats.pearsonr(x, y) — Pearson相関係数 r と p値を同時に返します。stats.linregress(x, y) — 単回帰の傾き・切片・r値・p値・標準誤差を返します。使わない値は _ で受け取り。np.cumsum(arr) は累積和、np.linspace(a, b, n) は「aからbを等間隔でn個」。NumPyの定石です。| データ | 出典 |
|---|---|
| 歯科疾患実態調査(12歳児う歯本数) | 厚生労働省(2019年度) |
| SSDSE-B(人口・世帯構造) | 統計数理研究所 |
| SSDSE-C(家計消費支出) | 統計数理研究所 |
| SSDSE-D(社会生活:行動者率) | 統計数理研究所 |
| SSDSE-E(医療・福祉:歯科医師数) | 統計数理研究所 |
本教育用コードは合成データを使用(np.random.seed(42))。沖縄県は実際の統計的特徴に基づいて設定。
統計分析の解釈で初心者がやりがちな勘違いをまとめます。特に「相関と因果の混同」「p値の過信」は研究現場でもよく起きる落とし穴です。本文を読む前にも、読んだ後にも、目を通してみてください。
統計の基本用語を初心者向けに解説します。本文中で見慣れない言葉が出てきたら、ここに戻って確認してください。
統計手法について「何のためか」「結果をどう読むか」を初心者向けに解説します。
この研究をさらに発展させるための3つの方向性を示します。「今回わかったこと(X)」から「次に検証すべき仮説(Y)」を立て、「具体的に何をするか(Z)」まで考えてみましょう。
学んだだけでは身につきません。実際に手を動かすのが最強の学習方法です。本論文のスクリプトをベースに、以下のチャレンジに挑戦してみてください。難易度別に5つ用意しました。
本論文で学んだ手法は、研究の世界だけでなく、行政・企業・NPO の現場でも様々に活用されています。具体的なシーンを紹介します。
この論文を読んで初心者が抱きやすい疑問に、教育的観点から答えます。