時系列予測モデルの複数先予測 データ分析講座(その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など)で時系列予測を実施する場合、多くのツールには再帰的に複数先予測を実施してくれる機能はないので、自分自身でなんとかする必要があります。

 

 

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

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

 

 

   続きを読むには・・・


この記事の著者

高橋 威知郎

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

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


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

もっと見る
実務で使える5つの数理モデル   データ分析講座(その287)

  色々な数理モデルがありますが、実用性ではどうでしょうか。誰もが実務で使えるという観点で考えると、次の3つの回帰モデルと2つのデータ集約...

  色々な数理モデルがありますが、実用性ではどうでしょうか。誰もが実務で使えるという観点で考えると、次の3つの回帰モデルと2つのデータ集約...


データで騙す預言者になる データ分析講座(その280)

  データは非常に強力です。わかりやすく、有無を言わさない破壊力があります。ただ、おかしな使い方や見せ方で、人を騙すこともできます。恐ろし...

  データは非常に強力です。わかりやすく、有無を言わさない破壊力があります。ただ、おかしな使い方や見せ方で、人を騙すこともできます。恐ろし...


データサイエンス実践の成否とは データ分析講座(その127)

◆ データ分析・活用やデータサイエンス実践の成否は、技術力よりもチーム力  「AI」「IoT」「ビッグデータ」これは最近ビジネス界隈で聞く用語です。...

◆ データ分析・活用やデータサイエンス実践の成否は、技術力よりもチーム力  「AI」「IoT」「ビッグデータ」これは最近ビジネス界隈で聞く用語です。...


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

もっと見る
‐販路開拓に関する問題事例‐ 製品・技術開発力強化策の事例(その19)

 前回の事例その18に続いて解説します。多額の資金と労力を費やして開発した知的財産をどのように活用して販路開拓に結びつけるのか、大変重要な問題ですが、販売...

 前回の事例その18に続いて解説します。多額の資金と労力を費やして開発した知的財産をどのように活用して販路開拓に結びつけるのか、大変重要な問題ですが、販売...


‐情報収集で配慮すべき事項(第1回)‐  製品・技術開発力強化策の事例(その9)

 前回の事例その8に続いて解説します。ある目的で情報収集を開始する時には、始めに開発方針を明らかにして、目的意識を持って行動する必要があります。目的を明確...

 前回の事例その8に続いて解説します。ある目的で情報収集を開始する時には、始めに開発方針を明らかにして、目的意識を持って行動する必要があります。目的を明確...


現場情報の自動収集に道具だてを

 一日の作業指示の出し方で、次のどちらの組織の管理レベルの改善がより進むでしょうか?        ・A社 ➡「x製品を◯個」     ・B...

 一日の作業指示の出し方で、次のどちらの組織の管理レベルの改善がより進むでしょうか?        ・A社 ➡「x製品を◯個」     ・B...