時系列予測モデルを学習データとテストデータで精度分析する
1.想定される利用目的
・時系列予測モデルの精度分析
2.サンプルストリームのダウンロード
3.サンプルストリームの説明 時系列モデル以外で予測する場合
a.入力するデータは以下の通りです。2022-01-01から2024-12-01までの3年間の売上が一か月ごとに記録された36レコードです。
b.[フィールド作成]ノードを以下のように編集します。
- 派生フィールド名:
データ区分 - 派生:
条件付き - フィールドのデータ型:
名義型 - if:
日付 < '2024-01-01'←学習データの範囲を設定します - Then:
"1_学習" - Else:
"2_テスト"
[プレビュー]します。2024-01-01より前が"1_学習"、以降が"2_テスト"になります。

通常学習データとテストデータを分割する場合には[データ区分]ノードを使いますが、このノードではデータがランダムに分割されてしまいます。

時系列予測モデルを使う際には、学習データとテストデータがともに時系列に並んでいないと正しくモデルが作れません。そのためフィールド作成ノードで「データ区分」を作っています。
c.[時系列]ノードを編集します。ここでは、時系列モデルを使わずに、過去三か月の売上を説明変数にして線形回帰で売上を予測モデルを作る事を想定します。
選択したフィールドに売上を設定し、スパンに3(過去三か月)を設定します。
[プレビュー]します。各レコードに過去三か月の売上が追加されました。2022-01-01から2022-03-01のデータは過去三か月の売上データが存在しないので削除されています。
d.[データ型]ノードを編集します。「値の読み込み」ボタンを押し、売上のロールを対象、データ区分のロールをデータ区分にします。なおデータ区分の尺度が名義型になっていることも確認してください。[精度分析]ノードにデータ区分を認識させるためにはフラグ型ではなく名義型である必要があります。
e.[線形回帰]ノード接続し、実行します。
g.生成されたモデルナゲットに[精度分析]ノード接続し、実行します。

以下のように学習データとテストデータが分かれて評価されます。学習データは2022-04-01から2023-12-01の21か月分、テストデータは2024-01-01から2024-12-01の12か月分が使われています。

4.TIPS 時系列モデルで予測する場合
時系列モデルでモデルを作る場合も基本的には同じです。[フィールド作成]ノードと[データ型]ノードで、ユーザーがデータ区分を定義します
モデルナゲットを確認すると、2022-01-01から2023-12-01の24か月分が学習データに使われたことがわかります。

少しトリッキーなのは、モデルナゲットではデータ区分の列が失われてしまうことです。
ですので、モデルナゲットの後ろに、[レコード結合]ノードでデータ区分の列を持って来ます。
売上が重複してしまうのでフィルタータブで売上を除外します。

[精度分析]ノードで学習データとテストデータが分かれて評価されます。学習データは2022-01-01から2023-12-01の24か月分、テストデータはやはり2024-01-01から2024-12-01の12か月分が使われています。
5.参考情報
SPSS Modeler ノードリファレンス 5-8 時系列(時系列Autoモデリング)
SPSS Modeler ノードリファレンス目次
SPSS Modeler 逆引きストリーム集(データ加工)











