SPSS Modelerの時系列ノードで外部要因も使って予測モデルを作成した場合、将来の外部要因を入力して予測したいことがあります。
外部要因を使った予測モデル
以下のようなデータで「店舗1」の売上を予測したい場合に、「店舗1」の自系列だけではなく、「降水量」「最高気温」「大学講義」「特売」の外部要因を使って予測することができます。
「対象」に「店舗1」、「入力の候補」に「降水量」「最高気温」、「イベントおよび干渉」にフラグ型の「大学講義」「特売」を入れます。
これでモデルを作成すると「降水量」「最高気温」「大学講義」「特売」が使われるモデルが作成されました。すべてラグ0を使っていますので、予測したい当日、つまり未来の「降水量」「最高気温」「大学講義」「特売」が必要となります。
デフォルトでは、「モデルオプション」の「将来の入力値を計算」にチェックが入っているので、予測が要求されると、対象を兼ねていないすべての入力系列に対して、自己回帰モデルが自動的に作成されます。つまり、「降水量」「最高気温」「大学講義」「特売」の外部要因の未来の値を予測する自己回帰モデルがそれぞれ裏で作られています。その結果をもとに「店舗1」の売上予測が行われます。
ですのでこのモデルのままで予測をしても、以下のように「店舗1」の予測結果がでます(裏で予測した外部要因の値は表示はされません)。
将来外部要因を指定
しかしながら、「降水量」「最高気温」は天気予報から入力して、「大学講義」「特売」は予定を入力したいとします。特に「大学講義」「特売」はあらかじめ予定が決まっているものですので、予測するのではなく、人間が正確な値を指定した方が精度が高まることが期待できます。
この場合は、「値をデータに追加するフィールドの選択」をチェックし、外部要因列を追加し、「指定...」を選びます。
そして、外部要因のすべての列の未来の11/23と11/24の値を入力します。
できたモデルで予測を行うと、以下のように未来の11/23と11/24の「降水量」「最高気温」「大学講義」「特売」の外部要因に入力した値が入り、それを反映した「店舗1」の売上の予測結果が算出されます。特に11/24は「特売」=1にしたため、売上の予測結果が大きくなっていることがわかります。
このようにあらかじめ将来の外部要因の値がわかっている場合は、指定をしたほうがよいです。
逆に将来の外部要因が不明なもので、予測が当たりそうにない外部要因の場合には、むしろ不安定要因になるので、その外部要因はそもそも含めないでモデルを作成した方がよいです。
サンプルストリームとデータ
サンプルストリーム
サンプルデータ
- テスト環境
- Modeler 18.5
- Windows 11 64bit
参考
SPSS Modeler ノードリファレンス 5-8 時系列(時系列Autoモデリング)
https://qiita.com/416nishimaki/items/f7842af5af1d6410526d
時系列ノードの使い方がわかりやすく解説されています。