時系列データに対して行うProphetについて,実践例を用いて解説します.
実践例で用いている統計解析アプリStaatAppはこちらからダウンロードしてください.(Prophet機能は有料版です)
Prophetとは
Prophetとは,Facebookが開発した時系列予測モデルです.特徴は使いやすさと柔軟性です.Prophetはトレンド・季節性・祝日などの影響を自動的に考慮してモデルを構築します(StaatAppでは祝日を考慮できません).また,欠損値や外れ値を自動的に扱うことができ,さまざまな時系列データに対して有効な予測モデルを構築できます.
時系列データの予測でよく用いられるARIMAモデルではパラメータの調整など,予測精度高めるためには専門的な知識が必要ですが,Prophetでは自動で調整されるため気軽に将来予測を行うことができます.
予測パフォーマンスについても非常に高いことが認知されており,AWS内での将来予測演算にも用いられています.
Prophetの手順
Prophetを用いた将来予測は以下の手順で行います.
Prophetでは基本的にどのような時系列データでも予測可能ですが,入力データとして日時形式のデータを用意する必要があります.日時形式のデータがない場合は,前処理で日時データの作成を行います.
StaatAppを用いたProphet
統計解析アプリStaatAppを用いて,実際にProphetを用いた将来予測を行います.サンプルデータとして,マクロ経済学データセットmacrodataを使用します.このデータには1959年の第1四半期から2009年の第3四半期までの203行のデータです.今回の解説ではrealgdp(実質GDP)を対象にして分析を行います.
① データの可視化
折れ線グラフ機能を用いて,サンプルデータの可視化を行います.realgdpは長期変動があることがわかります.
② 日時データの作成
サンプルデータにはProphetで使える形式の日時データが含まれていないため,日時データの作成を行います.また,Prophetでは将来予測を行う場合の単位が,1日もしくは1時間になります.サンプルデータは1959年の第一四半期から四半期ごとのデータですが,将来予測を適切に行うために意図的に以下のように設定を行い,日時データを作成します.
日時データ作成機能では,基準日時から任意の間隔の日時データを対象のアクティブデータ行数分作成して,アクティブデータセットの最初の列に追加します.
因みにProphetで推奨されている日時データの形式は,”YYYY-MM-DD”もしくは”YYYY-MM-DD hh:mm:ss”になります.
③ モデルの作成
Prophet機能でモデル作成を行います.「予測対象データ」に予測を行いたい変数を,「時間データ」に日時データを選択します.日時データは先程作成したデータを選択しています.
「モデル作成」ボタンをクリックするとモデルが作成されて,モデルの評価指標(MAE・MSE)が表示されます.
Prophet機能では作成したモデルに対して,ホールド・アウト検証を行うことが可能です.ボックス・ジェンキンス法で解説している方法と同様に行うことができます.
④ 将来予測
「予測」タブで将来予測を行います.任意の予測時点数を選択して,「算出」をクリックすると予測値が表示されます.
「描画」ボタンをクリックすると将来予測値を含むグラフが表示されます.
Prophet機能の詳細仕様
StaatAppのProphet機能ではProphetのPython用ライブラリを使用しています.ただし,ProphetライブラリをStaatApp自体に組み込むことが仕様上難しいことから,Prophetの演算処理はAWS上にあるProphetサーバで行っています.
StaatAppではProphet以外の全ての機能は,使用しているPC内で完結しますがProphetのみはアプリを利用してサーバ上にデータをアップロードし,演算結果をPC上で表示しています.アップロードされたデータについては演算後に即削除され二次利用は一切行っておりません.ただし,インターネットに接続できない環境ではProphetはご利用いただけません.また,買い切り版StaatAppでもProphetは使用できません.
Prophetの公式ドキュメントは以下をご覧ください.