時系列予測モデルの複数先予測 データ分析講座(その262)

投稿日

データ分析

 

ビジネス実務で昔からあるデータ活用の1つが時系列予測です。来月や来年の売上を予測したいであるとか、明日や来週のPVを予測したいであるとか、1時間先や明日の電力消費量を予測したいであるとか、時間という概念の紐付いた、時系列予測は昔からあります。このような予測をするために、時系列予測モデルを構築し活用するケースが多いです。

 

例えば、4月の売上を予測するとき、昨年の4月の売上を参考に予測する、というのも、ある種の時系列予測モデルと言えます。このような時系列予測モデルを使ったとき、予測対象が複数(例:1日先から7日先、来月から1年間、など)になることが多いです。今回は「時系列予測モデルの複数先予測(Multi-Step ahead prediction)」というお話しをします。

 

【目次】
1. 時系列予測
2. 複数先予測
3. 複数先予測を実現する時系列予測モデル群
4. n期先予測モデルを個々に作る方法(観測データのみ利用)
5. 1期先予測モデルを1つ作り再帰的に利用する方法
6. n期先予測モデルを個々に作る方法(観測データ+予測データ)
7. 時系列の多変量予測モデルを1つ作る方法
8. 時系列予測モデル

【この連載の前回:データ分析講座(その261)視座の高低と将来予測へのリンク】

 

1. 時系列予測

時系列予測モデルを検討するとき、運用時の予測対象期間と学習データ期間を明確にしておく必要があります。

  • 予測時点 
  • 学習データ期間 
  • 予測対象期間

 

実務運用を見据えて明確にします。

ある企業のあるサービスの見込み顧客数予測の例ですと……

  • 予測時点:各月の第3周の金曜日
  • 学習データ期間:予測時点の前日を含む90日間
  • 予測対象期間:翌月(日単位)、翌月から3ヶ月間(月単位) 

 

この企業のあるサービス(一般消費者向けのサービス)の売上は、見込み顧客数と非常に相関しています。見込み顧客数を増やすために色々なマーケティング施策を実施しており、計画していたマーケティング施策をもとに、翌月の日単位の予測と、翌月から3ヶ月月間の予測を実施しています。

 

見込み顧客予測の結果が芳しくないとき、マーケティング施策の修正のための検討を、各月の第3周の金曜日に実施します。例えば、その月が30日間で第3周の金曜日が28日の場合、翌月が1日は4期先予測、2日は5期先予測、…と複数先予測をすることになります。

 

2. 複数先予測

 

時系列予測モデルの基本は1期先予測です。日単位であると想定すると、1期先予測とは、学習データ期間の次の日です。2期先予測とは、学習データ期間の翌々日です。3期先予測とは、学習データ期間の翌翌々日です。ここで1つ問題が起こります。

 

1期先予測の予測モデルは、例えば日単位の場合、前日までの学習データ期間のデータを使いモデル構築します。しかし、2期先予測の予測モデルの場合、そうは行きません。2期先予測対象日の前日は、学習データ期間ではなく、1期先予測対象日だからです。

どうすればいいでしょうか?

 

3. 複数先予測を実現する時系列予測モデル群

複数先予測を実現する方法がいくつかあります。よくある方法が以下の4つです。

  • n期先予測モデルを個々に作る方法(観測データのみ利用)
  • 1期先予測モデルを1つ作り再帰的に利用する方法
  • n期先予測モデルを個々に作る方法(観測データ+予測データ)
  • 時系列の多変量予測モデルを1つ作る方法

 

4. n期先予測モデルを個々に作る方法(観測データのみ利用)

 

一番わかり易いのが、n期先別に個々に予測モデルを構築する方法です。学習データ期間は同じで……

  • 1期先予測モデル:例えば、1期先予測対象日前の過去90日間のデータを使う
  • 2期先予測モデル:例えば、1期先予測対象日前の過去90日間のデータを使う
  • 3期先予測モデル:例えば、1期先予測対象日前の過去90日間のデータを使う

……と必要なだけ作ります。

 

翌月を日単位で予測するならば、31個の予測モデルを準備しておく、ということです。ただ、例えば30期先予測モデルだと、学習データ期間が離れすぎている、という気持ち悪さがあります。

 

5. 1期先予測モデルを1つ作り再帰的に利用する方法

 

1期先予測モデルを使いまわして、複数先予測を実現しようという考え方もあります。例えば、過去90日間のデータを使う予測モデルの場合、利用するデータ期間をスライドさせながら……

  • 1期先予測:1期先予測対象日前の過去90日間のデータを使う
  • 2期先予測:1期先予測対象日前の過去89日間のデータ+前日の予測値のデータを使う
  • 3期先予測:1期先予測対象日前の過去88日間のデータ+前日と前々日の予測値のデータを使う

……といった感じで、予測データを使いながら予測を実施します。

 

予測モデルが1つで済むというのが利点です。ただ、2期先予測、3期先予測、……をするとき、その前までの予測値を過去の観測データの代わりに予測データを利用するという気持ち悪さは生まれます。

 

6. n期先予測モデルを個々に作る方法(観測データ+予測データ)

 

その前までの予測値を過去データの代わりに利用する、ということを前提にした予測モデルを作ったほうがいのでは、という考え方もあります。というこことで、1期先予測モデルを使いまわすのではなく、学習データ期間を変化させながらn期先別に個々に予測モデルを構築しようとなります。学習データ期間を変化させながら……

  • 1期先予測モデル:例えば、1期先予測対象日前の過去90日間のデータを使う
  • 2期先予測モデル:例えば、1期先予測対象日前の過去89日間のデータ+前日の予測値のデータを使う
  • 3期先予測モデル:例えば、1期先予測対象日前の過去88日間のデータ+前日と前々日の予測値のデータを使う

……と必要なだけ作ります。翌月を日単位で予測するならば、31個の予測モデルを準備しておく、ということです。

 

7. 時系列の多変量予測モデルを1つ作る方法

以上の3つの時系列予測モデルは、単変量(1変量)の時系列予測モデルを前提にしています。単変量(1変量)ではなく、多変量の時系列予測モデルを構築すればいいのでは、という考え方もあります。多変量とは、(1期先、2期先、3期先、……)というベクトルにする、ということです。学習データ期間が、1期先、2期先、3期先、…とも同じになります。

 

8. 時系列予測モデル

 

時系列予測モデルで利用できる数理モデルは色々あります。例えば、以下のような時系列に特化した数理モデルもあります。

  • 指数平滑化モデル
  • ARIMAモデル(SA...

データ分析

 

ビジネス実務で昔からあるデータ活用の1つが時系列予測です。来月や来年の売上を予測したいであるとか、明日や来週のPVを予測したいであるとか、1時間先や明日の電力消費量を予測したいであるとか、時間という概念の紐付いた、時系列予測は昔からあります。このような予測をするために、時系列予測モデルを構築し活用するケースが多いです。

 

例えば、4月の売上を予測するとき、昨年の4月の売上を参考に予測する、というのも、ある種の時系列予測モデルと言えます。このような時系列予測モデルを使ったとき、予測対象が複数(例:1日先から7日先、来月から1年間、など)になることが多いです。今回は「時系列予測モデルの複数先予測(Multi-Step ahead prediction)」というお話しをします。

 

【目次】
1. 時系列予測
2. 複数先予測
3. 複数先予測を実現する時系列予測モデル群
4. n期先予測モデルを個々に作る方法(観測データのみ利用)
5. 1期先予測モデルを1つ作り再帰的に利用する方法
6. n期先予測モデルを個々に作る方法(観測データ+予測データ)
7. 時系列の多変量予測モデルを1つ作る方法
8. 時系列予測モデル

【この連載の前回:データ分析講座(その261)視座の高低と将来予測へのリンク】

 

1. 時系列予測

時系列予測モデルを検討するとき、運用時の予測対象期間と学習データ期間を明確にしておく必要があります。

  • 予測時点 
  • 学習データ期間 
  • 予測対象期間

 

実務運用を見据えて明確にします。

ある企業のあるサービスの見込み顧客数予測の例ですと……

  • 予測時点:各月の第3周の金曜日
  • 学習データ期間:予測時点の前日を含む90日間
  • 予測対象期間:翌月(日単位)、翌月から3ヶ月間(月単位) 

 

この企業のあるサービス(一般消費者向けのサービス)の売上は、見込み顧客数と非常に相関しています。見込み顧客数を増やすために色々なマーケティング施策を実施しており、計画していたマーケティング施策をもとに、翌月の日単位の予測と、翌月から3ヶ月月間の予測を実施しています。

 

見込み顧客予測の結果が芳しくないとき、マーケティング施策の修正のための検討を、各月の第3周の金曜日に実施します。例えば、その月が30日間で第3周の金曜日が28日の場合、翌月が1日は4期先予測、2日は5期先予測、…と複数先予測をすることになります。

 

2. 複数先予測

 

時系列予測モデルの基本は1期先予測です。日単位であると想定すると、1期先予測とは、学習データ期間の次の日です。2期先予測とは、学習データ期間の翌々日です。3期先予測とは、学習データ期間の翌翌々日です。ここで1つ問題が起こります。

 

1期先予測の予測モデルは、例えば日単位の場合、前日までの学習データ期間のデータを使いモデル構築します。しかし、2期先予測の予測モデルの場合、そうは行きません。2期先予測対象日の前日は、学習データ期間ではなく、1期先予測対象日だからです。

どうすればいいでしょうか?

 

3. 複数先予測を実現する時系列予測モデル群

複数先予測を実現する方法がいくつかあります。よくある方法が以下の4つです。

  • n期先予測モデルを個々に作る方法(観測データのみ利用)
  • 1期先予測モデルを1つ作り再帰的に利用する方法
  • n期先予測モデルを個々に作る方法(観測データ+予測データ)
  • 時系列の多変量予測モデルを1つ作る方法

 

4. n期先予測モデルを個々に作る方法(観測データのみ利用)

 

一番わかり易いのが、n期先別に個々に予測モデルを構築する方法です。学習データ期間は同じで……

  • 1期先予測モデル:例えば、1期先予測対象日前の過去90日間のデータを使う
  • 2期先予測モデル:例えば、1期先予測対象日前の過去90日間のデータを使う
  • 3期先予測モデル:例えば、1期先予測対象日前の過去90日間のデータを使う

……と必要なだけ作ります。

 

翌月を日単位で予測するならば、31個の予測モデルを準備しておく、ということです。ただ、例えば30期先予測モデルだと、学習データ期間が離れすぎている、という気持ち悪さがあります。

 

5. 1期先予測モデルを1つ作り再帰的に利用する方法

 

1期先予測モデルを使いまわして、複数先予測を実現しようという考え方もあります。例えば、過去90日間のデータを使う予測モデルの場合、利用するデータ期間をスライドさせながら……

  • 1期先予測:1期先予測対象日前の過去90日間のデータを使う
  • 2期先予測:1期先予測対象日前の過去89日間のデータ+前日の予測値のデータを使う
  • 3期先予測:1期先予測対象日前の過去88日間のデータ+前日と前々日の予測値のデータを使う

……といった感じで、予測データを使いながら予測を実施します。

 

予測モデルが1つで済むというのが利点です。ただ、2期先予測、3期先予測、……をするとき、その前までの予測値を過去の観測データの代わりに予測データを利用するという気持ち悪さは生まれます。

 

6. n期先予測モデルを個々に作る方法(観測データ+予測データ)

 

その前までの予測値を過去データの代わりに利用する、ということを前提にした予測モデルを作ったほうがいのでは、という考え方もあります。というこことで、1期先予測モデルを使いまわすのではなく、学習データ期間を変化させながらn期先別に個々に予測モデルを構築しようとなります。学習データ期間を変化させながら……

  • 1期先予測モデル:例えば、1期先予測対象日前の過去90日間のデータを使う
  • 2期先予測モデル:例えば、1期先予測対象日前の過去89日間のデータ+前日の予測値のデータを使う
  • 3期先予測モデル:例えば、1期先予測対象日前の過去88日間のデータ+前日と前々日の予測値のデータを使う

……と必要なだけ作ります。翌月を日単位で予測するならば、31個の予測モデルを準備しておく、ということです。

 

7. 時系列の多変量予測モデルを1つ作る方法

以上の3つの時系列予測モデルは、単変量(1変量)の時系列予測モデルを前提にしています。単変量(1変量)ではなく、多変量の時系列予測モデルを構築すればいいのでは、という考え方もあります。多変量とは、(1期先、2期先、3期先、……)というベクトルにする、ということです。学習データ期間が、1期先、2期先、3期先、…とも同じになります。

 

8. 時系列予測モデル

 

時系列予測モデルで利用できる数理モデルは色々あります。例えば、以下のような時系列に特化した数理モデルもあります。

  • 指数平滑化モデル
  • ARIMAモデル(SARIMAX、VARIMAを含む)
  • 状態空間モデル
  • Prophetモデル
  • 時系列系のニューラルネットワークモデル(RNN,LSTM,GRUなど)

 

時系列に特化した数理モデルは、多くのツールで再帰的に複数先予測を実施してくれる機能がついている場合が多いです。通常のテーブルデータ系の数理モデル(線形回帰やGLMM、階層線形、決定木、ランダムフォレスト、XGBoostなど)も、時系列データから時系列特徴量を生成し説明変数とすることで利用できます。テーブルデータ系の数理モデル(線形回帰やGLMM、階層線形、決定木、ランダムフォレスト、XGBoostなど)で時系列予測を実施する場合、多くのツールには再帰的に複数先予測を実施してくれる機能はないので、自分自身でなんとかする必要があります。

 

 

◆【特集】 連載記事紹介連載記事のタイトルをまとめて紹介、各タイトルから詳細解説に直リンク!!

◆データ分析講座の注目記事紹介

 

 

   続きを読むには・・・


この記事の著者

高橋 威知郎

データネクロマンサー/データ分析・活用コンサルタント (埋もれたデータに花を咲かせる、データ分析界の花咲じじい。それほど年齢は重ねてないけど)

データネクロマンサー/データ分析・活用コンサルタント (埋もれたデータに花を咲かせる、データ分析界の花咲じじい。それほど年齢は重ねてないけど)


「情報マネジメント一般」の他のキーワード解説記事

もっと見る
AIに奪われるべき仕事を守る日本企業:データ分析講座(その332)

  AI技術の進化により、多くの業務やタスクが自動化され、効率化が進められている国々が増えてきました。だが、日本の一部の企業では、その流れ...

  AI技術の進化により、多くの業務やタスクが自動化され、効率化が進められている国々が増えてきました。だが、日本の一部の企業では、その流れ...


見積システムによるDX(その1)

  【目次】 1.アナログ情報をデジタル化 2.プロセス全体をデジタル化 3.価値の創造と利益の拡大   ここ...

  【目次】 1.アナログ情報をデジタル化 2.プロセス全体をデジタル化 3.価値の創造と利益の拡大   ここ...


データ指向ものづくり、生産性を高める設計を可能にするものづくり

 IoT やビックデータは、ものづくりの世界も大きく変えるのは間違いありません。日本の製造業は大手も中小も、この変化に否応なく対応を迫られるはずです。実際...

 IoT やビックデータは、ものづくりの世界も大きく変えるのは間違いありません。日本の製造業は大手も中小も、この変化に否応なく対応を迫られるはずです。実際...


「情報マネジメント一般」の活用事例

もっと見る
電子メール、簡潔過ぎると逆効果

◆電子メール:多忙な人に確実な返信をもらうテクニック  皆様は仕事で電子メールを一日に何通受信しますか、企業の従業員数、所属部署、職務、職位などでも...

◆電子メール:多忙な人に確実な返信をもらうテクニック  皆様は仕事で電子メールを一日に何通受信しますか、企業の従業員数、所属部署、職務、職位などでも...


Web上で試作受注するツールを成功させるポイントとは

        今回は、「Web上で試作受注するツール」を成功させるポイントについて解説します。次の2点がポイントで、この2つを「最優先」に考える必...

        今回は、「Web上で試作受注するツール」を成功させるポイントについて解説します。次の2点がポイントで、この2つを「最優先」に考える必...


‐技術開発の目標について 第2回‐  製品・技術開発力強化策の事例(その16)

 技術開発の目標を解説する以下の項目4点について、前回は、1と2を解説しましたので、今回は、第2回として、3と4を記述します。          1....

 技術開発の目標を解説する以下の項目4点について、前回は、1と2を解説しましたので、今回は、第2回として、3と4を記述します。          1....