0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【DATA SABER】ダッシュボードを作成して再学習したデータ加工・集計のリアル

0
Posted at

はじめに

現在、DATA Saberへの挑戦の一環として、Tableauを用いた実践的なダッシュボード構築に取り組んでいます。

今回は、Kaggle等でも公開されている「国際サッカーの歴史データ」を活用し、訓練的にダッシュボードを作成しました。

ただ「グラフを並べる」だけでなく、データ加工や集計のアンチパターンに直面しながら、「データ分析を正しく行うための技術」 を再度学ぶことができたので、技術ブログとしてナレッジを記しておきます。


今回作成したダッシュボードの概要

  • テーマ: 国際サッカー歴史データ分析
  • 目的: 1872年以降の数万件におよぶ試合データから、得点傾向・時代ごとの勝率・PK戦の強度などを可視化する
  • デザインコンセプト: ノイズ(余計なグリッド線や重複する軸)を極限まで削ぎ落としたミニマルなレイアウト

国際サッカー歴史ダッシュボード
image.png
(一部タイトル文字が、、、なところは一旦重要ではないので目を瞑っていただけると幸いです、、、)


ダッシュボード構築で再認識した「データ分析・Tableau」の技術的学び3選

単にビジュアルを作成するだけでなく、正確な集計を行うために直面した壁と、それを解決する中で得た学びです。

1. 集計関数の罠とピボットの重要性

❌ 直面した課題

「これまで国際試合に登場した対象国数(重複を除いた純粋な国・地域数)」を算出しようとした際、単純に COUNTD([Home Team]) + COUNTD([Away Team]) を実行したところ、数値が 650 と出力されてしまいました。(正解は 337

これは「ホーム戦にもアウェイ戦にも出場した国(約313か国)」が二重にカウントされていたことが原因です。

⭕ 解決策・学び

Tableau単体で複数列に跨がるデータの重複排除(異なり数集計)を行う場合、データソース段階での「ピボット」処理が極めて有効であることを学びました。

  1. データソース画面で Home Team 列と Away Team 列を複数選択
  2. 右クリックで「ピボット」を実行し、縦持ちのデータ構造(1列の国名フィールド)に変換
  3. 変換後のフィールドで COUNTD([ピボットフィールド値]) を実行 ➔ 正確な「337」を算出

データ分析においては、「計算式で解決しようとする前に、まず集計しやすいデータ構造(縦持ち)へ整形する」 というデータモデリングの基本原則を再確認しました。


2. データセットの「粒度違い」を意識したKPI設計

❌ 直面した課題

「総ゴール数」を集計するにあたり、得点者詳細が載っている goalscorers.csv の行数をカウントしようとしました。しかし、結果は約4.7万件となり、実際の全歴史の総ゴール数(145,661ゴール)と大きく乖離してしまいました。

これは、goalscorers.csv が「得点者の名前が記録されている一部の試合」のみを保持しているのに対し、results.csv は「全試合の最終スコア」を保持しているというデータ粒度・カバー範囲の違いによるものでした。

⭕ 解決策・学び

リレーションシップ(論理モデル)を正しく理解し、KPIごとに適切な親テーブルを参照する必要性を学びました。

  • 全体KPI(総ゴール数): results.csv[Home Score] + [Away Score] から算出
  • 詳細分析(得点王TOP10): goalscorers.csv から算出(必要に応じてオウンゴール除外のフィルターを適用)

複数テーブルを扱う際、**「今見ているデータソースの最小粒度は何か」「欠損や集計範囲の差はあるか」**を把握することの重要性を改めて叩きつけられました。


3. パラメータを用いた柔軟なフィルタリング構造の実装

⭕ 実装内容・学び

得点王ランキングにおいて、「通常ゴール+PK」の合計値と、「PKを除く通常ゴールのみ」の数値をユーザーが直感的に切り替えられるよう、パラメータと計算フィールドを連携させたロジックを実装しました。

【手順】

  1. リスト形式のパラメータ(全ゴール / PK除く)を作成
  2. 以下の計算フィールドを作成してフィルターに配置し、真 (True) で固定
// PKフィルター制御
IF [ゴール種類切り替え] = 'PK除く' THEN
    NOT [Penalty]
ELSE
    TRUE
END

ビジュアルの見た目だけでなく、分析利用者の問い(「PKを除いたら誰が一番決めているのか?」)にインタラクティブに応えられる設計技術を習得できました。


おわりに

今回のダッシュボード作成を通して、DATA Saberとして必要な 「綺麗なチャートを作る技術」以上に「元データを正しく解釈し、適切な構造に加工して集計する技術」 の重要性を実感しました。
これらはどんなビジネスデータを扱う上でも必須となるコアスキルかと思います。今後もDATA Saber認定に向けて、正しいデータ活用技術を磨いていきます!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?