JTBD: PM がデータ(CSV/JSON/画像)を渡すだけで、バイアス検出・信頼度スコア付きの分析レポートを得る
| Field | Definition |
|---|---|
| Target User | データ分析を日常業務にしたい PM / テックリード |
| Core Value | 自律ルーティング + 知識蓄積 — プロジェクト文脈を学習し、分析の質が回を重ねるごとに向上 |
| Scope | 6 Capability (聴取→取込→仮説→実行→洞察→再現), AARRR, バイアス7種, confidence scoring |
| Non-Goals | ダッシュボード構築, PII処理, DB直接接続, リアルタイムストリーミング分析 |
Suite内の位置づけ: my_pm_tools → Sprint データ → **pm-data-analysis**。実行結果をデータに基づく意思決定に変換するレイヤー。
CSVを渡すだけで、GAFA水準の信頼度付き分析レポートを自動生成する Claude Code スキル。
- 自律ルーティング: 固定フローなし。蓄積された知識とユーザーの入力から何をすべきか自動判断
- プロジェクト知識の蓄積:
analysis/ディレクトリに事業コンテキスト・KPI・過去の分析結果を蓄積。2回目以降はヒアリング不要 - 信頼度スコア: 全ての示唆に High/Medium/Low の信頼度を付与(4軸12点ルーブリックで定量化)。Low の場合は追加データを要求
- バイアス自動検出: 7種のバイアスを結果提示前に自動チェック(詳細は下記)
- GAFA品質の出力: エグゼクティブサマリー、So What / Now What、Guardrail Check、Limitations セクション
- 再現性: 全分析にコード/クエリを自動保存。自然言語検索と差分比較付き再実行
データ分析して
この CSV を分析して
前回の分析の続き
A/Bテストの結果を検証して
過去の分析結果を検索
同じ分析を最新データで再実行
| Capability | 内容 | 自動呼び出し条件 |
|---|---|---|
| 1. ヒアリング + コンテキスト構築 | 事業理解、KPI定義、メトリクスツリー、AARRR マッピング | context.md が未作成の場合のみ |
| 2. データ取り込み + 品質チェック | CSV/画像/JSON/MCP からデータ取得、品質検証(6項目) | データが添付された場合 |
| 3. 仮説生成 + 分析方針 | 分析計画、信頼度事前見積もり、ガードレール指標、因果推論判定 | 「何を分析すべきか」を探している場合 |
| 4. 分析実行 | Python統計分析、SQL、バイアスチェック(7種)、分解プロトコル | データと目的が揃った場合 |
| 5. 信頼度付き示唆 | エグゼクティブサマリー、So What / Now What、Guardrail Check、Limitations | 分析完了後、常に実行 |
| 6. 再現性 — 保存・検索・再実行 | コード/クエリの自動保存、自然言語検索、差分比較付き再実行 | 分析完了後(自動)、または「前回の分析」「再実行」 |
固定フローを順番に実行しない。蓄積された知識とユーザーの入力に基づき、何をすべきかを自律的に判断する。
| # | 条件 | アクション |
|---|---|---|
| 1 | analysis/context.md あり + 具体的リクエスト |
ヒアリングスキップ、即実行 |
| 2 | analysis/context.md なし |
初回ヒアリング実行 (Capability 1) |
| 3 | analysis/context.md が古い(鮮度閾値超過) |
警告: "Context last updated [date]. Review before analysis?" |
| 4 | データ添付あり | 品質チェック + 分析開始(目的不明なら1つだけ確認) |
| 5 | 過去の分析が存在 | 参照: "Last time [X] showed [Y]. Continue or new analysis?" |
| 6 | 低信頼度の示唆が過去にあり | 自動提案: "We can improve [X] with additional data: [list]" |
| 7 | analysis/history/index.md に10件超 |
トレンド表示: "Most common type: [X]. Declining confidence in [Y]?" |
| Business Stage | 警告閾値 |
|---|---|
| Pre-PMF | 7日 |
| Growth | 14日 |
| Scale / Mature | 30日 |
分析出力の前に必ず以下を実行:
- Decision Statement: "この分析はどの意思決定に使われるか?" — 回答なしでは分析を拒否
- Bias Checklist: 結果提示前に自動実行(7種)
- Confidence Score: 全ての示唆に High/Medium/Low を証拠付きで付与
コンテキストウィンドウを節約するため、参照ファイルは必要時のみ読み込む:
| ファイル | 読み込みタイミング |
|---|---|
references/statistical_tests.md |
統計テストの選択・実行時のみ |
references/analysis_patterns.md |
分析パターンの適用時のみ |
templates/context.md |
初回 analysis/context.md 生成時のみ |
templates/analysis_report.md |
最終レポート生成時のみ |
スキル起動時に全参照ファイルを事前読み込みしない。
| 形式 | 方法 |
|---|---|
| CSV / TSV | Read ツールで読み込み + pandas で統計処理 |
| JSON / JSONL | 構造解析 + フラット化(5階層超のネストは不完全になる場合あり) |
| 画像(ダッシュボードスクショ) | マルチモーダル読み込み → 数値抽出(OCR精度に依存) |
| データベース | DuckDB MCP(CSV に SQL)、BigQuery MCP |
| GA4 / Google Ads | 対応 MCP 経由 |
| 手動入力 | 対話でヒアリング → 構造化 |
全ての示唆に対し、4軸で定量評価:
| 軸 | High (3pt) | Medium (2pt) | Low (1pt) |
|---|---|---|---|
| 統計的有意性 | p < 0.01 | p < 0.05 | p >= 0.05 or 未検証 |
| 効果量 | Cohen's d >= 0.5 | 0.2-0.5 | < 0.2 or 不明 |
| サンプルサイズ | N >= 推奨値 | N = 推奨の50-100% | N < 推奨の50% |
| データ品質 | 欠損 < 5%, 問題なし | 欠損 5-15% or 軽微な問題 | 欠損 > 15% or 重大な問題 |
合計: 10-12pt = High, 7-9pt = Medium, <= 6pt = Low
ステークホルダー向けの平易な表現:
- High (10-12pt): 「この結論は信頼できます。複数のデータポイントが収束しています。」
- Medium (7-9pt): 「方向性はおそらく正しいですが、規模は不確実です。」
- Low (<=6pt): 「これは探索に値する仮説であり、行動の根拠にはなりません。」
記述的分析(統計テストなし)の場合: サンプルサイズ + データ品質の2軸のみ(最大6pt)で評価。
全分析の結果提示前に自動実行:
| # | バイアス | チェック内容 |
|---|---|---|
| 1 | Simpson's Paradox | 集約値がトップセグメント別でも成立するか |
| 2 | Survivorship Bias | データセットから離脱/失敗ユーザーが除外されていないか |
| 3 | Regression to Mean | 最近の極端な値がきっかけか(z > 2 → 警告) |
| 4 | Selection Bias | サンプルが母集団を代表しているか |
| 5 | Novelty Effect | A/Bテストで Week 1 と Week 2+ の効果が異なるか |
| 6 | Instrumentation Bias | 最近のロギング/トラッキング/SDK変更があったか |
| 7 | Seasonality | 同等の時期を比較しているか(平日 vs 平日など) |
バイアス検出時: 出力に注記し、信頼度スコアを調整。
分析計画ごとにガードレール指標を定義。ユーザー未指定の場合はモデル別デフォルトを提案:
| ビジネスモデル | ガードレール 1 | ガードレール 2 |
|---|---|---|
| SaaS | Churn rate | NPS/CSAT |
| EC | Cart abandonment rate | Average order value |
| Marketplace | Supplier churn | Time to first transaction |
| Ads | CTR | CPC |
Capability 4 で使用可能な分析パターン(詳細は references/analysis_patterns.md):
| パターン | 概要 |
|---|---|
| ファネル分析 | ステージ別コンバージョン率、ドロップオフ可視化 |
| コホート分析 | リテンションテーブル、ヒートマップ、LTV予測 |
| A/Bテスト検証 | 検出力分析、有意差検定、効果量、ノベルティチェック |
| セグメント比較 | 統計的差異検定、分布の可視化 |
| 成長会計 (Growth Accounting) | New + Retained + Resurrected - Churned, Quick Ratio |
| 分解プロトコル (Disaggregation) | 異常検出時の再帰的ドリルダウン(セグメント→時間→プロダクト→地域) |
| トレンド分析 | 移動平均、STL分解、異常値検出 |
異常検出時(ベースラインから10%超の変化)に自動発動:
- セグメント別分割 → どのセグメントが変化を牽引?
- 時間別分割 → いつ変化が始まった?
- プロダクト/機能別分割 → どの領域が影響?
- 地域/プラットフォーム別分割 → ローカルかグローバルか? → 根本原因が特定されるまで再帰的に継続
因果関係の主張が必要な場合の判定フロー:
ランダム化可能?
→ Yes: A/Bテスト(ゴールドスタンダード)
→ No: 明確な閾値/カットオフあり?
→ Yes: 回帰不連続デザイン (RDD)
→ No: 前後 + 処置/対照あり?
→ Yes: 差分の差分法 (DID)
→ No: 比較可能なグループあり?
→ Yes: 傾向スコアマッチング
→ No: 相関のみとして報告。信頼度を格下げ。
各示唆にレベルを付与:
| レベル | 意味 | 質問 |
|---|---|---|
| Descriptive | 何が起きたか | What happened? |
| Diagnostic | なぜ起きたか | Why did it happen? |
| Predictive | 何が起きるか | What will happen? |
| Prescriptive | どうすべきか | What should we do? |
analysis/
├── context.md ← 事業コンテキスト(初回生成、以降自動更新)
├── kpi_definitions.md ← KPI定義 + メトリクスツリー + AARRR
├── data_catalog.md ← 利用可能データソース一覧
└── history/ ← 過去の分析レポート(再現コード付き)
├── index.md ← 検索可能なインデックス(自動更新)
└── YYYY-MM-DD_type.md ← 各レポート + Reproduction セクション
テンプレートは templates/context.md:
- Business: model, stage, industry, revenue
- Product: name, users, core value
- KPIs: north star, primary, secondary(input/output 分類付き)
- Tenets: 指標が競合する場合の優先順位(例: "retention > activation")
- Data Sources: 接続済み MCP, CSV エクスポート元
- Analysis History: 過去分析の1行サマリー(信頼度付き)
- Experimentation Velocity: 月次の分析数、実験数、勝率
分析セッション完了後、自動的に:
analysis/history/に日付付きレポートを追記context.mdの Analysis History に1行サマリーを追加- 新規発見のデータソースを
data_catalog.mdに追加 - 新データ分析時に KPI 値を更新
- Experimentation Velocity カウンターをインクリメント
| 回数 | ヒアリング | 使える情報 |
|---|---|---|
| 1回目 | フル(5-10分) | ゼロから |
| 2回目 | 差分のみ(1-2分) | 前回コンテキスト + 過去結果 |
| 3回目以降 | ほぼゼロ | 全蓄積知識を活用 |
全分析で ## Reproduction セクションを自動生成:
- Environment: Python バージョン、ライブラリバージョン
- Code: コピペで再実行可能な完全なコード
- SQL Queries: 使用した SQL クエリ
- Parameters: 使用パラメータと根拠
- Re-run Instructions: データ準備から実行までの手順
| Date | Type | Decision | Key Finding | Confidence | Tags |
| ---------- | ------- | ------------------ | ------------------------ | ---------- | ------------------- |
| 2026-03-15 | cohort | Retention strategy | D30 retention -8% mobile | High | retention, mobile |
| 2026-03-20 | ab_test | Ship feature X? | +12% activation | High | ab_test, activation |「前回リテンションの分析あった?」「activation に関する過去の結果」などの自然言語クエリで過去分析を検索。index.md の Type, Decision, Key Finding, Tags カラムに対してマッチング。
「同じ分析を最新データで」の場合:
- 過去レポートの Reproduction セクションを読み込み
- データ可用性を確認(同一データ / 更新データ / データ不在)
- 差分を表示: "Original: [X]. Current: [Y]. Delta: [Z]"
- 有意な変化を検出した場合 → 分解プロトコルを自動発動
| 企業 | 取り入れた要素 |
|---|---|
| 4段階分析成熟度(記述→診断→予測→処方)、因果推論デシジョンツリー | |
| Meta | AARRRライフサイクル、メトリクスツリー、成長会計、行動コホート |
| Amazon | 意思決定文の強制、テネッツ、インプット/アウトプット指標、分解プロトコル |
| Apple | エグゼクティブサマリー、平易な信頼度表現、チャート選択ガイド |
分析実行前に達成可能な信頼度を推定:
| ファクター | 評価 |
|---|---|
| サンプルサイズ | Sufficient / Marginal / Insufficient |
| 時間期間 | Sufficient / Marginal / Insufficient |
| 交絡因子 | Controllable / Partial / Difficult |
| データ品質 | Good / Acceptable / Problematic |
| 因果関係 | Possible / Correlation only / Unknown |
Low の場合: 「信頼できる結論は困難です。追加データが必要: [list]」 → ユーザーに確認。
| 障害 | 検出方法 | 復旧手順 |
|---|---|---|
| CSV パースエラー | 不正行、エンコーディング問題 | UTF-8/Shift-JIS 自動検出、最初のエラー行を表示、修正依頼 |
| サンプルサイズ不足 | N < 30 | 警告 + 集約または長期間データの提案 |
| MCP 接続失敗 | タイムアウトまたは認証エラー | CSV エクスポートにフォールバック、最後の成功クエリをキャッシュ |
| コンテキスト陳腐化 | context.md > 鮮度閾値 | ユーザーに更新を促す + 前回からの変更点を表示 |
| 指標の競合 | North star 改善だがガードレール悪化 | 競合をフラグ + テネッツに基づくトレードオフ分析 |
| KPI 定義不在 | kpi_definitions.md なし | context.md のビジネスモデルからデフォルトを生成 |
| 画像抽出エラー | OCR/視覚的解釈が不確実 | ユーザーに抽出値の確認を依頼 + 不確実性を注記 |
| 大規模ファイルタイムアウト | CSV 10万行超 | サンプリング戦略またはチャンク分析を推奨 |
全エラーに3つの要素を含める:
- 何が起きたか: 障害の明確な説明
- なぜ重要か: 分析と信頼度への影響
- 次に何をすべきか: ユーザーが実行可能な具体的な復旧手順
特定の分析タイプは専門スキルに委任:
| 分析タイプ | 委任先スキル | 方法 |
|---|---|---|
| ファネル詳細分析 | funnel-analysis |
パターンを内部適用 |
| A/Bテスト設計 | cro-methodology |
ICE スコアリング + テストパターン |
| SaaS 指標 | pm-saas-revenue-growth-metrics |
計算式 + ベンチマーク |
| ビジネス健全性 | pm-business-health-diagnostic |
4次元診断 |
| 市場規模算定 | pm-tam-sam-som-calculator |
TAM/SAM/SOM 計算 |
- CSV: UTF-8/Shift_JIS 自動検出。10万行超は処理時間が増加(推奨: サンプリングまたは分割)
- 画像: グラフ/チャート画像は視覚的解釈のみ(OCR 精度に依存、数値の正確性は保証しない)
- JSON: ネストが5階層を超える場合、フラット化が不完全になる場合あり
- Excel: .xlsx は直接パース不可。CSV エクスポートが必要
- サンプルサイズ < 30 の場合、統計的有意性テストの信頼性が低下
- バイアス検出は既知パターン(7種)のみ対応
- 因果推論は相関分析に基づく示唆のみ提供(実験デザインの代替にはならない)
- 時系列予測は過去パターンの外挿であり、構造変化には対応不可
- スコアは4軸12点マトリクスで算出(主観的要素を含む)
- 異なるセッション間でのスコア比較は非推奨(コンテキストが異なるため)
analysis/context.mdはプロジェクト単位。複数プロジェクト間の知識共有は非対応- 知識の自動期限切れなし(古い知識が誤解を招く可能性あり。定期的な見直しを推奨)
- MCP データソースの可用性はプロジェクト設定に依存
- リアルタイムストリーミングデータの分析
- 機械学習モデルのトレーニングと推論
- データベースへの直接接続(CSV/JSON エクスポートが必要)
- PII(個人識別情報)を含むデータの匿名化処理
- Claude Code CLI
- Python 3.11+
pip install pandas scipy statsmodels matplotlib seaborn- DuckDB MCP — CSV に直接 SQL を実行
- GA4 MCP — Google Analytics 4 データ取得
- BigQuery MCP — 大規模データ分析
# Clone and symlink
git clone git@github.com:fideguch/pm_data_analysis.git ~/pm_data_analysis
ln -s ~/pm_data_analysis ~/.claude/skills/pm-data-analysis
# Verify
ls ~/.claude/skills/pm-data-analysis/SKILL.mdSetup time: ~5 min
- CSV/スプレッドシートのデータを統計的に分析したい
- A/Bテストの結果を検証したい(有意差あるのか?)
- KPIの異常値の原因を特定したい
- 仮説を立ててからデータで検証したい
- 過去の分析を検索・再実行したい
- 広告データの分析 →
pm-ad-analysisを使用 - ファネル分析の詳細 →
funnel-analysisを使用 - ダッシュボードの構築 → BIツールを使用
- PII を含むデータの匿名化処理
- リアルタイムストリーミングデータの分析
このスキルは5つのPMツールスイートの一部です:
requirements_designer → speckit-bridge → my_pm_tools
↕
▶ pm-data-analysis ◀ ← pm_ad_analysis
MIT