演習:離反分析フレームワークを設計しよう
「仮説ツリーまでは理論だ。ここからは手を動かしてフレームワークを形にしてほしい。」
田中VPoEがあなたにノートPCを渡す。
「NetShop社の状況を整理し、分析計画を立ててくれ。経営会議で使えるレベルのものを頼む。」
ミッション概要
NetShop社の顧客離反問題に対して、分析フレームワークを設計する演習である。LTVの算出から仮説ツリーの構築、分析ロードマップの策定までを一貫して行う。
Mission 1: LTVインパクト分析(10分)
NetShop社には3つの顧客セグメントがある。各セグメントのLTVと離反コストを算出せよ。
データ:
- ゴールド会員: ARPU ¥12,000、月間離反率 3%、顧客数 2,000人
- シルバー会員: ARPU ¥6,000、月間離反率 6%、顧客数 5,000人
- ブロンズ会員: ARPU ¥3,000、月間離反率 10%、顧客数 8,000人
タスク:
- 各セグメントのLTVを計算する
- 各セグメントの月間離反損失額を算出する
- 離反率を1%改善した場合のインパクトを計算する
- どのセグメントから優先的に対策すべきか、根拠を示して提案する
解答例
import pandas as pd
segments = pd.DataFrame({
'セグメント': ['ゴールド', 'シルバー', 'ブロンズ'],
'ARPU': [12000, 6000, 3000],
'月間離反率': [0.03, 0.06, 0.10],
'顧客数': [2000, 5000, 8000],
})
# LTV計算
segments['LTV'] = segments['ARPU'] / segments['月間離反率']
# 月間離反人数
segments['月間離反人数'] = segments['顧客数'] * segments['月間離反率']
# 月間離反損失額
segments['月間損失額'] = segments['月間離反人数'] * segments['LTV'] * 0.5
# 1%改善のインパクト
segments['改善後離反率'] = segments['月間離反率'] - 0.01
segments['改善後LTV'] = segments['ARPU'] / segments['改善後離反率']
segments['LTV増加額'] = segments['改善後LTV'] - segments['LTV']
segments['総インパクト'] = segments['LTV増加額'] * segments['顧客数']
print(segments[['セグメント', 'LTV', '月間離反人数', '月間損失額']].to_string(index=False))
print()
print(segments[['セグメント', 'LTV増加額', '総インパクト']].to_string(index=False))
# 結果:
# ゴールド: LTV=400,000円、月間離反60人、1%改善インパクト=4億円
# シルバー: LTV=100,000円、月間離反300人、1%改善インパクト=1億円
# ブロンズ: LTV=30,000円、月間離反800人、1%改善インパクト=0.27億円
#
# → ゴールド会員の1%改善が最もインパクトが大きい
Mission 2: 仮説ツリーの構築(10分)
NetShop社(EC事業者)の顧客離反に関する仮説ツリーを構築せよ。
タスク:
- 離反要因を最低4つのカテゴリに分類する
- 各カテゴリに最低3つの具体的な仮説を記述する
- 各仮説に「検証に必要なデータ」を明記する
- 仮説をインパクト(高/中/低)で優先順位付けする
解答例
NetShop社 離反仮説ツリー
│
├── 購買行動
│ ├── H1: 直近3ヶ月の購入頻度が低下した顧客は離反しやすい [インパクト: 高]
│ │ └── 必要データ: 月別購入回数の時系列
│ ├── H2: 購入金額が減少傾向の顧客は離反しやすい [インパクト: 高]
│ │ └── 必要データ: 月別購入金額の時系列
│ └── H3: カート放棄率が高い顧客は離反しやすい [インパクト: 中]
│ └── 必要データ: カート放棄ログ
│
├── 顧客体験
│ ├── H4: 返品が多い顧客は離反しやすい [インパクト: 高]
│ │ └── 必要データ: 返品履歴
│ ├── H5: 配送遅延を経験した顧客は離反しやすい [インパクト: 中]
│ │ └── 必要データ: 配送実績データ
│ └── H6: クレーム履歴がある顧客は離反しやすい [インパクト: 高]
│ └── 必要データ: カスタマーサポートログ
│
├── エンゲージメント
│ ├── H7: メール開封率が低い顧客は離反しやすい [インパクト: 中]
│ │ └── 必要データ: メール配信・開封ログ
│ ├── H8: アプリ利用頻度が低い顧客は離反しやすい [インパクト: 高]
│ │ └── 必要データ: アプリアクセスログ
│ └── H9: ポイント利用がない顧客は離反しやすい [インパクト: 中]
│ └── 必要データ: ポイント利用履歴
│
└── 競合・市場
├── H10: 競合セール時期に離反が増える [インパクト: 高]
│ └── 必要データ: 離反タイミングと競合セール時期の相関
├── H11: 価格感度が高い顧客は離反しやすい [インパクト: 中]
│ └── 必要データ: クーポン利用率、値引き商品の購入割合
└── H12: 特定カテゴリのみ購入する顧客は離反しやすい [インパクト: 中]
└── 必要データ: 購入カテゴリの多様性
Mission 3: 分析ロードマップの策定(10分)
Kaggle Telco Customer Churnデータセットを使った分析プロジェクトのロードマップを策定せよ。
タスク:
- プロジェクトを4フェーズに分割する
- 各フェーズのゴール、主要タスク、成果物を定義する
- 使用する評価指標を選定し、その理由を述べる
- 最終成果物の形式(レポート/ダッシュボード/API等)を提案する
解答例
分析ロードマップ
Phase 1: データ理解・EDA(1週目)
ゴール: データの全体像を把握し、仮説を検証する
タスク:
- データ辞書の作成
- 基本統計量の確認
- 仮説ベースの可視化
- 欠損値・外れ値の確認
成果物: EDAレポート
Phase 2: モデル構築(2週目)
ゴール: 離反予測モデルを構築し、ベースラインを確立する
タスク:
- 特徴量エンジニアリング
- ベースラインモデル(ロジスティック回帰)
- アンサンブルモデル(XGBoost/LightGBM)
- ハイパーパラメータチューニング
成果物: 予測モデル、性能評価レポート
Phase 3: 解釈・AIエージェント化(3週目)
ゴール: 予測結果を解釈し、対話型ツール化する
タスク:
- SHAP分析による要因解釈
- LangGraphによるエージェント実装
- Tool設計・実装
成果物: 分析AIエージェント
Phase 4: 評価・改善(4週目)
ゴール: エージェントの品質を担保する
タスク:
- 出力品質の評価
- Human-in-the-Loop設計
- コスト最適化
成果物: 品質評価レポート、改善計画書
評価指標:
- AUC-ROC: 全体的な識別能力(主指標)
- PR-AUC: 不均衡データでの性能(離反は少数クラス)
- F1-Score: 精度と再現率のバランス
- 選定理由: 離反予測は不均衡データのため、Accuracyだけでは不十分
最終成果物: 対話型AIエージェント(チャット形式で離反分析・施策提案が可能)
達成度チェック
- 3セグメントのLTVを正しく計算できた
- 離反率1%改善のインパクトを定量化できた
- 4カテゴリ以上の仮説ツリーを構築できた
- 仮説に必要なデータと優先度を明記できた
- 4フェーズの分析ロードマップを策定できた
- 評価指標を選定し理由を述べられた
推定所要時間: 30分