コンテンツにスキップ

9.10.3 プロジェクト:データ分析 Agent

  • データ分析 Agent の最小プロジェクト範囲を定義できるようになる
  • データ入力、統計計算、説明出力を一連の流れにつなげられるようになる
  • 最小サンプルで「検証可能性」を示せるようになる
  • この題材を1ページの強いポートフォリオプロジェクトとして見せられるようになる

データ分析 Agent は、「データを読む -> 統計を計算する -> 解釈を作る -> 表示方法を提案する」という流れで理解するとよいです。

flowchart LR
A["入力テーブル"] --> B["統計計算"]
B --> C["洞察を生成"]
C --> D["グラフ提案 / レポート提案"]

この節で本当に解決したいのは、次の点です。

  • データ分析 Agent はなぜ「pandas を呼び出せる」だけではないのか
  • なぜ、最終的なひとことの結論よりも、検証できる中間過程のほうが大事なのか

プロジェクトの題材をどう絞るか?

Section titled “プロジェクトの題材をどう絞るか?”

まずは、次のような形にするのがおすすめです。

  • 小さな表を読み込む
  • いくつかの主要な統計量を計算する
  • 統計量にもとづいて洞察の要約を作る

最初から次のような大きなものにしないほうがよいです。

  • 自動 BI プラットフォーム
  • 完全自動のレポート工場

初心者向けの、よりわかりやすいたとえ

Section titled “初心者向けの、よりわかりやすいたとえ”

データ分析 Agent は、次のような分析アシスタントだと考えるとよいです。

  • 先に計算し、それから説明し、さらにどう図にするかも提案してくれる

普通の電卓との違いは、次の点ではありません。

  • 計算が速いこと

違いはむしろ、

  • 数字を、意味のある結論として整理できること

です。


まずは最小のデータ分析ループを動かす

Section titled “まずは最小のデータ分析ループを動かす”

この例では、次のことを行います。

  1. 小さな売上表を読み込む
  2. 総売上とカテゴリごとの平均を計算する
  3. 簡単な分析結論を1つ出す
sales = [
{"category": "course", "amount": 299},
{"category": "course", "amount": 199},
{"category": "book", "amount": 59},
{"category": "book", "amount": 79},
{"category": "service", "amount": 499},
]
def summarize_sales(rows):
total = sum(row["amount"] for row in rows)
grouped = {}
for row in rows:
grouped.setdefault(row["category"], []).append(row["amount"])
per_category_avg = {
category: round(sum(values) / len(values), 2)
for category, values in grouped.items()
}
top_category = max(per_category_avg, key=per_category_avg.get)
return {
"total_amount": total,
"per_category_avg": per_category_avg,
"insight": f"{top_category} の客単価が最も高い。",
}
result = summarize_sales(sales)
print(result)

実行結果の例:

Terminal window
{'total_amount': 1135, 'per_category_avg': {'course': 249.0, 'book': 69.0, 'service': 499.0}, 'insight': 'service の客単価が最も高い。'}

データ分析 Agent sales トレース 結果図

この例がすでにプロジェクトらしい理由

Section titled “この例がすでにプロジェクトらしい理由”

これは「計算」だけをしているのではなく、
次のことも含んでいるからです。

  • 入力データ
  • 中間統計
  • 結論の出力

これで、最小のデータ分析ワークフローになっています。

なぜ insight が特に重要なのか?

Section titled “なぜ insight が特に重要なのか?”

ユーザーは、たいてい生の数字を見たいのではなく、
次のようなものを求めています。

  • 意味のある結論

ここが、データ分析 Agent と普通の電卓の違いです。

初心者が最初に覚えやすいプロジェクト確認表

Section titled “初心者が最初に覚えやすいプロジェクト確認表”
項目最初に確認すべきこと
入力データフィールドの意味がはっきりしているか
中間統計計算の基準が一貫しているか
insight結論と数字が一致しているか
グラフ提案グラフの種類がデータの形に合っているか

この表は初心者にとても向いています。
なぜなら、「データ分析 Agent」を、確認可能なワークフローとして見直せるからです。

データ分析 Agent の検証可能なワークフロー図


作品レベルのデータ分析 Agent が見せるべきものは何か?

Section titled “作品レベルのデータ分析 Agent が見せるべきものは何か?”

次の点をはっきりさせるのがよいです。

  • フィールド
  • サンプル数
  • 欠損値の有無

たとえば、次のようなものです。

  • 集計統計
  • グループ化の結果
  • 傾向の判断

たとえば、次のようなものです。

  • どのカテゴリの商品が最も良いか
  • どの期間の変動が最も大きいか

実際にグラフを生成しなくても、次のように出力できます。

  • 棒グラフにするべきか、折れ線グラフにするべきか

これで、プロジェクトは実際の分析アシスタントにより近づきます。


最小の「グラフ提案器」を追加する

Section titled “最小の「グラフ提案器」を追加する”
def suggest_chart(columns):
if "date" in columns and "amount" in columns:
return "line_chart"
if "category" in columns and "amount" in columns:
return "bar_chart"
return "table"
print(suggest_chart(["category", "amount"]))
print(suggest_chart(["date", "amount"]))

実行結果の例:

Terminal window
bar_chart
line_chart

この小さなモジュールにはどんな価値があるか?

Section titled “この小さなモジュールにはどんな価値があるか?”

これは、このプロジェクトが単なる「計算」ではなく、
次の方向へ少しずつ進んでいることを示します。

  • 分析
  • 説明
  • 可視化の提案

もう1つの最小「分析 トレース」の例

Section titled “もう1つの最小「分析 トレース」の例”

同じファイルまたは同じ Python セッションで続けて実行してください。このブロックは salesresult を再利用します。

trace = {
"input_rows": len(sales),
"total_amount": result["total_amount"],
"per_category_avg": result["per_category_avg"],
"insight": result["insight"],
}
print(trace)

実行結果の例:

Terminal window
{'input_rows': 5, 'total_amount': 1135, 'per_category_avg': {'course': 249.0, 'book': 69.0, 'service': 499.0}, 'insight': 'service の客単価が最も高い。'}

この例は初心者にとても向いています。
なぜなら、次のことが見えやすくなるからです。

  • データ分析 Agent プロジェクトの本当に価値のある部分
  • 「過程を検証できるかどうか」が重要であること

いちばん起こりやすい落とし穴

Section titled “いちばん起こりやすい落とし穴”

これは、データ分析 Agent でよくある致命的な問題です。
フィールドの意味を取り違えると、その後の流れ全体がずれてしまいます。

結論だけを見せて、中間過程を見せない

Section titled “結論だけを見せて、中間過程を見せない”

これだと、プロジェクトがブラックボックスのように見えてしまい、信頼を得にくくなります。

次のようなケースを見せないと、プロジェクトがあまり現実的に見えません。

  • 欠損値
  • 異常値
  • 統計の基準の衝突

作品レベルのページに仕上げるには?

Section titled “作品レベルのページに仕上げるには?”
  1. 元データのサンプル
  2. 中間統計表
  3. 洞察の要約
  4. グラフ提案
  5. エラーケース

次の3つを、

  • 元データ
  • 中間計算
  • 最終結論

1本の trace として見せるとよいです。
これは、結果だけを貼るよりずっと強い見せ方です。

初心者が最初に覚えやすい評価表

Section titled “初心者が最初に覚えやすい評価表”
観点最初に聞くべきこと
正確性数字は正しく計算できているか
検証可能性中間過程を見返せるか
説明性結論と統計が一致しているか
見せ方グラフ提案と結論が自然につながっているか

この表は初心者にとても向いています。
「Agent プロジェクトが良いかどうか」を、より具体的な項目に分けて判断できるからです。


期待される結果:元データ、中間計算、洞察、グラフ提案、エラーケースを1本の trace として示し、分析結果を検証できる状態です。

このページを終えたら、この証拠カードを残します。

プロジェクト目標
エージェントが達成すべきことと、してはいけないこと
ベースライン
高度な機能を追加する前の単一エージェントループ
追跡パック
目標、計画、ツール呼び出し、観察、メモリ、評価
失敗ログ
少なくとも1回の失敗または危険な実行と根本原因
成果物
README、実行コマンド、trace スクリーンショット/ログ、次の一手

この節で最も大事なのは、作品レベルの判断軸を作ることです。

データ分析 Agent の本当の見どころは、pandas を呼び出せるかどうかではなく、入力データ、中間計算、最終的な洞察を、検証可能な分析ループとしてまとめられるかどうかです。

このループがはっきりしていれば、このプロジェクトは複数ツールを使う Agent の理解を示すのにとても向いています。

これをポートフォリオにするなら、何を見せるのが一番よいか

Section titled “これをポートフォリオにするなら、何を見せるのが一番よいか”

一番見せるべきなのは、たいてい次のようなものではありません。

  • ひとことの分析結論

むしろ、次の 4 つです。

  1. 元データのサンプル
  2. 中間統計の結果
  3. insight がどう生まれたか
  4. なぜそのグラフを提案したのか

そうすると、見る人は次のことを理解しやすくなります。

  • あなたが理解しているのは分析ループであること
  • 単に Agent に文章を言わせただけではないこと

バージョン別の進め方のおすすめ

Section titled “バージョン別の進め方のおすすめ”
バージョン目標重点となる成果物
ベーシック版最小ループを動かす入力できる、処理できる、出力できる、さらにサンプルを1組残す
スタンダード版見せられるプロジェクトにする設定、ログ、エラー処理、README、スクリーンショットを追加する
チャレンジ版ポートフォリオ品質に近づける評価、比較実験、失敗サンプル分析、次のロードマップを追加する

まずはベーシック版を完成させることをおすすめします。最初から大きく作りすぎないようにしましょう。
1つバージョンを上げるたびに、「何が増えたのか、どう検証したのか、まだ何が課題か」を README に書きましょう。

  1. サンプルデータに date フィールドを追加して、簡単な時系列分析に広げてみましょう。
  2. 「検証可能性」がデータ分析 Agent にとって特に重要なのはなぜか、考えてみましょう。
  3. 結論と数字が一致しないとき、このプロジェクトで最も問題が起きやすい層はどこでしょうか?
  4. ポートフォリオとして見せるなら、どの部分をいちばん目立つように設計しますか?
プロジェクト参考とレビュー観点
  1. 各 row に date を追加し、週または月で group し、total sales、average order value、churn rate などの trend を Agent に計算させます。output には code と chart/table の両方を含めます。
  2. reproducibility が重要なのは、analysis conclusion を再実行できる必要があるからです。data version、cleaning steps、code、parameters、generated chart、final narrative を結びます。
  3. conclusion と numbers が合わない場合は、まず analysis layer を見ます。aggregation logic、filters、date handling、chart interpretation です。その後、generation layer が結果を誇張していないか確認します。
  4. portfolio で最も目立たせるべきなのは evidence loop です。user question -> generated code -> computed table/chart -> checked conclusion -> trace を見せると、Agent が data に基づいて reasoning していることを示せます。