論文一覧に戻る 📚 用語集トップ 🗺 概念マップ
📚 用語解説(ジャストインタイム型データサイエンス教育)
データリテラシー
Data Literacy
データを読み・使い・批判的に評価する力 — すべての分析の土台
リテラシープロセス問い批判的思考

🔖 キーワード索引(補強)

🔖 キーワード索引(補強)

データリテラシーの中核概念を一覧で。

記述統計 推測統計 外れ値 欠損値 分布 中心傾向 散らばり 標準偏差 四分位範囲 歪度 尖度 サンプルサイズ 母集団 バイアス 交絡 グラフのウソ 層別解析 p-hacking HARKing EDA

🔖 🔖 キーワード索引(チップから該当箇所へジャンプ)

論文記事から各用語のリンクをクリックすると、 該当箇所が開きます:

データリテラシーとは PPDACサイクル CRISP-DM 良い問いの作り方 EDA 変数の尺度 データ型 Tidy data データ品質 欠損 標本バイアス 測定の歪み 可視化リテラシー 統計でうそをつく オープンデータ 再現可能性

💡 30秒で分かる結論

🍰 まずはやさしく

データの読み書きができる力のことです。

正しく情報を判断するために使います。

SNSの情報を疑って見る時に役立ちます。

データの扱い方や考え方の基本を読みます。

📍 あなたが今見ているもの

🍰 まずはやさしく

データ分析の全体像をまとめた地図です。

分析の質を高めるために使います。

部活の記録をまとめる時に役立ちます。

分析の流れや準備の手順について読みます。

本ページでは、 データリテラシーを統合的に解説します。 PPDAC サイクルCRISP-DM問いの設計EDA変数の尺度批判的読解を一気通貫で扱います。

「どの手法を使うか」よりその前段のリテラシーが、 分析の質を決定します。 数理・データサイエンス・AI モデルカリキュラム(MDASH)でも導入科目として位置づけられています。

🎨 10. 可視化リテラシー

🍰 まずはやさしく

グラフの嘘を見抜くためのメガネです。

見た目にだまされないために使います。

買い物の広告にあるグラフで役立ちます。

正しいグラフの作り方と見方を読みます。

「グラフは嘘をつく」基本パターン:

良い可視化の原則(Tufte)

🎭 11. 「統計でうそをつく方法」

Darrell Huff の古典(1954)。 現代でも有効な批判的読解の視点:

📐 定義・数式 — Tidy data と尺度

🍰 まずはやさしく

データを整理するための共通のルールです。

計算ミスや間違いを防ぐために使います。

スマホでアンケートを作る時に役立ちます。

データの種類と整理の形について読みます。

Tidy data の定義は数学的に 「観測 $\times$ 変数」の長方形構造」。 SSDSE-B-2026 の整然形は:

$$ \text{Tidy}(D) : D \in \mathbb{R}^{n \times p}, \quad D_{ij} = (\text{Prefecture}_i, \text{Variable}_j, \text{Value}_{ij}) $$

変数の尺度水準は Stevens の階層

$$ \text{Nominal} \subset \text{Ordinal} \subset \text{Interval} \subset \text{Ratio} $$

SSDSE-B-2026 の Prefecture は 名義尺度、 「年齢階級」は 順序尺度、 「気温」は 間隔尺度、 「人口・出生数」は 比例尺度。 上位の尺度ほど許容される統計操作(差・比・平均)が多くなります。

🔬 数式を言葉で読み解く — 記号 → 意味

尺度許容操作SSDSE-B-2026 例
名義=, ≠Prefecture(北海道, 東京, ...)
順序+ >, <満足度・教育水準
間隔+ 加減・平均気温(°C)
比例+ 乗除・比A1101(人口)・出生数

名義尺度に平均値を出すような尺度違反は、 データリテラシー違反の典型例です。 Tidy 化のときに「この列の尺度は?」を明示する習慣をつけましょう。

🧮 SSDSE-B-2026 で実値計算 — データリテラシー演習

「データを正しく見る」基本動作を SSDSE-B-2026 の都道府県データで実行します。

例1:要約統計量を一括で得る

🎯 解説: SSDSE-B-2026(47都道府県データ)でデータリテラシーの基本確認動作を行う。 まずはデータを読み込み、 構造・型・欠損・代表値を「見る」ことが分析の出発点。 ファイルパスは自分の環境に合わせて変更すること。

📥 入力例: data/raw/SSDSE-B-2026.csv(2023年・47都道府県横断)
  年度  地域コード  都道府県  A1101(総人口)  A1303(65歳以上)  ...
  2023  R01000    北海道    5092000        1681000
  2023  R13000    東京都    14086000       3205000
  2023  R47000    沖縄県    1468000        350000
📤 実行例(2023年横断・47都道府県):
  shape=(47, 112), 欠損=0, dtypes=int64/float64/object
  describe() で 5 数要約、 head() で先頭、 info() で型情報
 → 47 都道府県の全変数の概要が即座に把握できる

💬 読み方: 「データを開く前に分析しない」「型と欠損を見ずに集計しない」がリテラシーの基本ルール。 SSDSE-B のような公的統計は欠損が少ないが、 民間データでは isnull().sum() で必ず欠損率を確認する。 数値列は int/float、 文字列は object として読み込まれるか確認する。

1
2
3
4
5
6
7
import pandas as pd

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', header=1)
print(df.describe().T)  # 全数値列の count / mean / std / min / 25% / 50% / 75% / max
print('---')
print(df.dtypes.value_counts())  # 各データ型の列数
print('欠損数:', df.isna().sum().sum())

例2:分布と外れ値の確認(IQR ルール)

📥 入力例: data/raw/SSDSE-B-2026.csv(2023年・47都道府県横断)
  年度  地域コード  都道府県  A1101(総人口)  A1303(65歳以上)  ...
  2023  R01000    北海道    5092000        1681000
  2023  R13000    東京都    14086000       3205000
  2023  R47000    沖縄県    1468000        350000
📤 実行例(2023年横断・47都道府県):
  shape=(47, 112), 欠損=0, dtypes=int64/float64/object
  describe() で 5 数要約、 head() で先頭、 info() で型情報
 → 47 都道府県の全変数の概要が即座に把握できる
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import pandas as pd

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', header=1)
# 47 都道府県・最新年度に絞る(絞らないと最初の数値列が「年度」になり、外れ値が 0 件になる)
df = df[df['地域コード'].astype(str).str.match(r'^R\d{5}$', na=False)].copy()
df['年度'] = pd.to_numeric(df['年度'], errors='coerce')
df = df[df['年度'] == df['年度'].max()]

col = '総人口'
df[col] = pd.to_numeric(df[col], errors='coerce')
q1, q3 = df[col].quantile([0.25, 0.75])
iqr = q3 - q1
lo, hi = q1 - 1.5*iqr, q3 + 1.5*iqr
outliers = df[(df[col] < lo) | (df[col] > hi)]
print(f'{col} の外れ値 (n={len(outliers)}): 下限 {lo:,.0f} / 上限 {hi:,.0f}')
print(outliers[['都道府県', col]].to_string(index=False))

例3:層別集計(地域ブロック別)

📥 入力例: data/raw/SSDSE-B-2026.csv(2023年・47都道府県横断)
  年度  地域コード  都道府県  A1101(総人口)  A1303(65歳以上)  ...
  2023  R01000    北海道    5092000        1681000
  2023  R13000    東京都    14086000       3205000
  2023  R47000    沖縄県    1468000        350000
📤 実行例(2023年横断・47都道府県):
  shape=(47, 112), 欠損=0, dtypes=int64/float64/object
  describe() で 5 数要約、 head() で先頭、 info() で型情報
 → 47 都道府県の全変数の概要が即座に把握できる
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import pandas as pd

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', header=1)

block_map = {
    '北海道': '北海道', '青森県': '東北', '岩手県': '東北', '宮城県': '東北',
    '秋田県': '東北', '山形県': '東北', '福島県': '東北',
    '茨城県': '関東', '栃木県': '関東', '群馬県': '関東', '埼玉県': '関東',
    '千葉県': '関東', '東京都': '関東', '神奈川県': '関東',
}
df['ブロック'] = df['都道府県'].map(block_map).fillna('その他')
num_col = df.select_dtypes('number').columns[0]
print(df.groupby('ブロック')[num_col].agg(['mean', 'std', 'count']))
📤 実行例(実測) mean std count ブロック その他 2017.5 3.456419 396 北海道 2017.5 3.605551 12 東北 2017.5 3.476278 72 関東 2017.5 3.472786 84

🧮 数式に値を入れて手で計算する: スキル成熟度の加重平均

合成データで 5 観点 (収集・加工・解析・表現・倫理) のスキル評価を加重で集約。

Step 1: 観点別スコア

観点スコア重み加重
収集30.150.45
加工40.251.00
解析50.301.50
表現30.150.45
倫理40.150.60

Step 2: 加重平均

合計 = 0.45+1.00+1.50+0.45+0.60 = 4.00 重み合計 = 1.00 加重平均 = 4.00 / 1.00 = 4.00 / 5.00 = 80%

🐍 Python で再現

1
2
3
4
5
6
import numpy as np
scores = np.array([3, 4, 5, 3, 4])
weights = np.array([0.15, 0.25, 0.30, 0.15, 0.15])
w = scores * weights
print(f"加重: {w}")
print(f"加重平均: {w.sum():.2f}")

📤 実行結果

加重: [0.45 1. 1.5 0.45 0.6 ] 加重平均: 4.00

💬 手計算 (Step 2) 4.00 と Python 出力が完全一致。

🐍 16. ライブラリ早見表

🐍 16. ライブラリ早見表

用途 パッケージ
データ操作pandas, polars, pyarrow
EDA自動化ydata-profiling, sweetviz, autoviz
欠損可視化missingno
欠損補完sklearn.impute.SimpleImputer/KNNImputer/IterativeImputer
可視化matplotlib, seaborn, plotly, altair
ノートブックjupyter, marimo, quarto
再現性poetry, pip-tools, conda-lock, dvc
レポートquarto, papermill, nbconvert

📜 17. データリテラシーの歴史

💼 18. 実務応用

📖 19. ケーススタディ

19.1 John Snow のコレラ地図(1854)

ロンドンのコレラ流行で、 Snow はコレラ患者の自宅を地図にプロット。 Broad Street の給水ポンプ周辺に集中していることを発見し、 ポンプを使用停止 → 流行が収束。 データ可視化が公衆衛生を変えた歴史的事例。 「相関=因果」と判断する前に、 地図というシンプルな可視化が決定的だった。

19.2 Florence Nightingale のローズダイアグラム(1858)

クリミア戦争の英軍兵士死亡原因を「戦闘」「予防可能な感染症」「その他」に色分けした円グラフで政府に提示。 戦闘より感染症で多く死んでいることを直感的に伝え、 衛生改革を実現。

19.3 シャレンジャー号事故(1986)

O-リング故障による爆発事故。 事前データに O-リング温度依存性が示されていたが、 「失敗例だけ」を見てパターンを認識できなかった(生存バイアスの逆)。 視覚化の重要性が再確認された事例。

19.4 シンプソンのパラドックス:UC バークレー入試(1973)

全体では「男性合格率>女性合格率」だったが、 学部別に見るとほぼすべての学部で「女性合格率>男性合格率」。 女性が「合格率が低い学部に多く出願」していたため、 全体集計で誤って見えた。 集約と層別で結果が逆転する典型例

⚖️ 20. データ倫理の基本

1. scipy.stats — 記述統計と検定をワンライナーで

📥 入力例: data/raw/SSDSE-B-2026.csv(2023年・47都道府県横断)
  年度  地域コード  都道府県  A1101(総人口)  A1303(65歳以上)  ...
  2023  R01000    北海道    5092000        1681000
  2023  R13000    東京都    14086000       3205000
  2023  R47000    沖縄県    1468000        350000
📤 実行例(2023年横断・47都道府県):
  shape=(47, 112), 欠損=0, dtypes=int64/float64/object
  describe() で 5 数要約、 head() で先頭、 info() で型情報
 → 47 都道府県の全変数の概要が即座に把握できる
1
2
3
4
5
6
7
8
import pandas as pd
from scipy import stats

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', header=1)
x = df.select_dtypes('number').iloc[:, 0].dropna()
print('歪度:', stats.skew(x))
print('尖度:', stats.kurtosis(x))
print('Shapiro-Wilk 正規性検定:', stats.shapiro(x))

2. scikit-learn — 標準化・欠損値処理

📥 入力例: data/raw/SSDSE-B-2026.csv(2023年・47都道府県横断)
  年度  地域コード  都道府県  A1101(総人口)  A1303(65歳以上)  ...
  2023  R01000    北海道    5092000        1681000
  2023  R13000    東京都    14086000       3205000
  2023  R47000    沖縄県    1468000        350000
📤 実行例(2023年横断・47都道府県):
  shape=(47, 112), 欠損=0, dtypes=int64/float64/object
  describe() で 5 数要約、 head() で先頭、 info() で型情報
 → 47 都道府県の全変数の概要が即座に把握できる
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
from sklearn.preprocessing import StandardScaler, RobustScaler
from sklearn.impute import SimpleImputer, KNNImputer
import pandas as pd

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', header=1)
num_cols = df.select_dtypes('number').columns

# 1) 平均0・分散1 に標準化
scaler = StandardScaler()
X_std = scaler.fit_transform(df[num_cols])

# 2) 外れ値に頑健な標準化(中央値・IQR 基準)
robust = RobustScaler()
X_robust = robust.fit_transform(df[num_cols])

# 3) 欠損値の補完(KNN)
imp = KNNImputer(n_neighbors=5)
X_imp = imp.fit_transform(df[num_cols])
print('補完後の欠損数:', pd.DataFrame(X_imp).isna().sum().sum())

3. pandas — describe / quantile / value_counts

📥 入力例: data/raw/SSDSE-B-2026.csv(2023年・47都道府県横断)
  年度  地域コード  都道府県  A1101(総人口)  A1303(65歳以上)  ...
  2023  R01000    北海道    5092000        1681000
  2023  R13000    東京都    14086000       3205000
  2023  R47000    沖縄県    1468000        350000
📤 実行例(2023年横断・47都道府県):
  shape=(47, 112), 欠損=0, dtypes=int64/float64/object
  describe() で 5 数要約、 head() で先頭、 info() で型情報
 → 47 都道府県の全変数の概要が即座に把握できる
1
2
3
4
5
6
7
8
9
import pandas as pd

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', header=1)
# 一括要約
summary = df.describe(percentiles=[.1, .25, .5, .75, .9]).T
print(summary)

# 列ごとの欠損率
print(df.isna().mean().sort_values(ascending=False).head())

4. pingouin — 統計量と効果量・正規性検定

📥 入力例: data/raw/SSDSE-B-2026.csv(2023年・47都道府県横断)
  年度  地域コード  都道府県  A1101(総人口)  A1303(65歳以上)  ...
  2023  R01000    北海道    5092000        1681000
  2023  R13000    東京都    14086000       3205000
  2023  R47000    沖縄県    1468000        350000
📤 実行例(2023年横断・47都道府県):
  shape=(47, 112), 欠損=0, dtypes=int64/float64/object
  describe() で 5 数要約、 head() で先頭、 info() で型情報
 → 47 都道府県の全変数の概要が即座に把握できる
1
2
3
4
5
6
7
import pingouin as pg
import pandas as pd

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', header=1)
x = df.select_dtypes('number').iloc[:, 0].dropna()
# 多変量正規性 (Henze-Zirkler)
print(pg.normality(x))

5. matplotlib/seaborn — EDA 可視化セット

📥 入力例: data/raw/SSDSE-B-2026.csv(2023年・47都道府県横断)
  年度  地域コード  都道府県  A1101(総人口)  A1303(65歳以上)  ...
  2023  R01000    北海道    5092000        1681000
  2023  R13000    東京都    14086000       3205000
  2023  R47000    沖縄県    1468000        350000
📤 実行例(2023年横断・47都道府県):
  shape=(47, 112), 欠損=0, dtypes=int64/float64/object
  describe() で 5 数要約、 head() で先頭、 info() で型情報
 → 47 都道府県の全変数の概要が即座に把握できる
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', header=1)
num_cols = df.select_dtypes('number').columns[:5]

fig, axes = plt.subplots(2, 3, figsize=(15, 8))
for ax, col in zip(axes.flat, num_cols):
    sns.histplot(df[col].dropna(), kde=True, ax=ax)
    ax.set_title(col, fontsize=10)
plt.tight_layout()
plt.savefig('eda_distributions.png', dpi=100)

🎮 触って理解する — だまされないクイズ

データリテラシーの核心は「数字とグラフにだまされない」こと。 ここでは誤解を招く主張を 5 問出題します。 各問題のグラフは操作(スライダー・ドラッグ・トグル)でリアルタイムに再描画されるので、 「同じデータでも見せ方で印象が激変する」ことを体感してください。 ※ 5 問のデータはすべて教材用の架空データです(SSDSE-B-2026 の実測値ではありません)。 統計量(相関係数・変化率など)はブラウザ内でその場で正確に計算しています。

🏅 初回正解スコア: 0 / 5 

Q1. 「商品Bの満足度が圧勝!」— 棒グラフの罠(架空データ)

ある広告の主張:「顧客満足度調査で 商品B(75%)が商品A(72%)を圧倒的に上回った!」(架空)。 下のグラフはその広告と同じ描き方です。

Y軸の開始値: 70% (グラフ上を上下にドラッグしても変更できます)

この主張(グラフ)の問題点はどれ?

正解:Y軸の切り詰め。 実際の値の比は 75 ÷ 72 = 約 1.04 倍(+3 ポイント)ですが、 Y軸を 70 から始めると棒の高さの比は 2.50に見えます。 棒グラフは「高さ=量」で読むため、 原点 0 が原則(Tufte の lie factor ≒ 1)。 スライダーを 0 に戻す(または「正しい表示に直す」)と、 ほぼ同じ高さの 2 本になることを確認してください。 折れ線グラフで変化を拡大して見せる場合は、 軸の切断を波線などで明示するのが作法です。

Q2. 「アイスが事故を引き起こす!」— 相関と因果(架空データ)

架空の月次データ(12 か月)で「アイスクリーム販売量」と「水難事故件数」の相関係数は r = 。 ある記事の主張:「相関がこれほど強いのだから、 アイスの販売を規制すれば水難事故は減る!

この主張の問題点はどれ?

正解:因果の飛躍(交絡の無視)。 気温が上がる → アイスも売れるし水難事故も増える、 という共通原因(交絡変数)の構造です。 実際、 このデータでは気温とアイスの相関 r = 、 気温と事故の相関 r = と、 どちらも気温と強く連動しています。 色分け表示にすると、 高温の月(赤)ほど右上、 低温の月(青)ほど左下に並ぶことが見て取れます。 因果を主張するには、 交絡の統制(層別・回帰・実験計画)が必要です。

Q3. 「副作用リスク 50% 増!」— 母数の隠れたパーセント(架空データ)

架空の臨床試験の見出し:「新薬で副作用リスクが 50% も増加!」。 下のグラフはその記事に載っていた「相対リスク」の図です。

この主張の問題点はどれ?

正解:分母(母数)の隠蔽。 対照群 1000 人中 2 人(0.2%)→ 新薬群 1000 人中 3 人(0.3%)。 相対リスク増加は (3−2)/2 = 50% で見出し自体は計算上ウソではありませんが、 絶対リスク差はわずか 0.1 ポイント(1000 人に 1 人)。 「正しい表示」に切り替えると、 1000 人スケールでは棒がほとんど見えないことが分かります。 相対% を見たら必ず「分母は? 絶対数は?」と問うのがリテラシー。 医療統計では NNH(有害必要数)= 1 ÷ 0.001 = 1000 人という指標も使われます。

Q4. 「わが社は 3 年連続成長中!」— 期間の切り取り(架空データ)

架空企業の IR 資料:「売上は 3 年連続成長! 絶好調!」。 下は資料と同じ 2023〜2025 年だけのグラフです。 スライダー(またはグラフ上を左右にドラッグ)で表示開始年を動かしてみてください。

表示開始年: 2023 年〜2025 年

この主張の問題点はどれ?

正解:期間のチェリーピッキング。 2023→2025 年だけ見れば 62 → 71 億円で +14.5% の「3 年連続成長」ですが、 全期間 2014→2025 年では 98 → 71 億円で −27.6% の長期低落です。 「いつからいつまでのデータか」「なぜその期間なのか」を必ず確認しましょう。 時系列の主張を見たら、 開始点をずらしても結論が保たれるか(頑健性)を疑うのが批判的読解の基本です。

Q5. 「成功者の 80% は朝 4 時起き!」— 生存者バイアス(架空データ)

架空のビジネス書:「成功した起業家 100 人を調査したら 80 人(80%)が朝 4 時起きだった。 早起きこそ成功の秘訣だ!

この主張の問題点はどれ?

正解:生存者バイアス。 この架空データでは、 実は倒産した 900 社の創業者も 720 人(80.0%)が朝 4 時起き。 つまり P(早起き | 成功) = 80% と P(早起き | 倒産) = 80% はまったく同じで、 早起きと成功は無関係です。 「生き残った標本」だけを見ると、 生き残りに共通する特徴が何でも「成功要因」に見えてしまう。 第二次大戦の帰還爆撃機の弾痕分析(Wald)が有名で、 「観測されなかったデータは何か?」と問うのが本質です。

💡 直感 — データリテラシーは「読む・問う・使う」の 3 動作

読む(Read):軸・単位・分母・期間・出典を確認してからグラフ本体を見る。 問う(Question):「誰が・何のために・どう測って・何を見せていないか」を必ず自問する。 上の 5 問はすべて「見せていないもの」(原点・第三の変数・分母・過去・脱落者)に仕掛けがありました。 使う(Use):疑って終わりではなく、 正しい表示・正しい指標に直して意思決定につなげる。 各問題の「正しい表示に直す」トグルがこの動作に対応します。

⚠️ よくある落とし穴 — 3 大パターン

🚀 発展 — 統計リテラシー・批判的思考・チェックリスト

統計リテラシーはデータリテラシーの中核部品で、 代表値の使い分け(中心傾向)、 不確実性の読み方(信頼区間・仮説検定の p 値と効果量)までを含みます。 批判的思考(クリティカルシンキング)は「主張・根拠・隠れた前提」を分離して検討する一般技能で、 統計はその強力な道具です。 実務では次のチェックリストを毎回回すことを勧めます:

  1. 出典は?(一次データか、 誰が集めたか)
  2. 母集団と標本は?(誰が含まれ、 誰が抜け落ちているか)
  3. 分母は?(% の裏の実数、 ベースライン)
  4. 期間は?(開始点を変えても結論は同じか)
  5. 軸は?(原点・スケール・単位)
  6. 因果と言えるか?(交絡・逆因果・偶然を排除できるか)
  7. 再現できるか?(データとコードが公開されているか)

⚠️ 9. データに潜むバイアス

⚠️ 9. データに潜むバイアス

9.1 測定の歪み

落とし穴 対処
手法から考え始める必ず問いから。 手法はそのあと。
標本の偏りを無視「誰が、 どう選ばれたか」を必ず確認。
尺度を間違える名義尺度に平均は計算できない。
欠損を機械的に削除欠損パターンを調査。 MNAR ならバイアス。
単位を確認しない単位の取り違いで桁ずれ事故。
単一指標で判断代表値・ばらつき・形状を複数併用。
出典なし出典と取得日を必ず明記。

🏋️ 14. 練習問題

Q1. SSDSE-B-2026 を読み込み、 PPDAC の Plan ステップに沿って「分析したい問い」を 3 つ書きなさい。

具体例:(1) 高齢化率が高い県ほど一人当たり所得は低いか? (2) 持ち家比率の決定要因は何か? (3) 都市規模別の人口動態の特徴は?

Q2. SSDSE-B-2026 の各列について、 尺度水準(名義/順序/間隔/比例)を分類しなさい。
🎯 解説: SSDSE-B-2026(47都道府県データ)でデータリテラシーの基本確認動作を行う。 まずはデータを読み込み、 構造・型・欠損・代表値を「見る」ことが分析の出発点。 ファイルパスは自分の環境に合わせて変更すること。
📥 入力例(SSDSE-B-2026 全体:564 行 × 112 列 = 47 都道府県 × 2012〜2023 年) 年度 地域コード 都道府県 A1101(総人口) A1303(65歳以上人口) A4101(出生数) … 2023 R01000 北海道 5,092,000 1,681,000 24,430 … 2023 R13000 東京都 14,086,000 3,205,000 86,348 … 2023 R47000 沖縄県 1,468,000 350,000 12,549 … …(残り 112 列は住宅・家計・教育・医療など)
1
2
3
4
import pandas as pd
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
print(df.dtypes)
# 都道府県:名義、 一人当たり県民所得:比例、 etc.
📥 入力例: data/raw/SSDSE-B-2026.csv(2023年・47都道府県横断) 年度 地域コード 都道府県 A1101(総人口) A1303(65歳以上) ... 2023 R01000 北海道 5092000 1681000 2023 R13000 東京都 14086000 3205000 2023 R47000 沖縄県 1468000 350000
📤 実行例(実測) SSDSE-B-2026 int64 Code object Prefecture object A1101 int64 A110101 int64 ... L322106 int64 L322107 int64 L322108 int64 L322109 int64 L322110 int64 Length: 112, dtype: object
💬 読み方: 「データを開く前に分析しない」「型と欠損を見ずに集計しない」がリテラシーの基本ルール。 SSDSE-B のような公的統計は欠損が少ないが、 民間データでは isnull().sum() で必ず欠損率を確認する。 数値列は int/float、 文字列は object として読み込まれるか確認する。
Q3. SSDSE-B-2026 でデータ品質チェックを実施しなさい(欠損・重複・分布の概観)。
🎯 解説: SSDSE-B-2026(47都道府県データ)でデータリテラシーの基本確認動作を行う。 まずはデータを読み込み、 構造・型・欠損・代表値を「見る」ことが分析の出発点。 ファイルパスは自分の環境に合わせて変更すること。
1
2
3
4
print('行数 x 列数:', df.shape)
print('欠損:'); print(df.isnull().sum())
print('重複:', df.duplicated().sum())
print(df.describe())
📥 入力例: data/raw/SSDSE-B-2026.csv(2023年・47都道府県横断) 年度 地域コード 都道府県 A1101(総人口) A1303(65歳以上) ... 2023 R01000 北海道 5092000 1681000 2023 R13000 東京都 14086000 3205000 2023 R47000 沖縄県 1468000 350000
📤 実行例(実測) 行数 x 列数: (564, 112) 欠損: SSDSE-B-2026 0 Code 0 Prefecture 0 A1101 0 A110101 0 .. L322106 0 L322107 0 L322108 0 L322109 0 L322110 0 Length: 112, dtype: int64 重複: 0 SSDSE-B-2026 A1101 ... L322109 L322110 count 564.000000 5.640000e+02 ... 564.000000 564.000000 mean 2017
💬 読み方: 「データを開く前に分析しない」「型と欠損を見ずに集計しない」がリテラシーの基本ルール。 SSDSE-B のような公的統計は欠損が少ないが、 民間データでは isnull().sum() で必ず欠損率を確認する。 数値列は int/float、 文字列は object として読み込まれるか確認する。
Q4. ニュース記事の統計グラフを 1 つ選び、 軸・標本・出典について批判的に読解しなさい。

確認ポイント:軸の起点、 サンプリング方法、 期間、 出典の信頼性、 著者の意図、 暗黙の仮定など。

📝 15. レポートの構成例

  1. 背景と問い:なぜこの分析が必要か
  2. データの説明:出典・期間・サンプリング・尺度・欠損
  3. EDA:分布・関連の概観
  4. 方法:分析手法、 前処理、 仮定
  5. 結果:図表 + 要約統計 + 信頼区間
  6. 解釈:何を意味するか
  7. 限界:データ・手法の限界
  8. 結論と次の問い

⚠️ データリテラシーの落とし穴(補強・各 100 文字以上)

① 「平均」だけで分布を語る
所得や住宅価格のように右に長い裾を持つ分布では、 平均値は少数の高所得者に大きく引っ張られて中央値より遥かに大きくなる。 「日本の平均世帯所得 550万円」と聞いても多くの家庭は 400万円台で、 これだけで政策議論をすると現場と乖離する。 必ず中央値・四分位・ヒストグラムを併せて見る習慣を持つこと。
② 標準偏差が大きい=悪いと早合点する
標準偏差は単に「ばらつきの大きさ」を表すだけで、 良い・悪いは文脈次第。 株式の収益率なら大きいとリスク高、 製品検査なら小さいほうが歩留まりが良い、 一方マーケティングのターゲット層分散は広いほうがビジネスチャンスがある。 値だけで判定せず、 単位・スケール・目的を合わせて評価する。
③ サンプルサイズが大きい=信頼できると思う
n=100万人でも、 サンプリングに偏りがあれば結論は歪む。 1936年のリテラリー・ダイジェスト調査は n=240万人だったが、 電話帳と自動車登録者からの回答で富裕層に偏り、 ルーズベルト落選を予測し外した。 一方ギャラップは n=1500 のランダム標本で当選を当てた。 「数」より「代表性」が決定的。
④ グラフの軸を切って差を強調する
棒グラフの y 軸を 0 から始めず 80 から始めると、 80→85 のわずか 5 ポイント差が「圧倒的優位」に見える。 報道・広告でしばしば使われる「視覚的誇張」の典型。 グラフを作るときは必ず y 軸の起点を確認し、 受け手の印象が誤誘導されないか自問する。 ニュース引用時も注意して読む。
⑤ シンプソンのパラドックスを見落とす
全体集計では「処置 A が優位」でも、 部分集団に分けると「全集団で処置 B が優位」になる現象。 病院ランキングや大学入学選考の有名な事例がある。 集団の構成比が偏った場合に発生しやすく、 必ず層別集計を併用する。 集計だけで判断せず、 サブグループの傾向と全体集計の両方を眺める。
⑥ 欠損値を無断で平均で埋める
欠損値を平均で補完すると分散が過小評価され、 続く回帰や検定の標準誤差が嘘の値になる。 さらに欠損のメカニズム(MCAR/MAR/MNAR)によっては、 平均補完自体がバイアスを生み因果関係を歪める。 多重代入法(MICE)や欠損のフラグ列追加など、 メカニズムに応じた方法を選ぶ。
⑦ p-hacking と HARKing で「ストーリー後付け」する
有意になるまで変数組合せ・サブセット・カットオフを変えて検定を繰り返すのが p-hacking、 結果を見てから仮説を作るのが HARKing。 どちらも偽発見率を爆上げする。 事前登録(pre-registration)、 多重比較補正、 検証用ホールドアウトを徹底する。 「最初に決めた仮説」を必ず記録しよう。