記事の対象者と解消できるお悩み
【対象者】
初中級データアナリスト
【興味関心】
- 未来予測
- 売上予測
- 需要予測
- 顧客行動分析
- リスク管理
- データに基づいた意思決定
【解消できるお悩み】
- 来月の売上を予測したいけど、どうすればいいか分からない…
- 季節変動を考慮した、精度の高い需要予測をしたい
- 顧客の行動パターンを分析して、将来の行動を予測したい
- リスクを事前に予測し、対策を立てたい
- データに基づいて、より的確なビジネス判断をしたい
記事作成者
【人物】株式会社志庵 代表取締役 佐藤 光 起業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兆行のデータ
概要
ビジネスにおいて、未来を予測することは非常に重要です。将来の売上、顧客の行動、市場のトレンドなどを予測することで、より効果的な戦略を立て、競争優位性を築くことができます。時系列分析は、時間とともに変化するデータを分析し、将来の予測を行うための強力な手法です。
Google Cloudのデータウェアハウス「BigQuery」は、その強力な分析機能と豊富な時系列分析関数、そして無料の公開データセットを活用することで、誰でも簡単に時系列分析を行うことができます。この記事では、BigQueryを使って過去のデータから未来を予測する方法を、具体的な例を交えながら解説します。データ分析初心者の方でも、BigQueryを使えば、時系列データ分析の基礎を理解し、ビジネスに役立つ予測を行うことができるようになるでしょう。
目次
- BigQueryで時系列分析を行うメリット
- 時系列データとは?
- BigQueryで利用可能な時系列分析手法
- 時系列分析に役立つBigQueryの無料公開データセット
- BigQueryで時系列分析を行う手順
- BigQueryを使った時系列分析例
- FAQ:BigQueryに関するよくある質問
- まとめ:BigQueryで時系列分析を行い、未来への洞察を得よう!
1. BigQueryで時系列分析を行うメリット
BigQueryは、時系列分析に最適なツールです。その理由は、以下の様なメリットがあるからです。
- 大規模データの高速処理: 膨大な時系列データを高速に分析できるため、長期的なトレンドや季節変動を効率的に把握できます。
- 様々なデータソースとの連携: 公開データ、自社データ、外部データなど、様々なデータソースと連携できるため、時系列分析に必要なデータを統合的に分析できます。
- 豊富な分析関数: SQLには、LAG、LEAD、移動平均などの時系列分析に役立つ関数が豊富に用意されています。また、BigQuery MLを使えば、機械学習による時系列予測モデルも簡単に構築できます。
- コストパフォーマンスの高さ: 従量課金制なので、必要な時に必要なだけ利用でき、コストを抑えられます。
- 高いセキュリティ: Google Cloudの強固なセキュリティ基盤により、安心してデータを管理できます。
2. 時系列データとは?
時系列データとは、一定の時間間隔で観測されたデータのことです。例えば、日々の売上データ、毎月の顧客数、毎年の気温などが時系列データです。時系列データの特徴は、データが時間順に並んでいることです。このため、時間経過に伴うデータの変化を分析することができます。
3. BigQueryで利用可能な時系列分析手法
BigQueryでは、様々な時系列分析手法を利用することができます。以下は、代表的な手法の例です。
- 移動平均: 一定期間の平均値を計算することで、データのノイズを除去し、トレンドを把握しやすくします。
- 自己回帰モデル(ARモデル): 過去のデータから将来の値を予測するモデルです。
- 移動平均自己回帰モデル(ARMAモデル): ARモデルと移動平均モデルを組み合わせたモデルです。
- ARIMAモデル: ARMAモデルに、データの差分を取ることで、非定常な時系列データにも対応できるようにしたモデルです。
BigQuery MLでは、ARIMAモデルを簡単に構築することができます。
4. 時系列分析に役立つBigQueryの無料公開データセット
BigQueryには、時系列分析に役立つ様々な無料公開データセットが用意されています。以下は、その一例です。
- Google Trends: 特定のキーワードの検索ボリュームの推移を分析できます。市場トレンドや季節変動を把握するのに役立ちます。
- NOAA Global Surface Summary of the Day Weather Data: NOAA(アメリカ海洋大気庁)が提供する、世界各地の地上気象観測データです。気温、降水量、風速などの日々の観測データが含まれており、気象データの分析に役立ちます。
- Global Historical Climatology Network – Daily: GHCN-Daily(全球歴史気候ネットワーク – 日次)は、世界中の気象観測所の気温や降水量などの日次データを収集したデータセットです。長期的な気候変動を分析するのに役立ちます。
5. BigQueryで時系列分析を行う手順
BigQueryで時系列分析を行う手順は以下の通りです。
5.1 1. データ収集
まず、分析対象とする時系列データと、分析の目的を明確化します。BigQueryの無料公開データセット、自社データ、外部データなどを利用します。データ収集の際には、データの正確性、網羅性、最新性に注意する必要があります。
5.2 2. データ加工
収集したデータは、分析しやすいように加工する必要があります。例えば、データのクリーニング、変換、集計などを行います。BigQueryは、SQLを使ってデータ加工を行うための様々な関数を提供しています。例えば、日付データから曜日や時間帯を抽出したり、期間ごとの平均値を計算したりすることができます。
5.3 3. 予測モデル構築
加工したデータを使って、時系列予測モデルを構築します。BigQuery MLを使用すれば、SQLを使って簡単に機械学習モデルを構築できます。ARIMAモデルなど、様々なモデルから、分析の目的に合わせて適切なモデルを選択することができます。
5.4 4. 予測の実行
構築した予測モデルを使って、将来の値を予測します。BigQuery MLでは、`ML.FORECAST`関数を使って、簡単に予測値を計算することができます。
5.5 5. 評価と改善
予測モデルの精度を評価し、必要に応じてモデルを改善します。BigQuery MLでは、`ML.EVALUATE`関数を使って、モデルの精度を評価することができます。予測精度が低い場合は、データを追加したり、モデルのパラメータを調整したりすることで、モデルを改善することができます。
6. BigQueryを使った時系列分析例
今回は、公開データセットbigquery-public-data.austin_311.311_service_requestsを使って、過去のデータから未来を予測する時系列分析をBigQueryで実践してみましょう。
※BigQueryMLを使った本格的なAIモデル作成は別途上級者向け記事で行います。
BigQuey分析例:曜日ごとのサービスリクエスト件数の推移
WITH daily_requests AS (
SELECT
date(created_date) as created_date,
EXTRACT(DAYOFWEEK FROM created_date) AS day_of_week,
COUNT(*) AS request_count
FROM bigquery-public-data.austin_311.311_service_requests
GROUP BY 1,2
)
, sevenday_rolling_average AS (
SELECT
created_date,
day_of_week,
request_count,
AVG(request_count) OVER (PARTITION BY day_of_week ORDER BY created_date ASC ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS rolling_avg
FROM daily_requests
)
SELECT
created_date,
day_of_week,
request_count,
rolling_avg
FROM sevenday_rolling_average
ORDER BY created_date, day_of_week
上記結果は下記のように描画すると理解しやすくなりますので、同様の手順で実行してみましょう。
【BigQuery SQL解説】
- WITH句を使って、段階的にデータを加工しています。
- daily_requests: 日付 (created_date) と曜日 (day_of_week) ごとのサービスリクエスト件数 (request_count) を集計します。
- sevenday_rolling_average: daily_requestsの結果を用いて、曜日ごとの7日間移動平均 (rolling_avg) を計算します。AVG() OVER()句とROWS BETWEEN 6 PRECEDING AND CURRENT ROWを使って7日間の移動平均を計算します。
- 最終的なSELECT句では、日付、曜日、リクエスト件数、7日間移動平均を出力します。
【BigQuery分析での活用例】
- 曜日ごとのサービスリクエスト件数の傾向を把握し、特定の曜日にリクエストが集中する傾向があるか分析できます。
- 7日間移動平均を用いることで、日々の変動を平滑化し、より長期的なトレンドを把握できます。
- 将来のリクエスト件数を予測するモデルの構築に役立ちます。
BigQuey分析例:時間帯ごとのサービスリクエスト件数と傾向
select
*,
AVG(request_count) OVER (ORDER BY hour ASC ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING) AS rolling_avg
from (
SELECT
EXTRACT(HOUR FROM created_date) AS hour,
COUNT(*) AS request_count
FROM bigquery-public-data.austin_311.311_service_requests
GROUP BY hour
)
ORDER BY hour
【BigQuery SQL解説】
- EXTRACT(HOUR FROM created_date) で、サービスリクエストの作成日時の時間帯を抽出します。
- COUNT(*) で、時間帯ごとのサービスリクエスト件数をカウントします。
- AVG(COUNT(*)) OVER (ORDER BY EXTRACT(HOUR FROM created_date) ASC ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING)で、前後2時間ずつを含めた5時間移動平均を計算します。
- GROUP BY 句で、時間帯ごとに集計します。
- ORDER BY 句で、時間帯順に並べ替えます。
【BigQuery分析での活用例】
- サービスリクエストが集中する時間帯を特定し、人員配置や対応体制の最適化に役立てることができます。
- 5時間移動平均を分析することで、時間帯によるリクエスト数の変化をよりスムーズに捉え、傾向を把握しやすくなります。
- 特定の時間帯に集中するリクエスト内容を分析することで、市民のニーズや行動パターンを把握することができます。
【注意点】
- これらのクエリは、BigQuery公開データに基づいています。データの正確性や最新性については、実際のBigQuery公開データをご自身でご確認ください。
- 分析は、様々な要因を総合的に判断する必要があります。これらのクエリは分析の一例であり、意思決定の根拠として単独で使用すべきではありません。
7. FAQ:BigQueryに関するよくある質問
Q1. BigQueryの無料枠を超えて利用すると、どのくらい費用がかかりますか?
A1. 無料枠を超えた場合、従量課金制で料金が発生します。料金は、処理したデータ量やストレージ容量などによって異なります。詳しくは、BigQueryの料金ページをご確認ください。
Q2. BigQueryで使えるSQLは、他のデータベースと同じですか?
A2. BigQueryは標準SQLをサポートしており、他のデータベースで学んだSQLの知識を活かすことができます。ただし、BigQuery独自の関数や構文も存在するため、BigQueryのドキュメントで詳細を確認することをおすすめします。
Q3. SQLの学習には、どのような教材がありますか?
A3. SQLの学習には、オンライン学習サイト、書籍、動画教材など、様々な教材があります。初心者向けの教材から、上級者向けの教材まで、レベルに合わせて選ぶことができます。Googleが提供するBigQueryのチュートリアルもSQLの学習に役立ちます。
8. まとめ: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