Slide 1

Slide 1 text

【論文紹介】 Forecasting at Scale Sean J. Taylor, Benjamin Letham, The American Statistician 2018 (NOT PEER REVIEWED) @fhiyo 1

Slide 2

Slide 2 text

Outline - 論文: https://peerj.com/preprints/3190.pdf - 時系列データ分析の枠組みの開発。ソフトウェアとして提供 - time-series dataをprophetに入力するだけで自動的に複数の周期性を計算し、 trendを算出する 2

Slide 3

Slide 3 text

時系列分析とは 時間的に得られる系列的なデータに対する分析。 - 過去の時点に対する推定: 平滑化 (smoothing) - 現在の時点に対する推定: 濾波 (filtering)←観測値をフィルタして「状態」を取り出 すイメージ? - 未来の時点に対する推定: 予測 (forecast / prediction) 例 - 特定の株価の変動から未来の株価が上がるか下がるかを予測する (forecast) - 過去データから上手くデータ間の関係性を表現する線を書く (smoothing) 3

Slide 4

Slide 4 text

普通の分析とどう違う? 一般の回帰分析では最小二乗法 (Ordinary Least Square, OLS) と呼ばれる手法を用 いて分析を行う 最小二乗法の「前提」 - データの独立性: 個々のデータ点は他のデータに対して独立である - 誤差は正規分布 N(0, σ^2) に従い、その分散σ^2は既知である 4 OLSの例

Slide 5

Slide 5 text

前提が成り立たないデータに対してOLSしてみる 5 互いに独立な時系列 データに対してOLS gist: https://gist.github.com/fhiyo/5f3a7b9f058d4410e79a4d086bc188fb

Slide 6

Slide 6 text

前提が成り立たないデータに対してOLSしてみる 6 互いに独立な時系列 データに対してOLS 高い確度で相関があること が示されてしまった gist: https://gist.github.com/fhiyo/5f3a7b9f058d4410e79a4d086bc188fb

Slide 7

Slide 7 text

交差検証がしにくい (できない?) 交差検証: 標本データを訓練用・交差検証用に分割して、解析の妥当性・性能を確認す ること。 時系列データはデータの関連性に方向があるため、下の図のような交差検証用のデー タの交換ができない 7 https://www.kaggle.com/dansbecker/cross-validation

Slide 8

Slide 8 text

そもそも見た感じ難しそう - なんだか威圧感がある (こんなのどう やって分析するの?) - でもこの時系列がランダムに生成され たものではなく、何らかの内部構造が あるのならば、それを定式化できるは ず - 株価なら景気とか、広告なら商品訴求 とかの要因があるはず 8

Slide 9

Slide 9 text

AR, MA, ARMA - AR(1) (Autoregressive): 自己回帰過程 データが自身の一つ前のデータに関係がある過程 9 φ1 = 0.5 ※ W.N.: ホワイトノイズ 平均が0 分散が時刻に依らず一定 自己共分散が0 であるような時系列データ のこと

Slide 10

Slide 10 text

AR, MA, ARMA - MA(1) (Moving Average): 移動平均過程 あるデータとその一つ前のデータが共通成分を持っている ※ 経済学でいうところの「移動平均」とは異なる概念? ref: https://www2.kumagaku.ac.jp/teacher/~sasayama/macroecon/mailmagaarma.html 10 θ1=1

Slide 11

Slide 11 text

AR, MA, ARMA - ARMA(1, 1) (Autoregressive-Mean Average): 自己回帰移動平均モデル AR(1)モデルとMA(1)モデルを組み合わせたもの 11 φ1 = 0.5, θ1 = 1

Slide 12

Slide 12 text

Prophetでやりたいこと 下の例にあるような困難な部分をなんとかしたい - 普通に回帰分析すると偽相関が現れてしまう (トレンドに傾きがあるため) - 周期性 (週、月、年、季節、...) や不規則な祝日などのイベントに対応する必要あり - 外れ値に引っ張られて上手くモデリングができない - そもそも、時系列分析についての知識を持っている人が少ない 自動的に外れ値の対処・周期性の検出を行い、かつ解析結果の解釈性を高めることで ドメイン知識を持っていれば時系列分析が行えるようにしたい 12

Slide 13

Slide 13 text

Analyst-in-the-Loop 13

Slide 14

Slide 14 text

Analyst-in-the-Loop 14 自動化

Slide 15

Slide 15 text

Problems Settings decomposable time series model with three main model component → trend, seasonality, holidays 15 g(t): trend function (not periodic) s(t): periodic changes (e.g. weekly, yearly seasonality) h(t): the effects of holidays ε_t: error function (generally, obeyed normally distribution)

Slide 16

Slide 16 text

Sample Data -- Number of Event on Facebook 16

Slide 17

Slide 17 text

Sample Data -- Number of Event on Facebook 17 明らかに浮いて いるデータ 今までとは違う傾向 年末の謎の 落ち込み

Slide 18

Slide 18 text

Prophet Forecast 18

Slide 19

Slide 19 text

予測結果を分解するとこんな感じ 19

Slide 20

Slide 20 text

既存手法との比較 既存の4つの手法との比較 (なぜ3点だけ?) auto.arima: ARIMAモデルでパラメータを自動推 定したもの ets: 指数平滑化法。直近の過去のデータに強い 影響を受ける snaive: ランダムウォークに週の周期性を加えたも の? tbats: 指数平滑化された状態空間モデル? 祝日などの効果も織り込める ARIMAXもあるがそ ちらとは比較していない様子 20

Slide 21

Slide 21 text

既存手法との比較 21 end-of-year dipに対して 過剰に反応 trendの変化 を検出できて ない

Slide 22

Slide 22 text

トレンド予測モデル: Saturating Growth Model - logistic function 22 https://en.wikipedia.org/wiki/Logistic_function#/medi a/File:Logistic-curve.svg C: carrying capacity (環境収容力) k: growth rate (成長率) m: offset parameter 環境収容力と成長率が時 刻依存のバージョン → s_j: change pointsがある 時刻 (j=1, ..., S) δ_j: 時刻s_jにおけるトレン ドの変化率

Slide 23

Slide 23 text

トレンド予測モデル: Piecewise Linear Model 閾値を設定しないバージョン。 piecewiseなので、区間ごとにlinearなtrendを持っている、と仮定したもの。 23 tが定まれば定数かつ、 aが1になるまではgは時 刻依存で変化しない →区間ごとに線形

Slide 24

Slide 24 text

Trend Forecast Uncertainty - S個のChangePointsを定義、その点tjでは trendが変化し、その変化は δ_tj ~ Laplace(0, τ)である。 δ: 成長率のベクトル。 24

Slide 25

Slide 25 text

Seasonality フーリエ変換 N: 整数倍の周波数の数 P: period > For yearly and weekly seasonality we have found N = 10 and N = 3 respectively to work well for most problems. > In our generative model we take β ∼ Normal(0, σ^2) to impose a smoothing prior on the seasonality. → 平滑化されたpriorのβを正規分布から発生させて作る 25 seasonalityの不確実性を計算したい場合は、 MAP推定で はなくMCMCを行うようにすればよい seasonalityのNはAICなどでProphet側が自動で調整する 例: N=10で年周期のX(t)

Slide 26

Slide 26 text

Holidays and Events 周期的でない 祝日はその前後も似たような影響を受ける 26 Di: ある祝日とその前後の日にち (祝日とその前後何日含めるかは ユーザーが入力する )