本記事の目的
本記事では、機械学習モデル(XGBoost Tree)を用いて、少ないデータから将来予測を行う実践手法を解説します。
IBM SPSS Modeler に搭載されている XGBoost Tree を用いて、市場投入直後の新製品のような 限られた実績データから手堅く将来予測をする方法を紹介します。
通常、このような短期間データでは時系列モデルによる予測は難しく、予測自体を見送るケースも少なくありません。
しかし本記事では、
- futureINDEX による未来位置の明示
- XGBoost を用いた回帰モデル化
- 予測値を順次反映していく反復予測
を組み合わせることで、限られたデータでも多段階の将来予測を実行可能にするアプローチを示します。
また、十分な期間がある場合に機械学習を用いて予測する方法はこちらの記事を参考にしてください。
予測精度の確認には MAPE(Mean Absolute Percentage Error) を使用します。
サンプルストリームのダウンロード
本記事で使用するストリームは、以下の GitHub リンクからダウンロードできます。
サンプルデータの説明
今回使用するデータは、2025 年 1 月〜9 月の 9 ヶ月分の数量データです。
このわずか 9 行のデータを使って、未来 3 ヶ月(10 月・11 月・12 月)を予測します。
| 年月 | 数量 |
|---|---|
| 2025年1月 | 186217 |
| 2025年2月 | 190484 |
| 2025年3月 | 211079 |
| 2025年4月 | 216570 |
| 2025年5月 | 172422 |
| 2025年6月 | 217260 |
| 2025年7月 | 226207 |
| 2025年8月 | 239382 |
| 2025年9月 | 283350 |
| 2025年10月 | |
| 2025年11月 | |
| 2025年12月 |
サンプルストリームの説明
今回使用するストリーム全体図は以下のとおりです。
このストリームでは、
- futureINDEX の付与
- XGBoost による予測
- 未来データの置換
- MAPE の計算
という一連の処理を行います。
futureINDEX の説明
予測処理の中で重要な役割を果たすのが futureINDEX です。
futureINDEX は、数量が undef(=未来の行)になっているレコードを検出し、1 から順に番号を振る ためのフィールドです。
| 年月 | futureINDEX |
|---|---|
| 2025-10 | 1 |
| 2025-11 | 2 |
| 2025-12 | 3 |
futureINDEX を使うことで、未来のどの月を予測しているか をモデルに明示的に伝えることができます。
反復予測アプローチ
本記事では、1ヶ月ずつ予測 → 予測値を数量に反映 → 再学習 を繰り返す反復予測方式を採用します。
手順
- 次の1ヶ月を予測
- 予測値を数量フィールドに反映
- その状態でモデルを再学習
- 次の月を予測
- 必要な期間まで繰り返す
この方法の特徴
未来の予測値を段階的にモデルへ取り込むことで、各ステップごとに学習条件が更新されます。これにより、単純な一括予測に比べて、時系列の流れを踏まえた予測プロセスを構築できます。
また、この反復プロセスを継続することで、理論上は任意の先の期間まで予測を展開することが可能です。
予測結果
赤い線が予測値です。
MAPE の計算
MAPE(Mean Absolute Percentage Error)は、実績値と予測値の誤差を割合で表す指標で、値が小さいほど精度が高いことを意味します。
計算式:
MAPE = | (実績値 - 予測値) / 実績値 |
今回の反復予測における MAPE は 0.050 でした。
なお、実績値が存在する期間のみを対象に MAPE を算出しています。
未来の予測値そのものではなく、モデルが「過去データをどれだけ正確に再現できているか」を評価するためです。
まとめ
本記事では、XGBoost Tree を用いて、わずか 9 ヶ月という限られたデータから将来予測を行う実装方法を紹介しました。
本手法の重要なポイントは次の通りです。
- 通常であれば予測が難しい短期データでもモデル化できる
- futureINDEX により未来位置を特徴量として扱える
- 予測値を反映しながら段階的に将来予測を進められる
- 多段階(N 期先)予測を継続的に展開できる
一般的に、3 サイクル以上のデータが必要とされる時系列予測アルゴリズムは、今回のような極めて短期間のデータでは適用が難しいケースが多くあります。
しかし、futureINDEX と反復予測を組み合わせることで、短期データでも予測精度を確保できることが確認できました。
今後は、ラグ数の調整や季節性の取り込みなど、さらなる改善も期待できます。

