記事の対象者と解消できるお悩み
【対象者】
初中級データアナリスト
【興味関心】
- データ分析による仮説検証
- スポーツデータ分析
- パフォーマンス分析
- 要因分析
- データに基づいた戦略策定
- BigQueryの可能性
【解消できるお悩み】
- ホームアドバンテージのように、感覚的に語られることをデータで検証したい
- スポーツデータのような複雑なデータを分析してみたい
- 従業員やチームのパフォーマンスを分析し、改善につなげたい
- ある事象の要因をデータから分析する方法を知りたい
- データ分析をビジネス戦略に活かしたい
記事作成者
【人物】株式会社志庵 代表取締役 佐藤 光 起業6年目
【経歴】株式会社光通信➜光通信同期と起業➜データアナリスト転職➜SaaSで2度目起業
【会社実績】
SaaS 資金調達無しARR2億円
SaaS GMV200億円
【内容】自社AaaSであるStruccle、webスクレイピング、BigQueryに関する記事を作成
各種用語
- ARR(Annual Recurring Revenue)
- サブスクリプションサービスの年間売上※当社はSaaS売上
- Struccle(ストラクル)
- 株式会社志庵が独自開発しているAaaS
- AaaS(アース)
- Data Analytics as a Serviceの意
- SaaS(サース)
- Software as a Serviceの意
- GoogleCloudPlatform
- Googleが提供するクラウドプラットフォーム。この中に様々なサービスが存在する。
- GCP(ジーシーピー)
- GoogleCloudPlatformの略
- BigQuery(ビッグクエリ)
- 上記GCPの中に含まれるデータ分析基盤サービス
- SQL(エスキューエル)
- データベースを操作するプログラミング言語
- クエリ
- SQLで記述した命令文
- クエリ例)
- SQL構文のクエリ⬇
SELECT item_name, price FROM sales_table where price >= 1000;
- 上記クエリ(命令文)の意味としては「売上テーブル(sales_table)から価格(price)が1000円以上の商品名(item_name)と価格(price)を抽出する」
- SQL構文のクエリ⬇
- ペタバイト
- データの単位 ペタバイト=1000テラバイト=約100兆行のデータ
概要
スポーツの世界では、「ホームアドバンテージ」という言葉がよく聞かれます。これは、ホームチームが、自らのスタジアムで試合を行う際に、有利になるという考え方です。観客の応援、慣れ親しんだ環境、移動の負担が少ないことなどが、ホームアドバンテージの要因として考えられています。しかし、ホームアドバンテージは本当に存在するのでしょうか?
今回は、BigQueryの無料公開データセット「MLB Game Logs」を使って、野球の試合結果データを分析し、ホームアドバンテージが実際に存在するのかどうかを検証します。BigQueryの強力な分析機能を用いることで、大量の試合結果データから、ホームチームとアウェイチームの勝率を比較し、統計的に有意な差があるかどうかを調べることができます。この記事では、BigQueryを使って野球データ分析を行う方法と、その分析結果からホームアドバンテージの存在を検証します。
目次
- BigQueryで野球データ分析を行うメリット
- 分析に使用するBigQueryのデータセット
- BigQueryでホームアドバンテージを検証する手順
- BigQueryを使った野球データ分析例
- FAQ:BigQueryに関するよくある質問
- まとめ:BigQueryでスポーツデータ分析を楽しもう!
1. BigQueryで野球データ分析を行うメリット
BigQueryは、野球データ分析に最適なツールです。その理由は、以下の様なメリットがあるからです。
- 大規模データの高速処理: 膨大な野球データを高速に分析できるため、試合結果の傾向や選手の成績を効率的に把握できます。
- 様々なデータソースとの連携: 公開データ、チームの戦績データ、選手の成績データなど、様々なデータソースと連携できるため、野球データ分析に必要なデータを統合的に分析できます。
- 豊富な分析機能: SQL、機械学習、統計分析など、高度な分析機能を利用できるため、複雑な野球データ分析にも対応できます。
- コストパフォーマンスの高さ: 従量課金制なので、必要な時に必要なだけ利用でき、コストを抑えられます。
- 高いセキュリティ: Google Cloudの強固なセキュリティ基盤により、安心してデータを管理できます。
2. 分析に使用するBigQueryのデータセット
今回の分析では、BigQueryの公開データセット「MLB Game Logs」を使用します。このデータセットには、メジャーリーグベースボール(MLB)の1871年以降の試合結果に関する情報が格納されています。データの内容は、試合日時、対戦チーム、スコア、出場選手、打撃成績、投球成績などです。
3. BigQueryでホームアドバンテージを検証する手順
BigQueryで野球データ分析を行う手順は以下の通りです。
3.1 1. データ確認
まず、データセットの内容を確認します。BigQueryコンソールのUIでデータセットのスキーマを確認したり、サンプルデータをプレビューしたりすることで、データの構造や内容を理解することができます。`mlb_game_logs` データセットには、 `games` テーブルが含まれており、試合結果に関する詳細情報が記録されています。
3.2 2. データ加工
必要に応じて、データを加工します。例えば、日付データを年、月、日、曜日などに分割したり、特定の条件でデータをフィルタリングしたり、集計を行ったりします。BigQueryは、SQLを使ってデータ加工を行うための様々な関数を提供しています。
3.3 3. データ分析
加工したデータに対して、SQLクエリを使って分析を行います。例えば、ホームチームとアウェイチームの勝率を計算し、その差を比較することで、ホームアドバンテージの有無を検証することができます。また、球場別の勝率を計算したり、観客動員数と勝率の関係性を分析したりすることも可能です。
3.4 4. 考察と分析結果の活用
分析結果に基づいて、ホームアドバンテージの要因や影響について考察します。例えば、ホームアドバンテージが大きい球場の特徴を分析したり、観客動員数が勝率に与える影響を定量的に評価したりすることができます。これらの分析結果を、チーム戦略や球場運営の改善に役立てることができます。
4. BigQueryを使った野球データ分析例
「ホームアドバンテージ」は、スポーツにおいて頻繁に議論されるテーマです。
今回は、BigQuery公開データセット bigquery-public-data.baseball.games_wide を用いて、野球におけるホームアドバンテージ効果を検証する分析を行いましょう。
このデータセットには、過去の野球の試合結果に関する膨大なデータが蓄積されています。
ホームチームとアウェイチームの成績を比較分析することで、ホームアドバンテージの実態に迫ります。
BigQuery分析例:チーム別ホーム/アウェイ勝率分析
ホームアドバンテージが存在するかどうかを調べるため、チームごとのホームゲームとアウェイゲームの勝率を計算し、比較します。
with base_table as (
SELECT
homeTeamName AS team_name,
CASE
WHEN homeFinalRuns > awayFinalRuns THEN 'home_win'
WHEN homeFinalRuns < awayFinalRuns THEN 'away_win'
ELSE 'tie'
END AS game_result
FROM `bigquery-public-data.baseball.games_wide`
UNION ALL
SELECT
awayTeamName AS team_name,
CASE
WHEN homeFinalRuns > awayFinalRuns THEN 'away_win'
WHEN homeFinalRuns < awayFinalRuns THEN 'home_win'
ELSE 'tie'
END AS game_result
FROM `bigquery-public-data.baseball.games_wide`
)
SELECT
team_name,
COUNTIF(game_result = 'home_win') AS home_wins,
COUNTIF(game_result = 'away_win') AS away_wins,
COUNT(*) AS total_games,
SAFE_DIVIDE(COUNTIF(game_result = 'home_win'), COUNT(*)) * 100 AS home_win_percentage,
SAFE_DIVIDE(COUNTIF(game_result = 'away_win'), COUNT(*)) * 100 AS away_win_percentage
FROM base_table
WHERE team_name not in ("American League", "National League")--チーム以外の単位は除外
GROUP BY 1
ORDER BY home_win_percentage DESC
【BigQuery SQL解説】
- サブクエリでhomeTeamNameとawayTeamNameをteam_nameとして統合し、ホームチームの勝利をhome_win、アウェイチームの勝利をaway_winと定義します。
- COUNTIF()関数で、ホームゲーム勝利数(home_wins)、アウェイゲーム勝利数(away_wins)、総試合数(total_games)を計算します。
- SAFE_DIVIDE関数を使って、ゼロ除算エラーを回避しながら、ホーム勝率(home_win_percentage)とアウェイ勝率(away_win_percentage)を計算します。
- GROUP BY句で、チーム名(team_name)ごとに集計します。
- ORDER BY句で、ホーム勝率(home_win_percentage)の降順に並べ替えます。
【BigQuery分析での活用例】
- ホーム勝率とアウェイ勝率を比較することで、ホームアドバンテージの有無を判断できます。
- ホームアドバンテージの強いチームと弱いチームを比較分析することで、ホームアドバンテージを生み出す要因を探ることができます。
BigQuery分析例:観客動員数とホーム勝率の関係性分析
観客動員数がホームアドバンテージに影響を与える可能性を検証するため、観客動員数(attendance)とホーム勝率の関係を分析します。
WITH home_games_with_attendance AS (
SELECT
gameId,
homeTeamName,
attendance,
CASE
WHEN homeFinalRuns > awayFinalRuns THEN 1
ELSE 0
END AS home_win
FROM `bigquery-public-data.baseball.games_wide`
WHERE attendance IS NOT NULL
)
SELECT
CAST(attendance / 1000 AS INT64) AS div1000_attendance,
round(AVG(home_win) * 100,2) AS home_win_rate,
count(1) game_cnt,
FROM home_games_with_attendance
GROUP BY 1
ORDER BY div1000_attendance
【BigQuery SQL解説】
- WITH句でhome_games_with_attendanceという共通テーブル式を定義し、観客動員数が記録されているホームゲームのデータを取得します。
- CAST(attendance / 1000 AS INT64)で、観客動員数を1000人単位でグループ化します。
- AVG()関数で平均ホーム勝率(home_win_rate)を計算します。
- GROUP BY句で、1000人単位の観客動員数グループごとに集計します。
- ORDER BY句で、平均観客動員数(div1000_attendance)の昇順に並べ替えます。
【BigQuery分析での活用例】
- 観客動員数とホーム勝率の相関関係を分析することで、観客がホームアドバンテージに与える影響を定量的に評価できます。
- チームや球場、試合内容によって観客動員数がどのように変化するのか、さらに詳細な分析を行うことで、観客動員数を増やすための効果的な施策を検討することができます。
注意点
- これらのクエリは、BigQuery公開データに基づいています。データの正確性や最新性については、実際のBigQuery公開データをご自身でご確認ください。
- 当該分析は、様々な要因を総合的に判断する必要があります。これらのクエリは分析の一例であり、意思決定の根拠として単独で使用すべきではありません。
5. FAQ:BigQueryに関するよくある質問
Q1. BigQueryの無料枠を超えて利用すると、どのくらい費用がかかりますか?
A1. 無料枠を超えた場合、従量課金制で料金が発生します。料金は、処理したデータ量やストレージ容量などによって異なります。詳しくは、BigQueryの料金ページをご確認ください。
Q2. BigQueryで使えるSQLは、他のデータベースと同じですか?
A2. BigQueryは標準SQLをサポートしており、他のデータベースで学んだSQLの知識を活かすことができます。ただし、BigQuery独自の関数や構文も存在するため、BigQueryのドキュメントで詳細を確認することをおすすめします。
Q3. SQLの学習には、どのような教材がありますか?
A3. SQLの学習には、オンライン学習サイト、書籍、動画教材など、様々な教材があります。初心者向けの教材から、上級者向けの教材まで、レベルに合わせて選ぶことができます。Googleが提供するBigQueryのチュートリアルもSQLの学習に役立ちます。
6. まとめ:BigQueryでスポーツデータ分析を楽しもう!
BigQueryは、スポーツデータ分析に最適なツールです。BigQueryの高速な処理性能と豊富な分析機能を活用することで、様々なスポーツデータ分析を行うことができます。この記事で紹介した分析例を参考に、BigQueryを使ったデータ分析に挑戦し、スポーツデータ分析を楽しみましょう!
BigQuery導入サポート、転職検討中の方はお問い合わせフォームからご相談くださいませ。
誠心誠意精一杯対応いたします。
【参考URL】
GoogleCloudPlatform:https://console.cloud.google.com/welcome/new
BigQuery:https://cloud.google.com/bigquery?hl=ja
BigQueryリリース情報:https://cloud.google.com/bigquery/docs/release-notes
BigQuery料金:https://cloud.google.com/bigquery/pricing
BigQuery料金無料枠:https://cloud.google.com/bigquery/pricing?hl=ja#free-tier
Google Cloud活用事例:https://cloud.google.com/customers/index.html?hl=ja#
Looker Studio:https://cloud.google.com/looker-studio?hl=ja
Looker Studioサンプル:https://cloud.google.com/bigquery/docs/visualize-looker-studio?hl=ja