はじめに
Orbitics株式会社 データサイエンス部の上野です。
データ分析を学び始めた方が最初につまずくのは、分析手法そのものではなく、その前段階の「設計」です。
現場では「とりあえずSQLを動かす」「グラフを作る」といった手法先行型の分析がよく見られますが、なぜ分析を行うのか(Why)、何を明らかにしたいのか(What)を明確にできなければ、成果が断片的になりがちです。
本記事では、データ分析の上流工程である 目的設計(Why) と 分析設計(How / Where) を体系的に整理し、実務で頻出するシナリオをもとに「成果につながる分析設計」の考え方を解説します。
特に次のようなケースで役立つ内容です。
- 顧客離脱率を分析して原因を明らかにしたい
- キャンペーン効果を定量的に評価したい
- KPIダッシュボードを設計して経営層に示唆を提供したい
💡 本記事のゴール
- 分析を「意思決定のための設計プロセス」として捉えられるようになる
- 実務で再現可能な設計(スコープ・指標・データ構造)を明確化できるようになる
- 現場でそのまま使えるテンプレートを理解する
1. 目的設計:分析の「Why」を定義する
分析を「数値の集計」で終わらせず、意思決定に資する知見を得るためには、
背景 → 問題 → 課題 → 目的 の流れで構造的に考えることが重要です。
1.1 例1:顧客離脱率の上昇を分析したいケース
| 区分 | 内容 |
|---|---|
| 背景 | サービス全体の契約者数は横ばいだが、30代女性層の利用頻度が前年より低下傾向。アンケートでは「利用メリットが分かりづらい」という声が多い。 |
| 問題 | 特定セグメント(30代女性)の離脱率が前年同期比で +5pt 上昇しており、顧客維持率が悪化している。 |
| 課題 | 離脱の主な要因を行動・属性の両面から特定し、改善策に繋がる形で可視化する必要がある。 |
| 目的 | 離脱顧客の特徴を定量的に明確化し、リテンション施策の対象層を特定する。 |
🔍 補足:
問題: 観測される現象(何が起きているか)や現状とのギャップ。
課題: その現象に対して「どの方向で、何を検証すべきか」を示す、分析の具体的な問い(検証仮説の設計へ繋がる)。
目的: 分析によって得たい意思決定内容を定義します。
1.2 例2:キャンペーン効果を可視化したいケース
| 区分 | 内容 |
|---|---|
| 背景 | 広告費は前年比120%に増加しているが、全体売上の伸びは横ばい。媒体ごとの成果を定量的に把握できていない。 |
| 問題 | 各媒体・チャネル別のROI(費用対効果)が不明で、投資配分の最適化ができていない。 |
| 課題 | 効果測定を正しく行うためのKPI体系・データ設計を整備し、横断的にROIを算出する必要がある。 |
| 目的 | 媒体別ROIを算出し、次期キャンペーン予算を合理的に再配分する。 |
🎯 ポイント
- 背景: 現状や文脈を説明する
- 問題: 何が起きているかを定量的に把握する
- 課題: どの方向で改善・検証すべきかを明確にする
- 目的: 分析によって得たい知見や意思決定内容を定義する
この流れを明文化することで、分析が「数値報告」から「戦略的な意思決定支援」へと進化します。
2. 分析設計:アウトプットイメージを実現するための設計図
目的が定まったら、次に必要なのはアウトプットイメージを実現するための設計です。
どれだけ良い仮説を立てても、設計が曖昧ではアウトプットに辿り着けません。
分析設計とは、
「求めるアウトプットを実現するために、どのようなデータを、どの粒度・範囲・構造で扱うか」
を定義する工程です。
2.1 アウトプットイメージの設計
分析結果の最終形(グラフ・表・ダッシュボードなど)を具体的に描きます。
最初にアウトプットを定義することで、必要なデータ粒度・項目・軸が明確になります。
🧩 顧客離脱率分析の例
※以下の数値はすべて架空データ(サンプル)です。
目的: 離脱顧客の特徴を把握し、リテンション施策の対象を特定する
| 属性 | 指標 | 離脱率 | 前年比 | 対全体比 |
|---|---|---|---|---|
| 男性20代 | 利用者数 | 12.5% | +2.1pt | 0.8倍 |
| 女性20代 | 利用者数 | 15.3% | +3.5pt | 1.1倍 |
| 男性30代 | 利用者数 | 13.9% | +0.9pt | 0.9倍 |
| 女性30代 | 利用者数 | 20.4% | +5.2pt | 1.4倍 |
| 男性40代 | 利用者数 | 11.2% | −0.5pt | 0.7倍 |
想定イメージ: 「女性30代」の離脱率が突出し、全体平均(14.8%)を大きく上回る。
📊 クロス集計の具体例(離脱率×利用頻度)
※以下の数値は架空データです。
| 利用頻度/月 | 離脱率(%) |
|---|---|
| 1回未満 | 32.5 |
| 1〜2回 | 18.4 |
| 3〜5回 | 9.7 |
| 6回以上 | 5.2 |
想定イメージ: 離脱率は利用頻度と負の相関(例:r ≈ −0.8)を示す。定常利用の維持が鍵。
📈 離脱顧客の最終利用日分布(ヒストグラム相当の集計表)
※以下の数値はサンプルデータです。
| 経過日数(最終利用から) | 離脱顧客数 |
|---|---|
| 0–30日 | 530 |
| 31–60日 | 920 |
| 61–90日 | 1,210 |
| 91日以上 | 3,420 |
想定イメージ: 91日以上の非利用者が過半(約57%)。「90日以内リカバリー施策」の検討余地。
📣 キャンペーン効果分析の例(媒体別ROI)
※以下の数値は架空データ(サンプル)です。
| 媒体 | 費用(万円) | CV数 | 売上(万円) | ROI |
|---|---|---|---|---|
| Google広告 | 300 | 600 | 720 | 2.4 |
| 200 | 240 | 320 | 1.6 | |
| Twitter(X) | 150 | 120 | 110 | 0.7 |
| メール配信 | 80 | 180 | 260 | 3.3 |
| 紙DM | 100 | 90 | 95 | 0.9 |
想定イメージ: ROI最大はメール配信(3.3)。Twitterは改善余地あり。
🪜 トレンド分析例(キャンペーン接触有無×CVRの時系列)
※以下の数値は架空データです。
| 月 | 接触ありCVR | 接触なしCVR | 差分(pt) |
|---|---|---|---|
| 4月 | 6.3 | 3.2 | +3.1 |
| 5月 | 7.1 | 3.8 | +3.3 |
| 6月 | 5.8 | 3.5 | +2.3 |
| 7月 | 8.0 | 3.9 | +4.1 |
| 8月 | 6.9 | 3.6 | +3.3 |
想定イメージ: 接触群CVRは非接触群の約2倍で安定。年間配分の基準に利用可能。
💡 Tips(モックの合意形成)
- 手書きでも良いのでアウトプットのモック(表・グラフ)を事前共有し、粒度・定義・集計軸を合意する。
- 合意時にスコープ(母集団・期間・除外条件)と指標定義(分子・分母・小数点の扱い)を必ず明記する。
🧱 3階層でのアウトプット設計
- 数値表(クロス集計):離脱率・ROIなどの基礎比較
- グラフ(折れ線・棒・ヒスト):変化・偏りを可視化
- 想定イメージ(仮説):意思決定につながる要点を明文化
2.2 スコープ(母集団・期間・条件)の定義
アウトプットを正しく解釈するためには、どのデータを対象とした分析なのか(母集団)を明確にする必要があります。
スコープは、アウトプットの“土台”です。
たとえば上記の離脱率表を作る場合、以下のようなスコープ定義が必要になります。
| 要素 | 定義例 |
|---|---|
| 母集団 | FY24中に特定サービスを1回以上利用した会員 |
| 分析期間 | 2025/4/1 ~ 2025/9/30 |
| 除外条件 | 法人・テストユーザー除外 |
| 地域条件 | 国内利用者限定 |
スコープを定義することで、「離脱率20.4%」という数値がどの範囲を指すのかが明確になります。
この定義が曖昧だと、他チームとの比較や再現が困難になります。
2.3 集計項目・軸の設計
次に、「表をどう作るか」を定義します。
アウトプットの列・行・指標を分解すると、必要な集計軸(カテゴリ)と集計項目(数値指標)が見えてきます。
| 種別 | 例 | アウトプットとの関係 |
|---|---|---|
| 集計軸(カテゴリ) | 性別、年代、地域、会員ステータス | 表の行見出しを形成(例:女性30代) |
| 集計項目(数値指標) | 利用者数、離脱率、平均購入単価 | 表の列(指標値)を形成 |
例:
- 「離脱率」は、
離脱者数 / 対象母集団で算出する必要がある - 「前年比」は、
当期値 − 前期値の差分として定義する必要がある
こうした定義を明確化しておくことで、分析者が変わっても同じアウトプットを再現可能になります。
3. データソース設計と加工フロー
分析設計を実現するために、データ構造を定義します。
3.1 データソースの定義
| ソース | テーブル名 | 主なカラム |
|---|---|---|
| データベース | user_master | user_id, gender, age, member_status |
| データベース | service_usage_log | user_id, usage_date, service_id |
| ファイル | monthly_target.csv | month, target_value |
Excelや外部CSVも含め、すべてのデータ出所を明示することで、
分析の再利用性・監査性を高めることができます。
3.2 結合・加工設計
| From → To | 結合キー | 結合方式 |
|---|---|---|
| user_master → service_usage_log | user_id | Left Join |
| service_usage_log → monthly_target | month | Left Join |
SQL例
SELECT
u.user_id,
u.gender,
s.usage_date,
s.service_id,
t.target_value
FROM user_master AS u
LEFT JOIN service_usage_log AS s
ON u.user_id = s.user_id
LEFT JOIN monthly_target AS t
ON DATE_TRUNC('month', s.usage_date) = t.month;
From(左側)が基準テーブル、To(右側)が結合先です。
Left Joinは「基準テーブル(会員)」を保持しつつ履歴データを付与する際に有効です。
4. データ品質チェック
設計が正しくても、データが不完全なら意思決定を誤ります。
| チェック項目 | 結果例 |
|---|---|
| 欠損率(gender) | 1.2%(補完要検討) |
| 年齢分布 | 平均42.3歳(異常値なし) |
| 利用履歴件数 | 12,345件(整合性OK) |
チェック観点
- 欠損・重複・異常値の確認
- 主キー重複の有無
- カテゴリ値の表記揺れ(例:Male / 男性 / M)
- 月次データの欠落(期間抜け)
事前のプロファイリングを怠ると、集計結果の信頼性が大きく低下します。
5. まとめ:問題から課題へ、課題から設計へ
データ分析は、「現象の理解」から「行動指針の設計」へと橋渡しするプロセスです。
| フェーズ | 目的 | 成果 |
|---|---|---|
| 背景・問題 | 現状とギャップの把握 | 何が起きているのかを明確化 |
| 課題・目的 | 改善の方向性の設定 | 何を明らかにすべきかを定義 |
| 分析設計 | 手法・データ設計 | 再現性と効率性を確保 |
| 可視化・洞察 | 結果の解釈と行動提案 | 意思決定・施策へ展開 |
🚀 設計フェーズに時間をかけることは、最短で成果を出すための近道です。
「なぜ」「何を」「どうやって」を明確にすることで、分析は単なる報告ではなく、戦略的な意思決定の基盤へと進化します。
一緒に技術を磨く仲間を募集しています
Orbitics株式会社では、本記事で紹介したような技術領域(データ分析・機械学習・MLOps・LLM・RAG・AIエージェント など)に本気で取り組みたいデータサイエンティストを募集しています。
ご興味がある方は弊社ホームページをぜひご覧ください。
https://www.orbitics.co.jp/