論文一覧に戻る 📚 用語集トップ 🗺 概念マップ
📚 用語解説
📚 用語解説
2次データ
Secondary Data
リテラシー
別称: 二次データ

🔖 キーワード索引

このページ内のセクションへ素早く飛べます(クリックで該当箇所へジャンプ):

💡 30秒結論📍 文脈🎨 直感📐 数式・定義🔬 数式を言葉で読み解く🧮 SSDSE実値計算🐍 Python実装⚠️ 落とし穴🌐 関連手法🔗 関連用語📚 関連グループ❓ FAQ🎮 触って理解する

secondary data」は統計データ分析の文脈で扱う重要概念のひとつ。 本ページでは「secondary data」を取り巻く中核キーワードを以下にチップで一覧化する。 各キーワードは関連する概念・手法・道具立てを含み、 文献検索や学習計画の起点になる。

2 次データ公的統計e-StatSSDSE国勢調査人口動態統計既存調査の再利用メタデータ時系列継続性定義改訂1 次データとの対比出典明示

これらのキーワードは「secondary data の理解 → 適用 → 検証」のプロセスを構成する。 各章で詳しく解説する。

💡 30秒で分かる結論 — 2次データ

🍰 まずはやさしく

誰かが集めたデータを再利用することです。

効率よく分析を行うために使います。

ネットで公開されている統計データが例です。

この章では結論と注意点を学びます。

💡 30秒で分かる結論

他者が収集・公開した既存データ

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

🍰 まずはやさしく

すでにあるデータを活用する方法です。

自分で集める手間を省くために使います。

政府が公開している人口データなどが例です。

この章ではデータの魅力と弱点を学びます。

e-Stat、SSDSE、World Bank Open Data — これらは典型的な2次データ。 「すでに誰かが集めて整えてくれた」点が最大の魅力で、 同時に「自分の問いに完全にはマッチしない」点が最大の弱点でもある。

本ページは 2次データ(Secondary Data) を、 ジャストインタイム型データサイエンス教育の文脈で 12 のセクションに分けて解説します。 上から順に読まなくても、 「🔖 キーワード索引」から必要箇所だけ拾い読みすることもできます。

🎨 直感で掴む — 2次データとは何者か

🍰 まずはやさしく

おすそ分けのデータのようなものです。

大きな規模の調査を簡単に行うために使います。

都道府県ごとの高齢化率を調べるのが例です。

この章ではメリットとデメリットを学びます。

SSDSE-B-2026 を使って47都道府県の高齢化率と死亡率の関係を調べる — これは典型的な2次データ分析です。 元データは総務省の国勢調査・人口動態統計などで、 すでに誰かが集めて整えてくれたものを再利用しています。

観点1次データ2次データ
取得者自分他人(政府・企業・研究者)
コスト高い低い(無料 or 安価)
マッチ度問いにピッタリ問いとはズレることも多い
期間・地理自由に設定公表サイクルに従う
代表例自社アンケート, 自前センサSSDSE, e-Stat, 国際機関統計

2次データを使う最大のメリットは、 数百万人規模のサンプルや国際比較データに無料でアクセスできること。 デメリットは、 元の調査設計(質問項目、 標本枠、 期間)を自分でコントロールできないこと。 メタデータ(出典・期間・定義)を丁寧に読み込むことが必須です。

🎨 直感で掴む

データを読み・解釈し・批判する力。 数値の背後にある文脈とバイアスを意識してください。

本ページでは 2次データ を、 定義・前提条件・使い方・落とし穴の順に整理して解説します。 厳密な定義より、 まず何を、 いつ、 どう使うかを理解することを優先してください。

📐 数式・定義

🍰 まずはやさしく

他人が集めて公開した既存のデータです。

正しいレポートや論文を書くために使います。

学校の課題で使う公的な統計が例です。

この章では言葉の意味と使い方を学びます。

2次データ は概念的定義が中心ですが、 ジャストインタイム教育の観点からは「関連量のなかで何を計算しているか」を式で押さえると理解が深まります。 代表的に使われる数式は:

$$ \text{基本量}_{secondary-data} = f(\text{入力データ}, \text{前提}, \text{パラメータ}) $$

定義式の一般形:

$$ Q = \frac{1}{n} \sum_{i=1}^{n} g(x_i) $$

ここで $g(\cdot)$ は用語に応じた評価関数(カウント、 平均、 比、 オッズなど)。 具体形は次セクション「🔬 数式を言葉で読み解く」で確認します。

📐 定義

他者が収集・公開した既存データ

英語名 Secondary Data。 同義・関連語:二次データ。

🎯 いつ・どこで使うか

📋 前提条件・適用範囲

この用語を理解・使用するときは、 次のような前提を意識してください:

📐 数式で見る二次データ統合 — メタアナリシスの考え方

複数の二次データを統合する典型的な数学的枠組みが メタアナリシス(meta-analysis)。 各データソース $i$ の効果量 $\theta_i$ を、 サンプルサイズや分散で重み付き平均する。 数式の心臓部は次の通り。

$$ \hat{\theta}_{\text{pooled}} = \frac{\sum_{i=1}^{k} w_i \theta_i}{\sum_{i=1}^{k} w_i}, \quad w_i = \frac{1}{\sigma_i^2} $$

ここで $w_i$ は各研究の重み(精度の高い研究ほど重みが大きい)、 $\sigma_i^2$ は推定量の分散。 SSDSE-B-2026 で都道府県別の効果量を統合する場合、 都道府県の人口を重みとして使う「人口加重平均」が典型的応用例です。

数式を言葉で読み解く

この式は「精度の高い研究ほど重視する」加重平均の一般形。 $\theta_i$ は各データソースの推定値、 $w_i$ は重み(分散の逆数)。 分散が小さい (= 精度が高い) ほど重みが大きくなる。 二次データ統合では、 単純平均ではなく サンプルサイズで重み付けするのが鉄則です。

📥 入力例(SSDSE-B-2026 の 2023 年・47 都道府県から 3 行) 都道府県 A1101(総人口) A1303(65歳以上人口) 北海道 5,092,000 1,681,000 東京都 14,086,000 3,205,000 沖縄県 1,468,000 350,000 …(全 47 行)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import pandas as pd
import numpy as np

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
d23 = df[df['SSDSE-B-2026'] == 2023].copy()
d23['aging_rate'] = d23['A1303'] / d23['A1101'] * 100

# 単純平均 vs 人口加重平均
simple_mean = d23['aging_rate'].mean()
weights = d23['A1101']  # 人口で重み付け
weighted_mean = np.average(d23['aging_rate'], weights=weights)

print(f'単純平均高齢化率:      {simple_mean:.3f}%')
print(f'人口加重平均高齢化率:  {weighted_mean:.3f}%')
print(f'差:                    {simple_mean - weighted_mean:.3f} ポイント')

🎯 このコードでやること: 47 都道府県の高齢化率を、 単純平均と人口加重平均で比較。 二次データ統合の重要な視点。

📥 入力データ: SSDSE-B-2026 の A1101(総人口)と A1303(65 歳以上人口)。

📤 実行結果:

単純平均高齢化率: 31.586% 人口加重平均高齢化率: 29.134% 差: 2.452 ポイント

💬 結果の読み方: 単純平均は 31.59%、 人口加重では 29.12%。 約 2.5 ポイントの差は 人口の少ない高齢化県(秋田・高知)が単純平均で過大評価されることを示す。 二次データを正しく統合するには「集計単位の重み」を必ず考慮する。

🔬 数式・定義を「言葉」で読み解く

先ほどの数式・定義に出てきた記号や概念を、 一つずつ確認します。 とくに 2次データ の文脈で意味を取り違えやすい部分を強調します。

記号意味と注意点
$\bar{x}$標本平均。 $\bar{x} = \frac{1}{n}\sum_{i=1}^n x_i$
$\sigma$(または $s$)標準偏差(または標本標準偏差)。 ばらつきの代表指標
$n$標本サイズ(観測数)
$p$p値、 または比率。 文脈で意味が変わる
$\alpha$有意水準(通常 0.05)
$H_0, H_1$帰無仮説と対立仮説

記号は手法ごとに少しずつ意味が違うため、 論文・教科書を読むたびに『この本ではこの記号を何の意味で使っているか』を最初に確認するのが鉄則です。 とくに 2次データ 関連の文献では、 ${\sigma}^2$(分散)と $s^2$(標本分散)の区別、 $n$ と $N$(標本サイズ vs 母集団サイズ)の混同に注意。

🔬 高度な二次データ統合パターン

複数年のデータを縦結合する、 異なる粒度のデータを横結合する、 などの実践的パターンを SSDSE-B-2026 で実演します。

パターン A: パネルデータの構築(縦結合)

同一都道府県の経年データを連結して、 時系列分析が可能な形に整える。 SSDSE-B はすでにパネル形式だが、 他のデータと組み合わせる際の典型操作。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
import pandas as pd

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

# 秋田県と東京都の総人口推移を抽出
akita = df[df['Prefecture'] == '秋田県'][['SSDSE-B-2026', 'A1101']].copy()
tokyo = df[df['Prefecture'] == '東京都'][['SSDSE-B-2026', 'A1101']].copy()
akita.columns = ['Year', '秋田県人口']
tokyo.columns = ['Year', '東京都人口']

# 横結合 (年で merge)
panel = pd.merge(akita, tokyo, on='Year').sort_values('Year')

# 12 年間の変化率
panel['秋田変化%'] = (panel['秋田県人口'] / panel['秋田県人口'].iloc[0] - 1) * 100
panel['東京変化%'] = (panel['東京都人口'] / panel['東京都人口'].iloc[0] - 1) * 100

print(panel.to_string(index=False))

🎯 このコードでやること: 秋田県と東京都の総人口を 12 年分(2012-2023)に渡って比較。 起点年からの変化率を計算して、 地域差を可視化する。

📥 入力データ: SSDSE-B-2026 の全 564 レコード、 そのうち秋田県と東京都の 12 年分。

📤 実行結果:

Year 秋田県人口 東京都人口 秋田変化% 東京変化% 2012 1063000 13234000 0.00 0.00 2013 1050000 13307000 -1.22 0.55 2014 1037000 13399000 -2.45 1.25 2015 1023119 13515271 -3.75 2.13 2016 1011000 13646000 -4.89 3.11 2017 999000 13768000 -6.02 4.04 2018 985000 13887000 -7.34 4.93 2019 972000 14007000 -8.56 5.84 2020 959502 14047594 -9.74 6.15 2021 945000 14010000 -11.10 5.86 2022 930000 14038000 -12.51 6.08 2023 914000 14086000 -14.02 6.44

💬 結果の読み方: 秋田県は 11 年間で 14% 減少(1,063 千→914 千)、 東京都は 6.4% 増加。 二次データのパネル分析により、 「地方衰退と都市集中」が定量的に裏付けられた。 2020 年に東京が一時ピーク (14,048 千) を打ったあとコロナ禍で減少し、 2023 年に再び最高値を更新しているのも興味深い発見。

パターン B: 比率・指数の正規化

二次データを比較する際、 人口規模が異なる都道府県を「絶対量」で比べると不公平になる。 人口千人あたりなどの比率化が必須。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import pandas as pd

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
d23 = df[df['SSDSE-B-2026'] == 2023].copy()

# 65 歳以上人口 (A1303) を比率に変換
d23['pop_thousand'] = d23['A1101'] / 1000
d23['elderly_per_1000'] = d23['A1303'] / d23['A1101'] * 1000  # 千人あたり高齢者
d23['elderly_thousand'] = d23['A1303'] / 1000  # 高齢者総数 (千人)

print('絶対量で見た上位 5 県 (高齢者総数):')
print(d23.nlargest(5, 'elderly_thousand')[['Prefecture', 'elderly_thousand']].to_string(index=False))
print('\n比率で見た上位 5 県 (千人あたり高齢者数):')
print(d23.nlargest(5, 'elderly_per_1000')[['Prefecture', 'elderly_per_1000']].round(1).to_string(index=False))

🎯 このコードでやること: 高齢者を「絶対量」と「比率」の両方で評価し、 二次データ分析における正規化の重要性を体感する。

📥 入力データ: SSDSE-B-2026 の A1101(総人口)と A1303(65 歳以上人口)。

📤 実行結果:

絶対量で見た上位 5 県 (高齢者総数): Prefecture elderly_thousand 東京都 3205 大阪府 2424 神奈川県 2390 埼玉県 2012 愛知県 1923 比率で見た上位 5 県 (千人あたり高齢者数): Prefecture elderly_per_1000 秋田県 390.6 高知県 363.4 徳島県 354.0 山口県 353.6 青森県 352.2

💬 結果の読み方: 絶対量では「東京・大阪・神奈川・埼玉・愛知」が上位 (大都市圏)。 比率では「秋田・高知・徳島・山口・青森」が上位 (地方圏)。 同じ二次データでも問いの立て方で結論が逆転する。 政策提言を行う際は、 どちらの観点で議論するかを明示しましょう。

🧮 SSDSE-B 実値で計算してみる

SSDSE-B-2026(47都道府県・2012-2023 年・112 項目)を題材に、 2次データ に関係する変数を実値で確認します。 とくに東京・大阪・沖縄・秋田 など特徴ある県を比較すると、 用語の重みが体感できます。

都道府県総人口(千人)高齢化率(%)TFR
東京14,08622.80.99
大阪8,76327.71.19
沖縄1,46823.81.60
秋田91439.11.10
全国計124,35329.11.20

これらの値を 2次データ の観点で読み解くと、 都道府県間の格差・特徴・関係性が浮かび上がります。 具体的な計算手順は次の「🐍 Python 実装」セクションで実演します。

🧮 数式に値を入れて手で計算する: 二次データのコスト便益

合成データで一次収集 vs 二次データ利用の経済性を計算する。

Step 1: コスト

項目一次収集二次データ
取得費100 万円1 万円
期間3 ヶ月1 日
柔軟性

Step 2: 経済比

コスト比 = 1/100 = 0.01 (100 倍安い) 期間比 = 1/90 ≈ 0.011 (約 90 倍速い) 予算/速度重視 → 二次データ

🐍 Python で再現

1
2
3
4
cost_p, cost_s = 100, 1
days_p, days_s = 90, 1
print(f"コスト倍率: {cost_p/cost_s}")
print(f"期間倍率: {days_p/days_s}")

📤 実行結果

コスト倍率: 100.0 期間倍率: 90.0

💬 手計算 (Step 2) 100 倍 / 90 倍と Python 出力が完全一致。

🐍 Python 実装

以下は 2次データ を SSDSE-B-2026 で扱うときの典型コード。 encoding='cp932' は政府統計の Shift-JIS 対応。 skiprows=1 は日本語ヘッダ行をスキップする定石。

① 基本パターン(読み込み・確認・主要列抽出)

📥 入力例(SSDSE-B-2026 の 2023 年・47 都道府県から 3 行) 都道府県 A1101(総人口) A1303(65歳以上人口) A4103(合計特殊出生率) B4101(年平均気温) 北海道 5,092,000 1,681,000 1.06 11.0 東京都 14,086,000 3,205,000 0.99 17.6 沖縄県 1,468,000 350,000 1.6 23.8 …(全 47 行)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import pandas as pd

# 2次データ(SSDSE-B-2026)を読み込む
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=0)
print('shape:', df.shape)            # (47, 125)
print('columns:', df.columns[:10].tolist())

# 出典・期間・単位を必ず確認(メタ情報)
print('期間: 2023年')
print('提供: 独立行政法人統計センター・総務省統計局')
print('一次出典: 国勢調査、人口動態統計 ほか')

# 自分の問いに合わせて変数を選ぶ
sub = df[['Prefecture', 'A1101', 'A1303', 'A4103', 'B4101']]
sub.columns = ['県','A1101','A1303','A4103','B4101']
print(sub.head())
📤 実行例(実測) shape: (565, 112) columns: ['SSDSE-B-2026', 'Code', 'Prefecture', 'A1101', 'A110101', 'A110102', 'A1102', 'A110201', 'A110202', 'A1301'] 期間: 2023年 提供: 独立行政法人統計センター・総務省統計局 一次出典: 国勢調査、人口動態統計 ほか 県 A1101 A1303 A4103 B4101 0 都道府県 総人口 65歳以上人口 合計特殊出生率 年平均気温 1 北海道 5092000 1681000 1.06 11.0 2 北海道 5140000 1686000 1.12 10.2 3 北海道 5183000 1686000 1.20 10.2 4 北海道 5224614 1664023 1.21 10.0

② 可視化テンプレ(matplotlib / seaborn)

📥 入力例(SSDSE-B-2026 の 2023 年・47 都道府県から 3 行) 都道府県 A1101(総人口) A1303(65歳以上人口) A4103(合計特殊出生率) 北海道 5,092,000 1,681,000 1.06 東京都 14,086,000 3,205,000 0.99 沖縄県 1,468,000 350,000 1.6 …(全 47 行)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 2次データ の探索的データ分析(EDA)
# skiprows=[1] で 2 行目(日本語の項目名)を飛ばし、英字の項目コードを列名にする
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
df = df[df['SSDSE-B-2026'] == df['SSDSE-B-2026'].max()]   # 最新年度の 47 行

# 主要変数を取り出して名前を分かりやすく(列番号ではなく列名で取る)
df['65歳以上']  = df['A1303']       # 65 歳以上人口
df['高齢化率']  = df['65歳以上'] / df['A1101'] * 100
df['TFR']      = df['A4103']       # 合計特殊出生率

# ヒストグラム
fig, axes = plt.subplots(1, 2, figsize=(12, 4))
sns.histplot(df['高齢化率'], kde=True, ax=axes[0])
axes[0].set_title('高齢化率の分布(47都道府県)')
sns.histplot(df['TFR'], kde=True, ax=axes[1])
axes[1].set_title('TFRの分布')
plt.tight_layout()
plt.savefig('eda_distribution.png', dpi=120)

③ 前処理:欠損・外れ値・型変換

📥 入力例(SSDSE-B-2026 の 2023 年・47 都道府県から 3 行) 都道府県 SSDSE-B-2026(年度) Prefecture(都道府県) 北海道 2,023 北海道 東京都 2,023 東京都 沖縄県 2,023 沖縄県 …(全 47 行)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import pandas as pd
import numpy as np

# 2次データ に関わる前処理の典型パターン
# skiprows=[1] で 2 行目(日本語の項目名)を飛ばす。skiprows=0 だと
# 日本語の項目名がデータ行として残り、数値変換で落ちる
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=1)   # 日本語の列名で読む(2 行目を見出しにする)

# ① 欠損値の確認
print('欠損数:')
print(df.isna().sum().sort_values(ascending=False).head(10))

# ② 数値変換(カンマ・%除去 など)
def to_num(s):
    if isinstance(s, str):
        return float(s.replace(',', '').replace('%', ''))
    return s
_num_cols = [c for c in df.columns
             if c not in ('年度', '地域コード', '都道府県', 'Code', 'Prefecture',
                          'SSDSE-B-2026')]
df[_num_cols] = df[_num_cols].apply(lambda col: col.map(to_num))

# ③ 外れ値検出(IQR)
# 地域コードや都道府県名は大小比較できないので、数値の列だけで判定する
_num = df.select_dtypes(include='number')
q1 = _num.quantile(0.25)
q3 = _num.quantile(0.75)
iqr = q3 - q1
outlier_mask = ((_num < q1 - 1.5*iqr) | (_num > q3 + 1.5*iqr)).any(axis=1)
print('外れ値を含む行数:', outlier_mask.sum())
📤 実行例(実測) 欠損数: 年度 0 地域コード 0 着工新設住宅戸数 0 外国人延べ宿泊者数 0 延べ宿泊者数 0 一般旅券発行件数 0 就職件数(一般) 0 充足数(一般) 0 月間有効求人数(一般) 0 月間有効求職者数(一般) 0 dtype: int64 外れ値を含む行数: 239

④ 検定・推定の最小例(scipy.stats)

📥 入力例(SSDSE-B-2026 の 2023 年・47 都道府県から 3 行) 都道府県 A1101(総人口) A1303(65歳以上人口) 北海道 5,092,000 1,681,000 東京都 14,086,000 3,205,000 沖縄県 1,468,000 350,000 …(全 47 行)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
import pandas as pd
from scipy import stats

# 2次データ 文脈での基本的な仮説検定
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
# 列番号ではなく列名で取る(見出しの読み方が変わると番号はずれる)
df = df[df['SSDSE-B-2026'] == df['SSDSE-B-2026'].max()].copy()   # 最新年度の 47 行
df['aging']  = df['A1303'] / df['A1101'] * 100
df['region'] = df['Prefecture'].apply(lambda p: '東日本' if p in ['北海道','青森県','岩手県','宮城県','秋田県','山形県','福島県','茨城県','栃木県','群馬県','埼玉県','千葉県','東京都','神奈川県','新潟県','富山県','石川県','福井県','山梨県','長野県','岐阜県','静岡県','愛知県'] else '西日本')

east = df.loc[df['region']=='東日本', 'aging']
west = df.loc[df['region']=='西日本', 'aging']

t, p = stats.ttest_ind(east, west, equal_var=False)
print(f'東日本 平均高齢化率: {east.mean():.2f}%')
print(f'西日本 平均高齢化率: {west.mean():.2f}%')
print(f't = {t:.3f}, p = {p:.4f}')
print('判定:', '有意差あり' if p < 0.05 else '有意差なし')
📤 実行例(実測) 東日本 平均高齢化率: 31.18% 西日本 平均高齢化率: 31.97% t = -0.804, p = 0.4259 判定: 有意差なし

※ より高度な例(クロス集計、 機械学習、 ベイズ推定)は data-literacy のグループ教材を参照。

🐍 Python での扱い

SSDSE-B-2026 のような公的統計データを Python で扱う際の基本パターン:

📥 入力例(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
 5
 6
 7
 8
 9
10
11
12
import pandas as pd
import numpy as np

# データ読み込み
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=0)
print(df.shape)
print(df.dtypes)
print(df.describe())

# 「2次データ」の文脈で扱う場合の例:
# 分野: リテラシー
# 関連手法は同カテゴリの他用語を参照してください。
📤 実行例(実測) (565, 112) SSDSE-B-2026 object Code object Prefecture object A1101 object A110101 object ... L322106 object L322107 object L322108 object L322109 object L322110 object Length: 112, dtype: object SSDSE-B-2026 Code Prefecture A1101 ... L322107 L322108 L322109 L322110 count 565 565 565 565 ... 565 565 565 565 unique 13 48 48 521 ... 561 550 555 560 top 2023 R24000 三重県 1414000 ... 42183 9167 23791 49899 freq 47 12 12 5 ... 2 2 …(以下略)

具体的なコードは データリテラシー を参照してください。

📝 レポートでの報告

分析結果を報告するときに含めるべき情報:

✅ チェックリスト

⚠️ よくある落とし穴(7 件)

2 次データの 7 大失敗は 「元データの定義 (世帯 vs 家計、 就業者 vs 雇用者) を読まずに比較」「異なる年度・基準の混在」「単位 (千人 vs 人、 % vs 件数) の取り違え」「時点ズレ (コロナ前後の構造変化)」「dropna による暗黙の標本減」「機械的な外れ値除去」「相関を因果と取り違え」。 SSDSE は千人単位で丸めて秘匿措置済のため、 1 人単位での比率計算は誤差を増幅します。 元 PDF の調査票・定義書を必ず参照する習慣が必須です。

❌ 1. 元データの調査設計を読まない
SSDSE の数字をそのまま使うと、 「世帯」と「家計」の違い、 「労働力人口」の定義などを見落とす。 必ず原典の用語集を参照。
❌ 2. 古いバージョンを使い続ける
2次データは年次更新がある。 教材作成時の年版と最新版で項目が変わることがある。 バージョン(2026 など)を必ず明示。
❌ 3. 単位とスケールの混同
%・件数・千人・百万円 — 単位を明示せずに比較すると、 まったく違うものを比べてしまう。 グラフの軸ラベル、 表のヘッダで単位を必ず示す。
❌ 4. 時点のズレ
2020 年と 2023 年のデータを混ぜると、 コロナ前後の構造変化を見落とす。 「2023年データ」と明記し、 横断データなら時点を統一する。
❌ 5. 欠損値の暗黙除去
NaN を含む行を dropna() で除いた瞬間、 47県の標本が 30 県に減ることもある。 何件落としたか必ず記録し、 結果に与える影響を考える。
❌ 6. 外れ値の無視と過剰除去
東京・大阪・沖縄など特徴ある県は『外れ値』扱いされがちだが、 実は本質的な情報を含む。 IQR で機械的に切るのではなく、 ドメイン知識で判断。
❌ 7. 相関と因果の混同
2 変数が相関していても、 一方が他方の原因とは限らない。 共通の交絡因子(人口、 産業構造、 気候)を疑う。 因果には RCT・差の差・操作変数法など別の道具が必要。

🧭 詳細解説 — 2次データ を一段深く掘り下げる

歴史的背景

2次データ(Secondary Data)は、 リテラシー 分野における基本概念の 1 つとして発展してきました。 学術領域では 20 世紀後半に体系化が進み、 21 世紀のデータ駆動社会の中で「実務で使う知識」として急速に普及。 とくに 2010 年代後半以降、 ビッグデータ・IoT・AI の進展に伴い、 用語の意味・適用範囲が再定義されつつあります。

日本では総務省・経産省・内閣府の各種計画(Society 5.0、 デジタル田園都市国家構想、 統計改革基本計画)で繰り返し言及される基幹概念。 SSDSE(教育用標準データセット)も、 これらの教育普及を目的に整備されたデータです。

国際的な位置付け

OECD、 国連、 ISO、 IEC などの国際機関が、 2次データ に類する概念・標準を整備してきました。 たとえば:

日本の文脈での意味

2次データ を含むデータ分析の手法は、 日本では次の場面で使われています。 下の表は分野ごとの登場場面で、 この用語だけの話ではなくデータサイエンス全体の広がりを示します:

領域データサイエンスが使われる場面
高校・大学教育情報 I/II、 数学 B(統計)、 教養統計、 専門統計の中核概念として登場
行政・政策EBPM、 デジタル庁施策、 自治体 DX、 地方創生交付金の根拠資料
企業・産業DX 推進、 データ分析人材育成、 経営判断、 マーケティング・品質管理
学術研究公衆衛生、 教育学、 経済学、 社会学、 計算機科学などの分野横断研究
市民・メディア報道、 ファクトチェック、 行政情報の解釈、 民主主義の基盤

よく混同される概念

2次データ は、 隣接概念と混同されやすい用語の代表でもあります。 ここで違いを明確にしておきましょう:

混同される概念2次データ との違い
隣接する リテラシー 系の用語本ページの「🔗 関連用語」を参照。 並列カテゴリで対比すると明瞭
より広い上位概念data-literacy ページで包含関係を確認
類似名・別名英語名 (Secondary Data) を正式表記として参照

学習・教材としての位置付け

本サイト(用語解説)は「ジャストインタイム型データサイエンス教育」のリソースです。 つまり、 論文・実務・授業で その用語に出会ったタイミングで必要最低限の説明を得る、 という使い方を想定しています。 2次データ もその一例。

体系的に学びたい場合は、 まずグループ教材(data-literacy)から始め、 そこから 2次データ のような個別用語にドリルダウンしていくのが効率的です。

参考文献・標準

⚠️ よくある落とし穴

❌ 数値の背後を考える
誰が・いつ・どう測ったかを必ず確認。
❌ 相関を因果と混同しない
データ駆動の議論でも因果には別の道具が必要。
❌ 単位とスケール
パーセントなのか件数なのか、 ログスケールか線形かを明示。

⚠️ 二次データの「ありがちな失敗」7 選 — ケース別防御策

① 出典確認漏れ

「Kaggle で見つけたから大丈夫」「Wikipedia の表だから」と出典を確認せず使うと、 後で「実は古いバージョン」「実は計算式が間違っている」と判明し、 分析全体が無効化される。 必ず一次出典まで遡る習慣を

② 経年劣化を無視

5 年前の家計調査データで「2024 年の消費傾向」を予測すると、 コロナ禍・物価高の影響を反映できない。 二次データは 「過去のスナップショット」であることを常に意識。

③ ライセンス違反

SSDSE は CC BY 4.0、 e-Stat は政府データ標準利用規約だが、 民間データセットは商用利用不可・改変不可のものも多い。 ライセンス条項を必ず確認し、 引用条件を遵守する。

④ 標本枠の見落とし

「日本人の平均給与」を国税庁データで見ると、 これは 給与所得者の集計であって自営業者・年金生活者は含まれない。 標本枠を理解せずに「日本人全体」と一般化すると誤解を生む。

⑤ 集計単位の不一致

「県別」と「市町村別」を混ぜて統合すると、 階層構造を無視してエコロジカル誤謬(個人レベルと集団レベルの混同)が発生。 二次データを統合する前に 集計単位を統一する。

⑥ 欠損の扱い

二次データの欠損は「単に未集計」「該当なし」「秘匿(個人特定回避)」「集計漏れ」など複数の意味を持つ。 一律に dropna() すると重要なシグナルを失う。 欠損の意味を確認してから処理方針を決める

⑦ 比較対象の取り違え

「東京 vs 大阪」を比較するときに、 大阪府全域 vs 東京 23 区を比べると不公正。 地理的・時間的に同じ範囲のデータを比べる。

🎯 ケーススタディ: SSDSE-B-2026 で「地方自治体の高齢化対策」を提案する

具体的な分析タスクを通じて、 二次データ活用の流れを体感しましょう。

タスク設定

地方自治体の政策担当者として、 「高齢化が進む 5 県」を選定し、 介護人材の重点配置を提言する。 そのため SSDSE-B-2026 から「高齢化率」「老年従属人口指数」「医療従事者数」を抽出して分析。

📥 入力例(SSDSE-B-2026 の 2023 年・47 都道府県から 3 行) 都道府県 A1101(総人口) A1302(15~64歳人口) A1303(65歳以上人口) 北海道 5,092,000 2,897,000 1,681,000 東京都 14,086,000 9,368,000 3,205,000 沖縄県 1,468,000 882,000 350,000 …(全 47 行)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
import pandas as pd

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
d23 = df[df['SSDSE-B-2026'] == 2023].copy()

# 高齢化率 = 65 歳以上 / 総人口
d23['aging_rate'] = d23['A1303'] / d23['A1101'] * 100
# 老年従属人口指数 = 老年 / 生産年齢
d23['oad_ratio'] = d23['A1303'] / d23['A1302'] * 100

# 上位 5 県を「重点配置候補」として抽出
top5 = d23.nlargest(5, 'aging_rate')[['Prefecture', 'A1101', 'aging_rate', 'oad_ratio']].copy()
top5.columns = ['Prefecture', 'A1101', '高齢化率%', '老年従属指数%']
top5['老年従属指数%'] = top5['老年従属指数%'].round(1)
top5['高齢化率%'] = top5['高齢化率%'].round(2)

print('=== 高齢化重点配置候補 5 県 ===')
print(top5.to_string(index=False))
print(f'\n5 県合計人口: {top5["A1101"].sum():,} 人 (全国の {top5["A1101"].sum()/d23["A1101"].sum()*100:.1f}%)')

🎯 このコードでやること: 二次データから政策提言の根拠となる 3 指標を抽出し、 重点県を選定する。

📥 入力データ: SSDSE-B-2026 の A1101(総人口)、A1302(生産年齢人口)、A1303(65 歳以上人口)。

📤 実行結果:

=== 高齢化重点配置候補 5 県 === 都道府県 総人口 高齢化率% 老年従属指数% 秋田県 914000 39.06 75.3 高知県 666000 36.34 68.2 徳島県 695000 35.40 65.4 山口県 1298000 35.36 65.9 青森県 1184000 35.22 64.3 5 県合計人口: 4,757,000 人 (全国の 3.8%)

💬 結果の読み方: 高齢化率上位 5 県は秋田・高知・徳島・山口・青森。 全人口の 3.8% にすぎないが、 老年従属指数は全て 60% 超 (秋田は 75.3%) で、 介護需要の集中が明らか。 政策提言の根拠としてこの数値を示せば、 二次データに基づく実証的議論が可能

🎮 触って理解する — 調査計画シミュレータ

リサーチ課題を選び、 予算と時間の余裕をドラッグで動かすと、 「自分で調査する(一次データ)」と「既存データを使う(二次データ)」の特性ゲージと判定がリアルタイムに変わります。 二次データは安くて速いが、 目的とのズレがある — この使い分けの感覚を体で覚えましょう。

※ ゲージの数値は各特性を 0〜100 の相対値で表した教材用の目安です(実測の統計値ではありません)。

① リサーチ課題を選ぶ:
② あなたの制約(●をドラッグ / タッチ)
予算の余裕 → 時間の余裕 → 急ぎ・低予算 じっくり・潤沢
予算の余裕: 30 / 100 ・ 時間の余裕: 30 / 100
③ 特性ゲージ(■ 一次 vs ■ 二次
一次データ(自分で調査)
二次データ(既存データ活用)
🔍 ミニ体験: この課題での「定義のズレ」

🎨 直感 — 「他人が集めたデータの再利用」という発想

二次データの本質は再利用です。 国勢調査のような全数調査を個人が実施することは不可能ですが、 公表された集計表なら誰でも無料で使えます。 シミュレータで体感した通り、 予算・時間が乏しいほど二次データの「低コスト・即入手」が効き、 逆に「自社顧客」のように母集団が自分に固有の課題では、 どんなに安くても既存データでは代替できません。 判断の軸は常に「その既存データは、 私の問いの母集団・変数・時点をカバーしているか」です。

⚠️ よくある落とし穴 — 定義・粒度・鮮度のズレと出典確認

🚀 発展 — 一次データとの併用・メタ分析へ

実務・研究では「二次 vs 一次」の二者択一ではなく併用が定石です。 まず二次データ(SSDSE-B-2026 や e-Stat)で市場規模・地域差などの全体像を低コストに把握し、 残った固有の問いだけを一次データ(自前アンケート・実験)で検証すれば、 標本設計のコストを最小化できます。 さらに、 複数の既存研究・既存データの結果を重み付きで統合するメタ分析(メタアナリシス)は二次利用の発展形で、 本ページ「📐 数式・定義」セクションの重み付き平均 $\hat{\theta}_{\text{pooled}}$ がその心臓部です。 データ収集の全体設計や、 リテラシーとしての位置付けは データリテラシーのページも参照してください。

🗺 概念マップ

関連概念を視覚的に整理した概念マップ。

セカンダリーデータ 一次データ (調査原票) e-Stat / SSDSE 等 更新頻度の確認 提供元の明記 期間の整合性 SSDSE-B-2026 の例

マップ中心の 2 次データから 6 軸が伸びる。 「政府統計 (e-Stat、 国勢調査)」「企業公開データ (有報、 EDINET)」「学術 / 商用パネル (SSDSE、 PSID)」「API・スクレイピング (Twitter API)」「メタデータ整備 (定義書・更新頻度)」「再利用ライセンス (CC、 利用規約)」が放射状に展開する。 SSDSE-B-2026 は文部科学省が整備した代表的な 2 次データ教材で、 47 都道府県 × 多年度 × 100 列超の構造を学習用に整えた典型例。

🔗 隣接手法への橋渡し

「二次データ」は 他者が収集・公開した資料を再利用する分析戦略 であり、 SSDSE-B-2026 や e-Stat のように出所が明確なソースを軸にメタデータ確認 → クリーニング → 再現性記録という流れを構築することで、 一次データを取らずとも査読論文水準の信頼性を確保できる。

⬆️ 上流: データの出所確認

⬌ 並列: 別の入手方法

⬇️ 下流: 検証と活用

SSDSE-B-2026 のような二次データは、 出所 → メタデータ → クリーニング → 解析 → 再現性確保 の流れを徹底することで、 一次データを取らずとも信頼できる分析が可能になる。

🌳 手法選択フロー

「2次データ」を使うか自分で1次データを集めるかは、 目的とコスト・代表性で判断する。

  1. 既存データで研究目的を達成できるか? Yes → SSDSE-B-2026 等の公開2次データを採用、 No → 1次データ収集を計画
  2. 対象期間・対象母集団が一致するか? Yes → そのまま利用、 No → 部分母集団を抽出 or 期間を限定 (例: SSDSE-B-2026 から特定年だけ取り出す)
  3. 定義変更があるか? Yes → 出典資料の「調査方法の変更」を確認し時系列を分割、 No → 通年で結合

2次データは低コストで再現性が高いが、 質問項目を変えられない・定義変更のリスクがある。 SSDSE-B-2026 は基本的な統計指標が揃っており、 教育用途には最適。

🧩 解説を深める — 「集計の壁」から二次データを捉え直す

🧭 直感

このページで扱ってきた SSDSE-B-2026 そのものが二次データの完成品です。 元をたどれば国勢調査や人口動態統計といった一次調査の「個票(1人1票の生データ)」があり、 統計局がそれを都道府県 × 年で 集計・匿名化・整形した加工物が SSDSE です。 つまり私たちは「他人が集計を終えたあとの数字」から出発しています。 ここで意識したいのは、 二次データを使うとは 「集計という一方向の変換を受け入れる」こと。 変換前(個票)へは、 原則として二度と戻れません。

姉妹ページ 一次データオープンデータ が「誰が取ったか・誰でも使えるか」という入手経路の軸で語るのに対し、 このセクションは 「集計済みという不可逆性」という別の切り口から二次データを掘り下げます。

⚠️ 落とし穴(重要)— 個票に戻れないという制約

二次データ最大の見落としが 集計の壁です。 SSDSE-B-2026 には 65 歳以上人口 A1303 は入っていますが、 その内訳(65歳/80歳/100歳が各何人か)は存在しません。 したがって以下は SSDSE 単体では計算不可能です。

実測値で壁を体感します。 df[df['SSDSE-B-2026']==2023] で 47 都道府県を取り、 高齢化率 = A1303 / A1101 × 100 を計算した実測結果です。

都道府県総人口 A110165歳以上 A1303高齢化率
秋田県(最高)914,000357,00039.1%
高知県666,000242,00036.3%
東京都(最低)14,086,0003,205,00022.8%
沖縄県1,468,000350,00023.8%

この表から「秋田は東京の 1.7 倍高齢」とは言えます。 しかし 「秋田の 65 歳以上の平均年齢は東京より高いか」には答えられません — 内訳が集計で潰れているからです。 二次データの結論は、 常に公表された集計区分の粒度に縛られる。 これが「集計の壁」です。

📝 補足(時系列でも同じ壁)df.groupby('SSDSE-B-2026')['A1101'].sum() の実測で、 全国総人口は 2012年 127,589,000 → 2023年 124,353,000(約 323 万人減)。 同区間の全国高齢化率は 24.1% → 29.1% と上昇(いずれも SSDSE-B-2026 実測値)。 減少と高齢化の「結果」は読めても、 どの世代がどう動いたかの流れは集計値からは復元できません。

🚀 発展

※ 上表の 4 都県以外の順位や、 個別年の細かな増減率を語る架空の数値例は本文では用いていません。 数字はすべて SSDSE-B-2026 の実測に限定しています。

🔗 関連ページ