Prophet統計モデル概要

Prophetの予測がどのようなモデルに基づいているのかについて説明します。
この解説はFacebookのProphet原論文の第2章に基づきます。

まずは詳細は置いておいて、全体像について理解しましょう。

y(t)を時期tにおける予測したい値としたとき、Prophetは次の式で定めるようにy(t)を3つの項に分解します。


y(t)=g(t)+s(t)+h(t)+\epsilon_t

分解された3つの項はそれぞれ、g(t)が非周的な数値の変化(トレンド)、s(t)が一週間そして一年間を周期とする周期性変動、h(t)がイレギュラーなカレンダー上の日程(例えば祝日)が与える影響、を表しています。
また\epsilon_tは誤差項で、解析する際にはこれが正規分布であることを仮定します。

この式の形は一般化加法モデル(Generalized Additive Model, GAM)を当てはめて予測するのに適しています。
一般化加法モデルとは回帰モデルの一つで複数の説明変数それぞれに対して非線形なモデル関数を当てはめることができます。
そして一般的にはこの非線形なモデル関数をうまく使うことで平滑化(smoothing)と呼ばれる関数型に依存しない自由な回帰を行います。

平滑化とはざっくりと言うと点の集まりであるデータの上に滑らかな線を引くことです。

以上まとめますと、Prophetが未来を予測する論理は次の流れになります。

  1. 時系列データを時間を横軸にして並べる
  2. その上に滑らかな曲線を引く
  3. その曲線を未来まで延長することで未来を予測する

平滑化を用いて予測するということはARIMAなど伝統的な時系列分析のための統計的手法とは考え方が根本的に違います
時系列分析はその名の通り『時間の流れ』というものを分析の根幹に据えます。
それに対して平滑化がするのは、ただデータを図形的に捉えて滑らかな曲線を引くということだけです。
たとえば時間が右から左に流れているか、それとも左から右に流れるのか、そんなことは無視してしまうのです。

ただしデータについての最も重要な情報を捨ててしまう代償としてProphetは次のメリットを獲得します。

  1. モデル式設計の柔軟性。たとえば年間と週間など異なる周期の項をいくらでも追加することができる
  2. サンプル間隔の柔軟性。サンプリング周期は一定である必要はない。また欠損値があることも問題にならない
  3. 高速に計算できる。よって分析者の手でパラメータを何度も変更して調整することを可能にする
  4. パラメータを人間が理解しやすい。パラメータは『滑らかさ』や『周期性の強さ』などヒューリスティックに捉えることができる

この選択はProphet開発チームがFacebookでの様々な予測において直面した3つの課題、トレンドが途中でコロコロ変わる、複数の周期性を持つ、特別な日(祝日)が流動的に動く、に動機づけられています。
これらの課題はFacebookに限らず日次データ予測では基本的な課題であり、Prophetが一般的に広く活用される可能性を示していると私は思います。

コメントを残す