🐡

Looker の Forecasting(予測) 機能を使ってみる

2022/11/22に公開

クラウドエースの小坂です。
データウェアハウス構築、最近は特に Looker を活用した分析環境構築プロジェクトのプロジェクトマネージャーをよくやっています。

今回は Looker の Forecasting(予測) 機能を使ってみたので、概要と使い方を紹介してみようと思います。

Looker の Explore の基本的な使用方法を把握している方向けの説明になりますので、
基本的な操作方法等の説明は致しませんのでご了承ください。

Forecasting(予測) 機能とは

Looker の Forecasting は、Explore 上で取得したデータを元に将来の数値を予測する機能です。
https://cloud.google.com/looker/docs/forecasting-in-visualizations

以下の画像のように過去の数値から予測した結果を Visualization 及び Data に表示することが可能です。
(過去の Google Cloud 利用料金の推移から今後の利用料金を予測した結果です)

1

使用にあたっての要件

Forecasting 機能を利用する際に、Explore は以下の要件を満たす必要があります。

  1. dimension は期間 dimension(日付等) を1つのみ選択し、その dimension は dimension fill(ディメンションの塗りつぶし) を有効化する必要があります

https://cloud.google.com/looker/docs/creating-visualizations#filling_in_missing_dates_and_values

  1. 少なくとも1つの measure が含まれること

  2. 結果を 1. で選択したディメンションを用い、降順で並び替えを行っていること

dimension を複数選択していると Forecasting は有効化できず、期間 dimension を昇順にしていても Forecasting を使用すると降順に自動的に変更されます。

使用手順

ざっくりと手順は以下のとおりです。

  1. 期間の dimension を1つ、measure を少なくとも1つ(最大でも5個)選択する
  2. Visualization バーの右にある Forecast ボタンをクリックする
  3. 値を予測したい measure を選択する
  4. 予測する期間の長さを指定する
  5. (オプション)予測間隔・季節性を指定する
  6. Explore で処理を実行する

冒頭に紹介した Google Cloud の利用料金の予測 を実施する場合の手順を画面キャプチャを交えつつ説明していきます。

予測に使用するデータを選択する

まずは予測に使用するデータを選択します。

Forecasting 使用にあたっての要件に従い、dimension 及び measure を選択します。

今回は Google Cloud の利用料金の予測を行うため、以下の dimension 及び measure を選択しました

  • dimension
    • 利用日(GCP を利用して料金が発生した日)
  • measure
    • 利用料(GCP を利用して発生した料金の合計)

他にも必要に応じて Filter 等を用い、予測に使用するデータを絞り込む事が可能です。
(直近3ヶ月の利用料金のみを予測に使用する・BigQuery の利用料金のみを予測する など)

2

今回は直近約3ヶ月の BigQuery の利用料金に絞って予測を行うことにし、上記の通りデータを取得しました。

Forecasting を行うための設定を行う

データを取得できたので Forecasting のための設定を行います。

3

上記の画像の箇所に以下の通り設定を行います。

① Visualization のバーにある Forecast をクリックする
② 予測する measure を選択する(最大5個まで)
③ 予測する 期間の長さ を指定する

こちらで基本的な Forecasting の設定は完了です。

設定を行ったら Explore を実行すると以下の通り予測結果が取得できます。

4

基本的な Forecasting の使い方は以上となります。
非常に簡単に将来の数値の予測を行うことができました。

オプション:予測間隔・季節性を予測に反映する

基本的な Forecasting の使用方法は上記のとおりですが、オプションとして 予測間隔 季節性 をオプションとして指定することが可能です。

予測間隔の設定

Prediction Interval(予測間隔)のオプションを使用すると、予測の不確実性(ばらつき)を表示することが可能になります。
指定した値に応じて予測データの上限と下限が変化します。

5

上記のように Prediction Interval を有効化し間隔の値を指定すると、
グラフ上にアルファベットの I のような形で不確実性(ばらつき)が表現されます。

上記の設定の場合、95%の確率で予測結果が I の区間になる、という意味になります。
この値を高くすれば高くするほど I の間隔は大きくなります。

一般的には「予測区間」と呼ばれるものと同一の考え方のようですが、詳細は私が解説できないため、ここでは説明いたしません。

季節性の設定

Seasonality(季節性) のオプションを有効化すると、予測実行に一定期間のサイクルを適用し予測を行うことが可能になります。

Automatic(自動) を選択すると、一般的な季節性を考慮し 1日 1時間 1ヶ月 などの季節性から最適なオプションを Looker が自動で選択します。

もし一定のサイクルを既に把握している場合には、任意の期間を季節性の期間(1サイクル)として指定をすることが可能です。

例えば以下の通り、Period30 と入力すると、30日間を1サイクルとして設定して予測結果に反映することができます。

6

一方、Period7 と入力すると、7日間を1サイクルとして設定して予測結果に反映できます。

7

利用料金の変化は1週間のサイクルで季節性がある(土日は利用料が少ない など)ため、7日間を1サイクルに指定した場合のほうがそれらしい予測結果になったと思います。

ただ季節性のないデータセットに対して季節性を指定すると予測精度が低下する可能性もあるため、利用にあたっては注意が必要です。

まとめ

Looker の Forecasting 機能は非常に簡単にデータを元に将来の数値を予測することが可能です。

もしこの予測に利用されているアルゴリズム等に興味がある方は以下のドキュメントをご参照ください。
https://cloud.google.com/looker/docs/forecasting-in-visualizations?hl=en#autoregressive_integrated_moving_average_(arima)_algorithm

また機会があれば Looker の機能を紹介してみようと思います。

Discussion