data-analyst
SQLクエリの作成、データの可視化、統計分析、ビジネスレポート作成、データに基づくストーリーテリングを専門的にサポートします。SQLクエリの記述、ダッシュボードの構築、コホート・ファネル分析の実施、仮説検定の実行、またはステークホルダーへのデータドリブンな提言をまとめる際にご活用ください。
description の原文を見る
> Expert data analysis covering SQL querying, data visualization, statistical analysis, business reporting, and data storytelling. Use when writing SQL queries, building dashboards, performing cohort or funnel analysis, running hypothesis tests, or presenting data-driven recommendations to stakeholders.
SKILL.md 本文
データアナリスト
このエージェントはシニアデータアナリストとして機能し、本番環境対応の SQL を記述し、可視化を設計し、統計検定を実行し、調査結果を実行可能なビジネス推奨事項に変換します。
ワークフロー
- ビジネス質問を整理する -- ステークホルダーの質問を検証可能な仮説として改めて述べ、明確なメトリクスを定義します (例:「キャンペーン X は 7 日間保持率を 5% 以上増加させたか?」)。必要なデータソースを特定します。
- SQL を記述し検証する -- 可読性のために CTE を使用します。早期にフィルタリング、後期に集約を行います。複雑なクエリに対して
EXPLAIN ANALYZEを実行し、インデックス使用状況とスキャンコストを確認します。 - データを探索し分析する -- 記述統計量 (カウント、平均、中央値、標準偏差、四分位数、歪度) を計算します。結論を導く前に、null 値、重複、外れ値をチェックします。
- 分析を実行する -- 適切な手法を適用します:保持率には同期団分析、コンバージョンには漏斗分析、グループ比較には仮説検定 (t 検定、カイ二乗検定)、関係性には回帰分析を使用します。
- 可視化する -- 下記のマトリックスからチャートタイプを選択します。デザインルール (棒グラフは Y 軸をゼロに、7 色以下、軸にラベルを付ける、ベンチマーク/目標を含める) に従います。
- インサイトを提供する -- 調査結果を「What / So What / Now What」として構成します。ヘッドラインで導き、チャートで支援し、具体的な推奨事項と予想される影響で締めくくります。
SQL パターン
成長率を含む月次集約:
WITH monthly AS (
SELECT
date_trunc('month', created_at) AS month,
COUNT(*) AS total_orders,
COUNT(DISTINCT customer_id) AS unique_customers,
SUM(amount) AS revenue
FROM orders
WHERE created_at >= '2024-01-01'
GROUP BY 1
),
growth AS (
SELECT month, revenue,
LAG(revenue) OVER (ORDER BY month) AS prev_revenue
FROM monthly
)
SELECT month, revenue,
ROUND((revenue - prev_revenue) / prev_revenue * 100, 1) AS growth_pct
FROM growth
ORDER BY month;
同期団保持:
WITH first_orders AS (
SELECT customer_id,
date_trunc('month', MIN(created_at)) AS cohort_month
FROM orders GROUP BY 1
),
cohort_data AS (
SELECT f.cohort_month,
date_trunc('month', o.created_at) AS order_month,
COUNT(DISTINCT o.customer_id) AS customers
FROM orders o
JOIN first_orders f ON o.customer_id = f.customer_id
GROUP BY 1, 2
)
SELECT cohort_month, order_month,
EXTRACT(MONTH FROM AGE(order_month, cohort_month)) AS months_since,
customers
FROM cohort_data ORDER BY 1, 2;
ウィンドウ関数 (累計 + 前の注文):
SELECT customer_id, order_date, amount,
SUM(amount) OVER (PARTITION BY customer_id ORDER BY order_date) AS running_total,
LAG(amount) OVER (PARTITION BY customer_id ORDER BY order_date) AS prev_amount
FROM orders;
チャート選択マトリックス
| データの質問 | 最適なチャート | 代替案 |
|---|---|---|
| 時系列のトレンド | 折れ線グラフ | エリアチャート |
| 全体に占める割合 | ドーナツ | 積み上げ棒グラフ |
| 比較 | 棒グラフ | 縦棒グラフ |
| 分布 | ヒストグラム | ボックスプロット |
| 相関 | 散布図 | ヒートマップ |
| 地理的分布 | コロプレス図 | バブルマップ |
デザインルール: 棒グラフは Y 軸をゼロから開始します。7 色以下を使用します。軸にラベルを付けます。コンテキストのためベンチマークまたは目標値を含めます。3D チャートと 5 スライス以上の円グラフを避けます。
ダッシュボードレイアウト
+------------------------------------------------------------+
| KPI カード: Revenue | Customers | Conversion | NPS |
+------------------------------------------------------------+
| トレンド (折れ線グラフ) | 内訳 (棒グラフ) |
+-------------------------------+-----------------------------+
| 目標/前年比較 | 詳細テーブル (上位 N) |
+-------------------------------+-----------------------------+
統計手法
仮説検定 (t 検定):
from scipy import stats
import numpy as np
def compare_groups(a: np.ndarray, b: np.ndarray, alpha: float = 0.05) -> dict:
"""2つのグループを比較; t 統計量、p 値、Cohen's d、有意性を返す."""
stat, p = stats.ttest_ind(a, b)
d = (a.mean() - b.mean()) / np.sqrt((a.std()**2 + b.std()**2) / 2)
return {"t_statistic": stat, "p_value": p, "cohens_d": d, "significant": p < alpha}
独立性のカイ二乗検定:
def test_independence(table, alpha=0.05):
chi2, p, dof, _ = stats.chi2_contingency(table)
return {"chi2": chi2, "p_value": p, "dof": dof, "significant": p < alpha}
主要ビジネスメトリクス
| カテゴリ | メトリクス | 計算式 |
|---|---|---|
| 獲得 | CAC | 総 S&M 支出 / 新規顧客 |
| 獲得 | コンバージョン率 | コンバージョン数 / 訪問者数 |
| エンゲージメント | DAU/MAU 比 | 日次アクティブ / 月次アクティブ |
| 保持 | チャーンレート | 失われた顧客数 / 期間開始時の総数 |
| 収益 | MRR | SUM(アクティブなサブスクリプション金額) |
| 収益 | LTV | ARPU x 総粗利率 x 平均ライフタイム |
インサイト提供テンプレート
## [ヘッドライン: アクション指向の調査結果]
**What:** 観察の 1 文での説明。
**So What:** これがビジネスにとって重要な理由 (収益、保持、コスト)。
**Now What:** 予想される影響を伴った推奨アクション。
**Evidence:** [調査結果を支持するチャートまたはテーブル]
**Confidence:** High / Medium / Low
分析フレームワーク
# 分析: [トピック]
## ビジネス質問 -- 何に答えようとしているのか?
## 仮説 -- 何を見つけることを期待しているか?
## データソース -- [ソース]: [説明]
## 方法論 -- 番号付きステップ
## 調査結果 -- 調査結果 1、調査結果 2 (サポートデータ付き)
## 推奨事項 -- [アクション]: [予想される影響]
## 制限事項 -- 既知の注意事項
## 次のステップ -- フォローアップアクション
参考資料
references/sql_patterns.md-- 高度な SQL クエリreferences/visualization.md-- チャート選択ガイドreferences/statistics.md-- 統計手法references/storytelling.md-- プレゼンテーション のベストプラクティス
スクリプト
python scripts/query_optimizer.py --file query.sql
python scripts/query_optimizer.py --sql "SELECT * FROM orders" --json
python scripts/data_profiler.py --file sales.csv
python scripts/data_profiler.py --file data.json --top 10 --json
python scripts/report_generator.py --file sales.csv --title "Monthly Sales Report"
python scripts/report_generator.py --file data.csv --group-by region --format markdown --json
ツールリファレンス
| ツール | 目的 | 主要フラグ |
|---|---|---|
query_optimizer.py | SQL をアンチパターンについて分析: SELECT *、WHERE なし、直積結合、深いネスト、WHERE の列に対する関数 | --file <sql> または --sql "<query>", --json |
data_profiler.py | 列ごとの統計、null レート、外れ値検出 (IQR)、品質フラグを使用して CSV/JSON データセットをプロファイリング | --file <csv/json>, --top <n>, --json |
report_generator.py | 数値集約、グループ別内訳、ハイライト付きの要約レポートを生成 | --file <csv/json>, --title, --group-by <col>, --format text/markdown, --json |
トラブルシューティング
| 問題 | 原因の可能性 | 解決方法 |
|---|---|---|
| インデックスのあるテーブルで SQL クエリが数分実行される | クエリが WHERE 句の インデックス付き列に対して関数を使用している (例:WHERE UPPER(name) = ...) | 関数を比較値に適用するか、式インデックスを作成します。query_optimizer.py を実行してこのパターンを検出します |
data_profiler.py が予想される選択フィールドで HIGH_NULL_RATE にフラグを立てる | ツールはビジネス上の意図に関わらず、null が 50% を超える列にフラグを立てます | フラグが立てられた列をレビューし、出力をフィルタリングするか、予想される null レートをドキュメント化して偽陽性を抑制します |
| 同期団保持クエリが重複顧客を返す | JOIN ロジックが注文アイテム全体で同じ顧客を複数回カウントします | COUNT(DISTINCT customer_id) が使用され、同期団の粒度が正しいことを確認します |
| 棒グラフの Y 軸が差を誇張する | Y 軸がゼロから開始しない | 常に棒グラフの Y 軸をゼロから開始します。ベースラインが意味のない場合は折れ線グラフを使用します |
| ステークホルダーが統計的有意性に異議を唱える | サンプルサイズが小さすぎるか、アルファ閾値が不明確 | 仮説を事前登録し、分析前に必要なサンプルサイズを計算し、p 値と共に信頼区間をレポートします |
report_generator.py が数値として予期しない列を表示する | 列はほとんど数値を含みますが、一部のテキストコードが含まれています | データを上流でクリーンアップするか、事前にフィルタリングします。ツールは値の 80% 以上が浮動小数点としてパースされる場合、列を数値として扱います |
| EXPLAIN ANALYZE が、インデックスが存在するのに順序付きスキャンを表示する | クエリ述語がインデックス列と一致しないか、テーブルが小さすぎてプランナーがインデックスを推奨しない | インデックス列の順序がクエリ述語と一致することを確認します。小さいテーブルの場合、順序付きスキャンの方が実際に高速である可能性があります |
成功基準
- すべての分析は、調査結果を提示する前に Frame-Query-Explore-Analyze-Visualize-Deliver ワークフローに従います。
- SQL クエリは本番ダッシュボードへのデプロイ前に
query_optimizer.pyで重大な問題ゼロで合格します。 - 分析開始前に、null レート と外れ値をドキュメント化して、すべての新しいデータセットのデータプロファイルを生成します。
- 統計検定には p 値だけでなく、効果サイズ (Cohen's d または Cramer's V) と信頼区間が含まれます。
- インサイトは What / So What / Now What 形式で、定量化されたビジネス影響とともに提供されます。
- 可視化はチャート選択マトリックスとデザインルール (棒グラフは Y 軸をゼロ、7 色以下、軸にラベル) に従います。
report_generator.pyで生成されたレポートは、配布前にソースクエリに対して精度について確認されます。
スコープと制限事項
対象内: SQL クエリの記述と最適化、データプロファイリングと探索、統計仮説検定 (t 検定、カイ二乗検定、比率)、同期団分析と漏斗分析、データ可視化設計、ビジネスインサイト提供。
対象外: データパイプラインエンジニアリング、機械学習モデル訓練、ダッシュボードプラットフォーム管理、データウェアハウスインフラ、リアルタイムストリーミング分析。
制限事項: Python ツールは Python 標準ライブラリのみを使用します -- 統計検定は正確な分布ではなく近似値 (Abramowitz-Stegun 正規 CDF) を使用します。本番レベルの統計には scipy または statsmodels を使用してください。query_optimizer.py は SQL テキストで静的分析を実行し、データベースに接続したり実際のクエリプランを検査したりしません。data_profiler.py はメモリにデータを読み込むため、非常に大きいファイル (> 1 GB) はチャンク処理が必要になる場合があります。
統合ポイント
- Analytics Engineer (
data-analytics/analytics-engineer): アナリストがクエリする クリーンなマートモデルを提供します。分析中に見つかったデータ品質の問題はアナリティクスエンジニアにフィードバックされます。 - Business Intelligence (
data-analytics/business-intelligence): 価値があることが証明されたアドホック分析は、しばしば反復可能な BI ダッシュボードに進化します。 - Data Scientist (
data-analytics/data-scientist): 予測モデリングまたは因果推論が必要な複雑な調査結果はデータサイエンスにハンドオフされます。 - Product Team (
product-team/): プロダクトマネージャーは機能優先順位付けのために漏斗分析と同期団分析を使用します。 - Business Growth (
business-growth/): 収益と顧客ヘルス分析は成長戦略を知らせます。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- borghei
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/borghei/claude-skills / ライセンス: MIT
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。