論文一覧に戻る 📚 用語集トップ 🗺 概念マップ
📚 用語解説
📚 用語解説
合成データ
Synthetic Data
リテラシー
別称: シミュレーションデータ

🔖 キーワード索引

#合成データ#シミュレーション#GAN#data augmentation#プライバシー#ベンチマーク

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

合成データ synthetic dataGAN / VAESDV / CTGAN差分プライバシー DPk-匿名化との対比分布忠実度 KS 検定機械学習有用性 ML utilityプライバシーリークmembership inferenceサロゲートデータtabular / 画像 / 時系列Monte Carlo シミュレーション対比

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

💡 30秒で分かる結論

🍰 まずはやさしく

コンピューターが作った人工的なデータです。

テストや個人情報の保護のために使います。

スマホアプリの動作確認などに役立ちます。

まずは結論を短くまとめて読みましょう。

合成データ:シミュレーション等で生成されたデータ

📍 文脈ボックス

🍰 まずはやさしく

データの扱い方に関する知識のひとつです。

正しく使い分けるために学びます。

部活の記録をまとめる時のような感覚です。

この用語の詳しい意味と使い方を学びます。

この用語は リテラシー カテゴリに属します。 関連する別称・略号:シミュレーションデータ

論文・実務レポートで 合成データ が登場したら、 まず本ページの「30秒で分かる結論」と「直感で掴む」を読めば、 その文脈で何を言っているか把握できます。

本ページでは「simulated data」を扱う。 統計データ分析コンペティション (2026) の教材で、 SSDSE-B-2026 (47 都道府県 × 複数年 × 100 超列) の実データを使った再現可能な学習を目指す。

「simulated data」は統計・データサイエンスの体系における重要概念のひとつ。 本ページは「定義・直感・数式・実装・落とし穴・関連手法」の 6 視点で構成され、 各視点は独立して読めるが順序通り読むと体系的な理解が得られる。

🎨 直感で掴む

🍰 まずはやさしく

本物そっくりの「作り物」のようなデータです。

個人情報を守りつつ分析するために使います。

名簿の代わりに架空の人物を作るイメージです。

どうやって作るのか、直感的に理解しましょう。

本物の顧客データは個人情報リスクが高くて社外共有できない ── そこで「統計的性質は似ているが架空のデータ」を生成して開発・研究に使う。 これが 合成データ (Simulated/Synthetic Data)。 たとえば SSDSE-B-2026 の 47 都道府県データから「平均人口 265 万・標準偏差 280 万、 出生率との相関 -0.56」という統計量を抽出し、 同じ分布から 1 万件サンプリングすれば、 個人特定不可能で機械学習可能な大規模データが手に入ります。

主な生成手法は (1) 分布サンプリング (多変量正規・コピュラ)、 (2) ルールベース (業務ロジック + 乱数)、 (3) 深層生成モデル (GAN・VAE・拡散モデル)、 (4) 差分プライバシー付き合成 (PATE-GAN・DP-WGAN)。 用途は ML テスト・データ拡張・希少クラス補強 (SMOTE)・組織間データ共有・規制対応。 ただし教育目的では「現実の癖 (外れ値・欠損・分布の歪み)」が再現されにくいため、 本サイトでは SSDSE などの実データを優先する方針です。

📐 定義・数式

🍰 まずはやさしく

本物のデータの性質を真似して作ります。

計算でデータを再現するために使います。

買い物などの傾向を数式で表すようなものです。

定義や計算の方法について詳しく読みましょう。

【合成データの一般形】
$$ \mathbf{x}_{\text{syn}} \sim P_{\text{model}}(\mathbf{x}; \boldsymbol{\theta}) \approx P_{\text{real}}(\mathbf{x}) $$

合成データ $\mathbf{x}_{\text{syn}}$ は、 実分布 $P_{\text{real}}$ を近似したモデル分布 $P_{\text{model}}$ からサンプリングする。 GAN・VAE・SMOTE・ベイズ生成モデルなどで具体的に実装。

🔬 数式を言葉で読み解く

数式に出てくる記号の意味を 1 つずつ確認しましょう。

$P_{\text{real}}$
本物のデータが従う分布 (不可知)。
$P_{\text{model}}$
学習された生成モデルの分布。
$\boldsymbol{\theta}$
生成モデルのパラメータ。
Fidelity
実データへの忠実度。 合成データの品質指標。

🧮 実値で計算してみる

本サイト方針上、 合成データを「使う」ではなく「合成データの落とし穴を理解する」ことが目的。

STEP 1 目的の確認
プライバシー保護?テスト?データ拡張?目的次第で手法が変わる。
STEP 2 生成手法選択
ルールベース/SMOTE/GAN/拡散モデル。
STEP 3 品質評価
実データとの統計的距離 (KL, Wasserstein) を測定。
STEP 4 プライバシー監査
メンバーシップ推論攻撃に耐えるか検証。

🧮 数式に値を入れて手で計算する: シミュレーション収束

合成 1 シミュレーションで N 試行と母平均推定誤差を計算する。

Step 1: 試行

真値 μ = 0 N 別の標本平均 (合成): N=100: x̄=0.05 N=1000: x̄=0.01 N=10000: x̄=0.003

Step 2: 誤差スケール

|誤差| は 1/√N でスケール 100→10000 (100 倍) → 誤差 1/10 (0.05→0.005)

🐍 Python で再現

1
2
3
4
import numpy as np
N = np.array([100, 1000, 10000])
err = 0.05 * np.sqrt(100/N)
print(f"誤差: {err.round(4)}")

📤 実行結果

誤差: [0.05 0.0158 0.005 ]

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

🐍 Python 実装

最小実装の例。 SSDSE のような実データに対して、 まずはコピペで動かしてみるのが理解の早道です。

1
2
3
4
5
6
7
# 本サイトでは原則として実データを使います
# 合成データの代表的な使い方 (例:不均衡対策)
from imblearn.over_sampling import SMOTE
import pandas as pd
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', skiprows=1, encoding='cp932')
# X, y を準備し、 SMOTE で少数クラスを合成
# X_res, y_res = SMOTE().fit_resample(X, y)

⚠️ よくある落とし穴

合成データの実装事故は 「Fidelity (忠実性) と Privacy (再特定耐性) のトレードオフ無視」「教育で安易な乱数生成 → 現実の癖を学べない」「実データの分布外領域への汎化失敗」「Membership Inference Attack で訓練データが復元される」の 4 つが代表例。 2020 年の MIT 研究で、 GAN 合成データから元データの 30% が再特定された事例もあり、 「合成 = 安全」と思い込むのが最大の罠です。

❌ 教育で安易に乱数データを使う
現実の癖 (外れ値・欠損・分布偏り) が学べない。 実データ優先。
❌ Fidelity と Privacy のトレードオフ
実データに近づけるほど個人再特定リスクが上がる。
❌ 分布外を再現しない
GAN は学習データの分布外の事象を生成できない。
❌ 評価で錯覚
合成データだけで評価すると性能を過大評価しがち。

🗺 概念マップ

「simulated data」を中心とした関連概念マップ。

シミュレーションデータ 確率分布 モンテカルロ法 生成モデル GAN シナリオ分析 実測データ ベイズ事前分布

マップ中心の合成データから 6 軸が伸びる。 「モンテカルロ法 (確率分布からの抽出)」「GAN/VAE (深層生成モデル)」「データ拡張 (画像・テキスト)」「差分プライバシー (匿名化)」「シミュレーション (物理・経済モデル)」「ベンチマーク用合成 (アルゴリズム評価)」の 6 系統が中央から放射状に伸び、 SSDSE-B-2026 の構造を真似た模擬データセットを生成する用途で頻繁に組み合わされる。

🔗 隣接手法への橋渡し

「シミュレーションデータ」は 真の生成過程が分かっている人工データ として、 上流の仮説設計と下流の手法検証・教育用ハンズオンを繋ぐ。 実データ不足時の代替や、 privacy 制約下での共有データ作成、 検出力計算など多様な役割を持つが、 必ず「合成である」明示が求められる。

⬆️ 上流: 生成モデルの選定

⬌ 並列: 他のデータ源

⬇️ 下流: 検証・解釈

シミュレーションデータは仮説検証・必要サンプル推定の道具で、 確率分布の選定 → 乱数 seed 固定 → 感度分析 → 実データ検証 のサイクルで「理論と現実の橋渡し」になる。

🌳 手法選択フロー

「合成データ」を扱う際の手法選択は、 状況に応じて以下のフローで判断すると迷いが減る。

  1. Step 1: 目的は記述か予測か?
    • 記述 (現状把握・要約) → 集計・可視化・要約統計量で全体像を掴む
    • 予測 (未知データへの推定) → モデル構築・検証フェーズへ移行
  2. Step 2: データの種類・規模は?
    • 数値・連続変数 → 確率分布からの直接サンプリング (rnorm / rbeta / rgamma)
    • カテゴリ変数中心 → SDV (Synthetic Data Vault)CTGAN で表構造を保ったまま生成
    • 大規模・高次元 → モンテカルロベースの逐次サンプリングや並列化 (multiprocessing / Dask)
    • 時系列・時間依存 → ARIMA 残差ブートストラップ / VAR からの予測サンプリング
    • プライバシー考慮 → 差分プライバシー (DP-SGD) 付きの生成、 元データ復元リスクを定量化
  3. Step 3: 結果の解釈・共有は?
    • 専門家向け → 数値指標・統計検定で精緻に評価
    • 非専門家向け → 可視化・自然言語での要約を重視

このフローに沿って判断することで、 「合成データ」を中核とした適切な手法選択ができる。

🎮 触って理解する

合成データの本質は「データ生成モデルを自分で決めて、そこからデータを作る」ことです。 ここでは真の直線モデル $y = \beta_0 + \beta_1 x + \varepsilon$($\varepsilon \sim N(0, \sigma^2)$)を指定し、そこから合成データを生成します。 生成したデータに最小二乗法(OLS)で回帰を当て、真のパラメータをどれだけ復元できるかを体感してください。 スライダーを動かすと図と数値がリアルタイムで更新されます。 図の上をドラッグ(タッチ可)すると真の直線を直接動かせます。

パラメータ真値推定値誤差
傾き β₁
切片 β₀
決定係数 R²

スライダーを動かしてみましょう。

直感:真のモデルを決めてデータを作る

実データ分析では「真の生成過程」は不可知で、手元のデータから推定するしかありません。 合成データはこの矢印を逆向きに使います ── まず自分が「正解」(β₀, β₁, σ)を決め、そこからデータを作る。 だから正解を知った状態で手法を採点できるのです。 上のツールでノイズ σ を 0 に近づけると点が直線に乗り、推定値(青の破線)が真値(橙の実線)にピタリ重なります。 逆に σ を大きくすると点が散らばり、推定は真値から外れます。 n を増やすと、同じノイズでも推定の傾き誤差が小さくなる ── これは推定量の標準誤差が $1/\sqrt{n}$ で縮む性質そのものです。

よくある落とし穴:生成前提への依存と現実との乖離

このツールは「線形・等分散・正規ノイズ・x と ε は独立」という前提で作っています。 もし現実のデータが曲線的だったり、分散が x とともに増える(不等分散)としたら、この前提で作った合成データはその癖を持ちません。 「合成データで手法がうまくいった」=「実データでもうまくいく」ではないのは、合成が前提に閉じているから。 生成モデルが実分布を外していれば($P_{\text{model}} \neq P_{\text{real}}$)、そこで検証した結論は現実で崩れます。 ノイズの分布形と、確率分布の選び方が合成の質を決めます。

発展:この仕組みは何に使われるか

関連:生成 AI(GAN・VAE)、ブートストラップ(実データから再標本化する別ルート)、実データとの対比、乱数(seed 固定で再現性を担保)。

🧭 深掘り追補 ── 直感・落とし穴・発展をもう一段

本ページの各章を踏まえ、 直感 → 落とし穴 → 発展 の順で理解をもう一段深めます。 この追補の数値は SSDSE-B-2026(2023 年・47 都道府県、 encoding='cp932', skiprows=[1])の実測と、 その実データから作った合成データ(架空・再現可能)の対比のみで構成しています。

🎨 直感:矢印を「逆向き」に回す

実データ分析は「観測データ → 真の生成過程を推定する」向きに進みます。 合成データはこの矢印を逆に回す営みです ── まず人間が数式・モデル(真の生成過程)を先に決め、 そこからデータを人工的に生成する。 だからこそ 真値が既知 のまま手法を採点でき(手法検証)、 個人を特定できない架空データを共有でき(プライバシー保護)、 少数クラスを水増しできます(データ拡張)。 一言でいえば合成データは「実データの統計的な影」であり、 実データそのものの代替ではありません。

⚠️ 落とし穴(重要)── 実測で崩れる「綺麗すぎる幻想」

最大の誤解は「合成データは実データより綺麗で扱いやすい」。 実際には、 生成モデルの仮定が実データの複雑さに合っていないと、 綺麗どころか破綻します。 SSDSE-B-2026 の実測で確かめましょう。 下表は実データ 47 件と、 そこから推定した平均ベクトル・共分散で 多変量正規分布から 470 件を生成した合成データ(架空, numpy seed=42) の対比です。

指標実データ n=47(実測)合成データ n=470(架空・多変量正規, seed=42)
高齢化率(老年人口/総人口)の平均31.59%26.20%(破綻)
高齢化率の標準偏差3.34%37.94%(爆発)
総人口×老年人口の相関r = 0.991r = 0.989(ほぼ保持)
総人口の最小値約 537,000(実在の最小県)−5,545,083(負の人口!)
負の総人口を生成した件数0 / 4772 / 470

読み方: 平均・相関という低次の統計量は合成でもほぼ保たれます(相関 0.991 → 0.989)。 ところが多変量正規は値域を無視するため、 470 件中 72 件で負の人口という物理的にあり得ない値を生成しました。 高齢化率は「老年人口 ÷ 総人口」なので分母が負になると意味を失い、 標準偏差が 3.34% → 37.94% と爆発します。 「合成データは綺麗で楽観的」という思い込みが、 いかに危ういかの実測的証拠です(対処は本文の np.clip・対数変換・Copula/CTGAN 移行)。

❌ 生成モデルの仮定に依存する
多変量正規・線形・等分散などの仮定が実分布とズレると、 上表のように破綻する。 $P_{\text{model}} \neq P_{\text{real}}$ のまま検証した結論は現実で崩れる。
❌ 実データの複雑さ(癖)を再現できない
外れ値・欠損・分布の歪み・希少事象・変数間の非線形依存は、 合成では取りこぼされやすい。 「綺麗すぎる合成」は現実の難しさを学べない。
❌ シミュレーションと現実のギャップを忘れる
合成データで手法が「うまくいった」=実データでも成功、 ではない。 検証には有用だが、 本番性能とは別物。 主結論は必ず実データで再検証する。
❌ 偏り(バイアス)を継承・増幅する
元データに含まれる偏りは合成にそのまま引き継がれ、 少数派の表現がさらに崩れることもある。 「合成だから中立」ではない。
❌ 乱数シード・再現性を記録しない
上表が再現できるのは seed=42 を固定したから。 シードとハイパーパラメータを残さないと、 合成データの結果は二度と再現できず検証不能になる。

🚀 発展:合成データの周辺地図

🔗 関連ページ

サイト内の関連用語(存在するページのみリンク): 真の生成過程ブートストラップGAN生成 AI拡散モデルプライバシー実データクラス不均衡検出力分析交差検証再現性の危機確率分布ノイズ乱数。 未作成のためテキストのみ:データ拡張(Data Augmentation)/モンテカルロ法/VAE/差分プライバシー(Differential Privacy)/SMOTE。