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

 

 

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

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

 

 

   続きを読むには・・・


この記事の著者

高橋 威知郎

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

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


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

もっと見る
PDCAサイクルと「スピード」 データ分析講座(その26)

◆ PDCAサイクルが、データ活用の足かせになるとき  ビッグデータであれリトルデータであれ、ビジネスで成果をあげ続けるためには、継続した運用が必要...

◆ PDCAサイクルが、データ活用の足かせになるとき  ビッグデータであれリトルデータであれ、ビジネスで成果をあげ続けるためには、継続した運用が必要...


データ文化を醸成するには データ分析講座(その121)

◆ データ文化を醸成するための第一歩  データ文化のある会社もあれば、無い会社もあります。またデータ文化のある部署もあれば、無い部署もあります。少な...

◆ データ文化を醸成するための第一歩  データ文化のある会社もあれば、無い会社もあります。またデータ文化のある部署もあれば、無い部署もあります。少な...


DXはIT投資ではなく人財投資へ データ分析講座(その232)

  【この連載の前回:データ分析講座(その231)DXを阻む「鉛筆を舐めておけ文化」へのリンク】 ◆関連解説『情報マネジメントとは』 ...

  【この連載の前回:データ分析講座(その231)DXを阻む「鉛筆を舐めておけ文化」へのリンク】 ◆関連解説『情報マネジメントとは』 ...


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

もっと見る
ソフトウェア特許とは(その2)

4.ソフトウェア特許のとり方    前回のその1に続いて解説します。    ソフトウェア特許の取得方法にはノウハウがあります。特許のことを知らない...

4.ソフトウェア特許のとり方    前回のその1に続いて解説します。    ソフトウェア特許の取得方法にはノウハウがあります。特許のことを知らない...


既存コア技術強化のためのオープン・イノベーション:富士フイルムの例

 2015年7月20日号の日経ビジネスに、富士フイルムの特集が掲載されました。富士フイルムは、既存コア技術強化のためにオープン・イノベーションを果敢に...

 2015年7月20日号の日経ビジネスに、富士フイルムの特集が掲載されました。富士フイルムは、既存コア技術強化のためにオープン・イノベーションを果敢に...


中小製造業のウェブ戦略

 中小製造業がウェブサイトを立ち上げる際、その目的として「自社の信用力を高めるための会社概要的な役割」と考える経営者も少なくない。しかし、当社のクライアン...

 中小製造業がウェブサイトを立ち上げる際、その目的として「自社の信用力を高めるための会社概要的な役割」と考える経営者も少なくない。しかし、当社のクライアン...