このページで扱う主要キーワード(クリックで該当セクションへ):
「データサイエンスの問い」 (Data Science Question) は、 SSDSE-B-2026 などの公的統計データを使った教材・分析で頻出するキーワードです。 本ページでは、 まず直感、 次に数式、 そして 47 都道府県の実値で確かめる、 という流れで体系的に整理します。 加えて、 ケーススタディ・FAQ・歴史的経緯・参考文献までを 1 ページに集約し、 用語の「地図」として使えるようにしました。
関連用語(前提・並列・発展)と関連グループ教材も末尾にまとめてあるので、 用語の地図として活用してください。
データサイエンスの問い (Data Science Question) は、 分析プロジェクトの「最初に決めること」であり「最後まで効くもの」です。 良い問いがないままモデルを作ると、 たとえ高い精度でも「で、 何が言いたいの?」と返されます。
Leek & Peng (2015) の有名な分類に従うと、 問いは次の 6 種類に分けられます。 簡略化して 4 種類で覚えても良い:
| タイプ | 聞いている内容 | SSDSE 例 |
|---|---|---|
| 記述的 (Descriptive) | 何が起きているか | 「2023 年の都道府県別総人口は?」 |
| 探索的 (Exploratory) | 何が一緒に動くか | 「人口と県内総生産はどう関係?」 |
| 推測的 (Inferential) | 母集団全体ではどうか | 「2010-2023 年のトレンドは有意か?」 |
| 予測的 (Predictive) | 次に何が起こるか | 「2030 年の県別高齢化率は?」 |
| 因果的 (Causal) | X を変えると Y は変わるか | 「子育て支援費を増やすと出生率は上がるか?」 |
| 機構的 (Mechanistic) | X はどう Y に影響するか | 「人口流出の経路を構造方程式で」 |
難度は下に行くほど上がる傾向があります。 多くの初学者は「予測的」「因果的」の問いを立てたいが、 データが「記述的」までしか答えられない、 というギャップが起こりがちです。
形式的に書けば、 1 つの問いは「対象 $P$、 指標 $X$、 制約 $C$、 期間 $T$」の組として整理できます。
たとえば 「2023 年 47 都道府県(=P)における 高齢化率(=X)と 県内総生産(=Y)の 相関(=比較 B)」 は次のように:
$$Q = \langle P=47\text{都道府県},\; X=\text{高齢化率},\; Y=\text{県内総生産},\; T=2023,\; B=\text{Pearson 相関}\rangle$$仮説検定の言い方をすれば、 問い → 仮説 → 統計量 → 検定 → 結論 という流れ:
$$\underbrace{Q}_\text{問い} \to \underbrace{H_0, H_1}_\text{仮説} \to \underbrace{T(X)}_\text{統計量} \to \underbrace{\Pr(|T|\ge t|H_0)}_\text{p 値} \to \text{結論}$$| 属性 | 意味 | 悪い例 → 良い例 |
|---|---|---|
| 具体性 | 誰の・何の・いつ | 「働き方を分析」→「2023 年の女性労働力率を都道府県別に比較」 |
| 測定可能性 | 数値・状態として観測できるか | 「幸せか」→「主観的幸福度スコア (0-10)」 |
| 反証可能性 | 「違っていた」と判断できる基準 | 「相関がある」→「Pearson r > 0.5 かつ p < 0.05」 |
| データ可得性 | そのデータが既存/取得可能か | 「将来の心拍」→「過去の SSDSE 健康関連指標」 |
| 関係者にとっての意味 | 誰が結果を使うか | 「興味で分析」→「自治体施策の優先度づけ」 |
| SMART | Specific, Measurable, Achievable, Relevant, Time-bound | 5 要素を 1 行に |
医学の PICO(Population, Intervention, Comparator, Outcome)はリサーチデザインに直結する型として有名で、 データサイエンスでも使えます。
「日本の地域格差を分析する」という大きな問いを、 SSDSE-B-2026 を使って答えられる粒度まで掘り下げる例:
このように、 同じテーマでも問いの種類が違えば、 必要なデータ・分析手法・結論の強さが大きく異なります。 一般に 記述 → 探索 → 推測 → 予測 → 因果 の順に必要な要件が厳しくなります。
import pandas as pd
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='shift_jis')
df.columns = df.iloc[0]
df = df.iloc[1:].reset_index(drop=True)
df = df[df['年度']=='2023'].reset_index(drop=True)
for c in ['総人口','県内総生産','65歳以上人口']:
df[c] = df[c].astype(int)
# 問い:「地域格差はあるか?」を測定化
df['1人あたり県内総生産'] = df['県内総生産'] / df['総人口']
print('最大:', df['1人あたり県内総生産'].max())
print('最小:', df['1人あたり県内総生産'].min())
print('CV :', df['1人あたり県内総生産'].std() / df['1人あたり県内総生産'].mean())
df['高齢化率'] = df['65歳以上人口'] / df['総人口']
r = df[['高齢化率','1人あたり県内総生産']].corr().iloc[0,1]
print('Pearson r =', round(r, 3))
# 「高齢化率 30% 超 / 未満で 1 人当たり生産は違うか?」
high = df[df['高齢化率']>=0.30]['1人あたり県内総生産']
low = df[df['高齢化率']< 0.30]['1人あたり県内総生産']
from scipy.stats import ttest_ind
t, p = ttest_ind(low, high, equal_var=False)
print('t=', round(t,3), ' p=', round(p,4))
print('high 平均:', round(high.mean()))
print('low 平均:', round(low.mean()))
kpi = {
'対象期間': '2023',
'対象範囲': '47都道府県',
'指標': '1人あたり県内総生産 (円/人)',
'中央値': float(df['1人あたり県内総生産'].median()),
'上位5県': df.nlargest(5, '1人あたり県内総生産')['都道府県'].tolist(),
'下位5県': df.nsmallest(5, '1人あたり県内総生産')['都道府県'].tolist(),
}
print(kpi)
| 悪い問い | SMART 化 |
|---|---|
| 「人口減少を分析」 | 「2010-2023 年の都道府県別人口変化率を SSDSE-B で集計し、 上位 5 / 下位 5 を比較」 |
| 「経済成長要因」 | 「2023 年の県内総生産を、 人口・就業者数・大学数で説明する重回帰の決定係数を測る」 |
| 「高齢化の影響」 | 「高齢化率と医療費(1 人当たり)の Pearson 相関と、 95% CI を 2018-2023 年で年別に計算」 |
問い:「東京と他県では人口動態が異なるか?」
| 軸 | データドリブン | 仮説ドリブン |
|---|---|---|
| 出発点 | データ | 問い・理論 |
| 強み | 未知の構造発見 | 反証可能・解釈容易 |
| 弱み | HARKing・偽陽性 | 枠外の知見を見逃す |
| 使い分け | EDA・特徴量発見 | 確認的分析・論文 |
import pandas as pd
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='shift_jis')
df.columns = df.iloc[0]
df = df.iloc[1:].reset_index(drop=True)
# Q1: 記述 — 2023 年の総人口分位点
df23 = df[df['年度']=='2023'].copy()
df23['総人口'] = df23['総人口'].astype(int)
print('Q1:', df23['総人口'].quantile([0.25, 0.5, 0.75]))
# Q2: 探索 — 高齢化率と県内総生産の相関
df23['65歳以上人口'] = df23['65歳以上人口'].astype(int)
df23['県内総生産'] = df23['県内総生産'].astype(int)
df23['高齢化率'] = df23['65歳以上人口'] / df23['総人口']
print('Q2 r:', df23[['高齢化率','県内総生産']].corr().iloc[0,1])
# Q3: 推測 — 高齢化率の 95% CI
import numpy as np
m = df23['高齢化率'].mean()
se = df23['高齢化率'].std(ddof=1) / np.sqrt(len(df23))
print('Q3 CI:', m - 1.96*se, m + 1.96*se)
ステップ 1:粗い問いを書く
「日本の地域格差を分析したい」 — これだけでは何もできない。
ステップ 2:5W1H で具体化
ステップ 3:仮説を立てる
ステップ 4:分析プラン
ステップ 5:実行
import pandas as pd, numpy as np
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='shift_jis')
df.columns = df.iloc[0]
df = df.iloc[1:].reset_index(drop=True)
df = df[df['年度']=='2023'].reset_index(drop=True)
df['総人口'] = df['総人口'].astype(int)
df['県内総生産'] = df['県内総生産'].astype(int)
df['65歳以上人口'] = df['65歳以上人口'].astype(int)
df['1人当たり生産'] = df['県内総生産']/df['総人口']
df['高齢化率'] = df['65歳以上人口']/df['総人口']
# H1: CV
cv = df['1人当たり生産'].std()/df['1人当たり生産'].mean()
print('H1 CV:', round(cv,3))
# H2: 上位/下位 5 県差
top5 = df.nlargest(5, '1人当たり生産')['1人当たり生産'].mean()
bot5 = df.nsmallest(5, '1人当たり生産')['1人当たり生産'].mean()
print('H2 ratio:', round(top5/bot5,2))
# H3: 相関
r = df[['高齢化率','1人当たり生産']].corr().iloc[0,1]
print('H3 r:', round(r,3))
ステップ 6:結論と提言
「CV=0.27、 上位/下位比=2.7 倍、 r=-0.58。 H1 はやや支持されないが、 H2・H3 は支持される。 政策提言:高齢化率の高い地方県に優先投資」 — のように、 問い → 仮説 → 検証 → 提言まで一気通貫で書く。
「47 都道府県のうち、 子育て支援を強化すべき優先 5 県は?」 → SSDSE-B から「出生率低位 × 子育て支援費低位」を抽出。
「不登校率と学校資源の関係は?」 → 文科省統計と SSDSE 教育指標を結合。
「医師偏在指標と県別人口当たり医師数の関係は?」 → 公的データから KPI を導出。
「新商品 X の購入意向を年代別に予測」 → ロジスティック回帰、 ROC-AUC で評価。
「離職率を高めている要因は?」 → 因果推論(A/B テスト、 IV)、 共変量調整。
「○○と△△の関係を明らかにする」 → 仮説 → 統計検定 → CI → 結論。 PRISMA / RECORD ガイドラインに沿う。
SIGNATE / Kaggle / 統計データ解析コンペ:「予測精度」or「説明力」 を最大化、 という問いに事前に分解。
「介入 X を行うと Y は何 % 改善するか?」 — 因果問い。 RCT、 IV、 RDD、 DID、 などの設計が必要。
| タイプ | 聞いていること | 必要 | 例 |
|---|---|---|---|
| 記述的 | 何が起きているか | サンプリング | 「2023 年の総人口分布」 |
| 探索的 | 何が一緒に動くか | 多変量データ | 「高齢化率と県内総生産の関係」 |
| 推測的 | 母集団全体の傾向 | 無作為サンプル | 「日本全体での傾向」 |
| 予測的 | 次に何が来る | 学習データ | 「2030 年の人口」 |
| 因果的 | X を変えたら Y は | 介入 / IV / RDD | 「子育て支援を増やすと出生率は」 |
| 機構的 | X はどう Y に影響 | 構造モデル | 「人口流出の経路」 |
| 用語 | 意味 |
|---|---|
| 問い (question) | 何を知りたいか |
| 仮説 (hypothesis) | 仮の答え |
| 操作化 | 抽象概念を測定可能変数へ |
| SMART | Specific/Measurable/Achievable/Relevant/Time-bound |
| PICO | Population/Intervention/Comparator/Outcome |
| HARKing | 結果を見てから仮説を後付け |
| 交絡 | 原因と結果の両方に影響する第三変数 |
| 因果推論 | 介入効果を観察データから推定する枠組み |
| 予測 vs 因果 | 当てる vs 動かす、 別問題 |
| KPI | Key Performance Indicator |
| OKR | Objectives and Key Results |
| CRISP-DM | データマイニング標準プロセス |
| レシピ | コード |
|---|---|
| SMART 化テンプレ | 「[誰の] の [何] を、 [どの期間] の [どのデータ] で、 [どの比較] で測る」 |
| PICO テンプレ | Population, Intervention, Comparator, Outcome |
| FINER テンプレ | Feasible, Interesting, Novel, Ethical, Relevant |
| Research Question の例 | 「2023 年 47 都道府県で X と Y の Pearson 相関は、 95% 信頼区間で 0.5 を超えるか」 |
| 仮説テンプレ | H0: 母平均は等しい / H1: 等しくない |
| KPI テンプレ | 対象 / 期間 / 指標 / 目標値 / 計測方法 |
| OKR テンプレ | Objective(質的)+ Key Results 3-5 個(量的) |
| PICO 例 | P=20-65 歳労働者、 I=リモートワーク、 C=出社、 O=月平均生産性 |
| CRISP-DM | Business / Data / Prep / Model / Eval / Deploy の 6 ステップ |
| EDA 質問チェック | 「データの粒度は?欠損は?分布は?外れ値は?」 |
| p 値の意味 | 「H0 が真と仮定したとき、 観察以上に極端な結果が起こる確率」 |
| 信頼区間 95% | 「100 回サンプリングして 95 回は真の値を含む区間」 |
| 予測の問い | 「次の Y を当てる、 因果は問わない」 |
| 因果の問い | 「X を操作したら Y はどう変わるか」 |
| HARKing 防止 | 事前登録 / 仮説 → 分析 の順 / 探索と確認的分析を分離 |
位置づけ:「問いを立てる」は、 統計学・データサイエンス・計量経済学・社会科学すべてに共通する 最上位 の課題です。 にもかかわらず教科書では軽く扱われがちで、 結果として「ツールは使えるが何を問うべきか分からない」学習者が多発します。
研究の歴史的整理:
SMART(Specific, Measurable, Achievable, Relevant, Time-bound)原則や、 医学研究の PICO 枠組み(Population, Intervention, Comparator, Outcome)は、 データサイエンスの問い設計にも直接転用できます。
問いを軸にしたデータサイエンスの流れ:
【ステークホルダーの関心】
│
▼
【問い】← 操作化(SMART / PICO)
│
▼
【仮説 H0 / H1】
│
▼
┌──────────┼──────────┐
記述 関連 予測 因果
(記述統計 / 相関 / 機械学習 / 因果推論)
│
▼
【結論・KPI・提言】
│
▼
【意思決定・施策】