BQMLを使用した多変量時系列予測

BQMLを使用した時系列予測

 

去年の冬、ウズベキスタンの首都タシケントで開催されたGDG DevFest Tashkent 2022で、「BQMLによるより予測可能な時系列モデル」というテーマでプレゼンテーションを行いました。

プレゼンテーションで使用した資料とコードをDevFest後に共有する予定でしたが、時間が経ち、BQMLには一部内容が重複する新機能がリリースされました。

そのため、代わりに新機能と有効な内容の一部について簡単に言及します。

 

時系列モデルとBQML

 

「時系列データ」は、多くの組織でさまざまな目的に使用されており、「予測分析」は時間における「未来」に関するものであることを理解しておくことが重要です。時系列の予測分析は、短期から長期までさまざまな目的で使用されており、不正確さやリスクはあるものの、着実に改善されています。

「予測」というものが非常に有用であるため、時系列データを持っている場合は時系列予測モデルを適用しようとするかもしれません。しかし、時系列予測モデルは通常、計算量が多く、データが多い場合はさらに計算量が多くなります。そのため、処理や分析のために煩雑で難しい作業が必要です。

データ管理にGoogle BigQueryを使用している場合、簡単で簡便な方法でデータに機械学習アルゴリズムを適用するために、BQML(BigQuery ML)を使用することができます。多くの人々が大量のデータを処理するためにBigQueryを使用しており、その多くは時系列データです。そして、BQMLは時系列モデルもサポートしています。

BQMLで現在サポートされている時系列モデルの基礎は、自己回帰和分移動平均(ARIMA)モデルです。ARIMAモデルは既存の時系列データのみを使用して予測を行い、短期予測性能が良いことで知られており、ARとMAを組み合わせるため、幅広い時系列モデルをカバーすることができる人気のあるモデルです。

ただし、このモデルは全体的に計算量が多く、正規性を持つ時系列データのみを利用するため、傾向や季節性のある場合には使用するのが難しいです。そのため、BQMLのARIMA_PLUSでは、いくつかの追加のオプションとして時系列分解、季節要因、スパイクとディップ、係数の変化などをモデルに追加することができます。また、これらを個別に進めてモデルを手動で調整することもできます。また、日付に関連する情報を手動で追加する必要がないプラットフォームを使用する利点の一つとして、自動的に休日オプションを組み込むことで周期性を調整することもできます。

   

詳細はこちらのページを参照してください。

ただし、実際のアプリケーションにおいては、時系列予測はこれほど単純ではありません。もちろん、ARIMA_PLUSでは複数のサイクルを特定し、複数の時系列に介入を追加することができますが、時系列データには多くの外部要因が関連しており、ほとんどの場合、単独で起こるイベントはわずかです。時系列データにおける定常性を見つけることは難しい場合があります。

元のプレゼンテーションでは、これらの現実世界の時系列データを取り扱うための方法について、時系列を分解し、分解されたデータを整理し、Pythonにインポートし、他の変数と組み合わせて多変量時系列関数を作成し、因果関係を推定して予測モデルに組み込み、イベントの変化に伴う効果の程度を推定する方法について説明しました。

 

新機能: ARIMA_PLUS_XREG

 

そして、ここ数か月間で、外部変数(ARIMA_PLUS_XREG、XREG)を使用して多変量時系列関数を作成するための新機能がBQMLに追加されました

詳細はこちらのページを参照してください(プレビュー版として2023年7月現在ですが、おそらく今年後半に利用可能になると思われます)。

公式のチュートリアルを適用して、伝統的な単変量時系列モデルと比較してみることにしました。その動作を確認してみましょう。

手順はチュートリアルと同じですので、重複することはありませんが、以下に私が作成した2つのモデルを紹介します。まず、伝統的なARIMA_PLUSモデルを作成し、次に同じデータを使用して気温と風速を追加したXREGモデルを作成しました。

# ARIMA_PLUS

# ARIMA_PLUS
CREATE OR REPLACE MODEL test_dt_us.seattle_pm25_plus_model
OPTIONS (
 MODEL_TYPE = 'ARIMA_PLUS',
 time_series_timestamp_col = 'date',
 time_series_data_col = 'pm25') AS
SELECT date, pm25
FROM test_dt_us.seattle_air_quality_daily
WHERE date BETWEEN DATE('2012-01-01') AND DATE('2020-12-31')
#ARIMA_PLUS_XREG
CREATE OR REPLACE  MODEL test_dt_us.seattle_pm25_xreg_model
 OPTIONS (
   MODEL_TYPE = 'ARIMA_PLUS_XREG',
   time_series_timestamp_col = 'date',
   time_series_data_col = 'pm25') AS
SELECT  date, pm25, temperature, wind_speed
FROM test_dt_us.seattle_air_quality_daily
WHERE  date BETWEEN DATE('2012-01-01') AND DATE('2020-12-31')

 

これらの複数のデータを使用するモデルは、次のようなものになります

   

2つのモデルはML.Evaluateで比較されます。

SELECT  * 
FROM  ML.EVALUATE
         (  MODEL test_dt_us.seattle_pm25_plus_model, 
         (  SELECT  date,  pm25
           FROM  test_dt_us.seattle_air_quality_daily 
           WHERE  date > DATE('2020-12-31')  ))
SELECT  * 
FROM  ML.EVALUATE
          (  MODEL test_dt_us.seattle_pm25_xreg_model, 
          (  SELECT  date,  pm25,  temperature,  wind_speed 
             FROM  test_dt_us.seattle_air_quality_daily 
             WHERE  date > DATE('2020-12-31')  ),
          STRUCT(  TRUE AS perform_aggregation,  30 AS horizon))

 

結果は以下の通りです。

ARIMA_PLUS

   

ARIMA_PLUS_XREG

   

XREGモデルはMAE、MSE、MAPEなどの基本的なパフォーマンス指標で優れていることがわかります。(もちろん、これは完璧な解決策ではなく、データに依存するものですが、別の有用なツールを手に入れたと言えます。)

多変量時系列分析は、多くの場合必要な選択肢ですが、さまざまな理由で適用が難しいことがあります。しかし、データと分析手法の要因がある場合には、これを利用することができるようになりました。多くの場面で役立つオプションがあることを知ることは良いことです。また、それが役立つことを願っています。     JeongMin Kwon は、10年以上の実務経験を持つフリーランスのシニアデータサイエンティストです。機械学習モデルとデータマイニングを活用しています。  

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

データサイエンス

Rendered.aiは、合成データの生成にNVIDIA Omniverseを統合します

Rendered.aiは、プラットフォームとして提供される合成データ生成(SDG)により、開発者、データサイエンティスト、その他の...

AIニュース

「AIが顧客がAmazonでより良いショッピングをするのを支援している方法」

顧客のレビューは、オンラインショッピングの基盤となり、購入前に貴重なインサイトを提供することで、購入者に力を与えてい...

AI研究

「この新しいAI研究は、事前学習されたタンパク質言語モデルを幾何学的深層学習ネットワークに統合することで、タンパク質構造解析を進化させます」

科学的な探求には、魅力的で複雑な構造を持つタンパク質による魅力的で不思議な方法で重要な生物学的プロセスを支配する分子...

データサイエンス

倫理的なAIと責任あるデータサイエンス:開発者に何ができるか?

この記事では、アルゴリズムの偏り、解釈可能性、プライバシー保護に対処し、責任あるデータサイエンスのためのAI倫理につい...

データサイエンス

ディープラーニングのマスタリング:分岐推定を使った非線形概算の芸術 パート1

過去の1年間で、私たちはディープラーニングの人気が爆発的に急増しているのを目撃してきましたGPT-4のような大規模な言語モ...

AIニュース

インドでのGoogle検索は今やAIによって動作しています | 使い方を学びましょう

Googleは、インド人と日本人が情報の広大な領域を探索する方法を再定義する画期的なイノベーションを発表しました。人工知能...