IBM BobによるSPSS需要予測時系列モデル解釈の自動化
はじめに
「需要予測モデルを作ったけど、統計の指標をどう読み解けばいい?」
「R²やMAPEと言われても、ビジネス担当者に説明できない…」
そんな悩みを、IBM Bob(AIコーディングアシスタント) が解消します。
このハンズオン記事では、SPSS Modelerで作成した時系列需要予測モデルの出力ファイル(.spv)を Bob に読み込ませ、統計の知識がない人にもわかる分析レポート(HTML) を自動生成する手順を解説します。
完成するレポートはこのような内容です。
- 各店舗の予測精度(R²・MAPE)をわかりやすく解説
- 売上に影響している要因を影響度の大きい順に視覚化
- 店舗間の違いを比較表で整理
- ビジネス施策の候補を箇条書きで提示
テスト環境
| 項目 | バージョン |
|---|---|
| IBM Bob | 2.0.3 |
| SPSS Modeler | SPSS Modeler 19.0 |
| OS | Windows 11 |
事前準備
以下から、レポジトリをZipダウンロード(もしくはクローン)してください。
https://github.com/hkwd/260831DemandForecastTranSPSSBob

解凍したフォルダを右クリックして「IBM Bobで開く」で開いてください。

ルートに.bob\skills\spv-analyzeが見えていればOKです。
ハンズオン手順
Step 1:SPSS Modeler で時系列モデルを実行し .spv を保存する
まず SPSS Modeler で時系列モデルのストリームを開き、モデルナゲットを開きます。
今回のデモでは 2店舗(店舗1・店舗2)の販売数量を目的変数 とした時系列モデルを使用しています。

保存形式は .spv(SPVファイル) を指定してください。
保存ファイル例:数量_Sum.spv
.spv ファイルとは?
SPSS Statistics系のモデル結果を丸ごと保存できる形式です。モデルの構造、フィット統計量、パラメータ推定値などがすべて含まれています。
Step 2:スキルの確認
spv-analyze スキルを以下のようにプロジェクトに配置しています。このスキルによってspvファイルを読み込んで解析します。
Step 3:IBM Bob に .spv ファイルを添付してプロンプトを送る
Bob のチャット画面を開き、保存した .spv ファイルを参照し、以下のプロンプトを入力して送信します。
@数量_Sum.spv
添付したSPVファイルのモデル結果を、spv-analyzeのスキルで分析し、統計の知識がない店舗担当者にも
分かるように説明してください。
次の3点について答えてください。
1. 店舗1の特徴
2. 店舗2の特徴
3. 店舗運営で試せそうなこと
条件:
・統計の専門用語は使わない
・資料に書かれていないことは推測しない
・断定できないことは「可能性があります」と書く
ポイント:スキルの明示的な指定
spv-analyze スキルで分析してと明示することで、Bob が該当スキルを自動的に選択して実行します。
Step 4:スキルの使用を承認する
Bob から「このスキルを使用しますか?」という確認メッセージが表示されます。
「承認(Allow)」 をクリックして実行を許可してください。
Step 5:コマンド実行・ファイル読み込みを承認する
スキルが動き始めると、Bob は内部で以下の処理を順番に行います。
-
.spvファイルを展開 - 構造化マップを取得
- 解析結果を整形する Python スクリプトを実行
途中で以下のような実行確認のポップアップが表示されます。すべて「承認」をクリックして処理を進めてください。

Step 6:生成された分析レポートを確認する
処理が完了すると、Bob がチャット上で分析結果を説明します。
同時に、HTML レポートが表示されます。レポートをワークスペースに保存します。
保存後、統合ブラウザで開きます。整形された分析レポートを確認できます。
レポートには以下のセクションが含まれています。
📊 予測精度(例:店舗2)
| 指標 | 値 | 読み方 |
|---|---|---|
| R²(当てはまりの良さ) | 96% | 販売数量の変動の96%をモデルが説明 |
| MAPE(平均誤差率) | 11.8% | 実績に対して平均±11.8%のズレ |
| Ljung-Box検定 | 問題なし(p=0.317) | 拾いきれていないパターンは残っていない |
| MAXAPE(最大誤差) | 最大96% | ごくまれに大きく外れる日がある |
📊 売上に影響する要因(例:店舗2)
| 要因 | 方向 | 係数 |
|---|---|---|
| 祝日フラグ | ▼ 減少 | −1.41 |
| 販促フラグ | ▲ 増加 | +1.11 |
| 長期休暇フラグ | ▼ 減少 | −0.87 |
| イベントフラグ | ▲ 増加 | +0.77 |
店舗2は「祝日・長期休暇に売上が落ちやすく、販促・イベントで売上が上がりやすい」という特徴があります。
生成されるレポートの内容
店舗2 の分析結果
-
予測精度:非常に高い(R²=96%)
販売数量の動きが規則的で、モデルで説明しやすいパターンを持っています。 -
祝日・長期休暇に売上が落ちる(係数:−1.41, −0.87)
オフィス街や業務用途に近い立地の可能性が考えられます。 -
販促・イベントで売上が上がる(係数:+1.11, +0.77)
集客施策が明確に効果を発揮しています。
店舗1 の分析結果
-
予測精度:やや低い(R²=73%)
売上の変動が大きく、モデルでは説明しきれない動きがあります。 -
祝日・長期休暇に売上が増える(係数:+0.77, +0.23)
店舗2とは逆の傾向。休日に人が集まりやすい立地(商業施設など)の可能性があります。
2店舗の比較まとめ
| 比較ポイント | 店舗2 | 店舗1 |
|---|---|---|
| 予測しやすさ | ✅ 安定(96%) | ⚠️ ブレが大きい(73%) |
| 祝日の影響 | 🔴 減少(−1.41) | 🟢 増加(+0.77) |
| 長期休暇の影響 | 🔴 減少(−0.87) | 🟢 増加(+0.23) |
| 販促効果 | 🟢 大きい(+1.11) | 🟢 ある(+0.45) |
| イベント効果 | 🟢 大きい(+0.77) | 🟢 ある(+0.24) |
レポートから読み取れるビジネス施策
Bob は統計結果から 具体的な施策候補 も自動提示します。
-
店舗2:祝日・長期休暇前に在庫を絞る
祝日や大型連休直前の発注量・陳列量を調整し、廃棄・在庫ロスを削減。 -
店舗2:休日期間中に集中して販促を打つ
売上が落ちやすい時期でも販促・イベントの効果は確認済み。落ち込みを緩和できる可能性があります。 -
店舗1:祝日・長期休暇に合わせて在庫・人員を強化する
売上が増える時期に品切れが起きないよう、発注量の上積みとシフト調整を検討。 -
両店舗:販促・イベントの定期実施を維持する
2店舗ともに効果が確認されているため、継続的な活用が有効です。 -
店舗1:急激な変動への備えを強化する
最大で予測の2倍以上の販売が発生する日があるため、バッファ在庫や補充フローの見直しを検討。
まとめ
| ステップ | 作業内容 |
|---|---|
| Step 1 | SPSS Modeler で時系列モデルを実行し .spv を保存 |
| Step 2 |
spv-analyze スキルの確認 |
| Step 3 | Bob に .spv を添付し spv-analyze スキルでの分析を依頼 |
| Step 4 | スキルの使用を承認する |
| Step 5 | コマンド実行・ファイル読み込みを承認する |
| Step 6 | 生成された分析レポートを確認・保存する |
IBM Bob の spv-analyze スキルを使えば、SPSS Modeler の統計出力を自然言語とHTMLレポートに自動変換できます。
統計の専門知識がないビジネス担当者にもモデルの意味を伝えやすくなり、データドリブンな意思決定を加速できます。
参考
- SPSS Modeler 公式ドキュメント時系列モデルナゲット出力
- IBM Bob
spv-analyzeスキルは.bob/skills/spv-analyze/SKILL.mdで定義されています
※ このレポートは SPSS Modeler が出力した時系列予測モデルの結果に基づいています。データに記録されていない要因(天候・競合・商品構成の変化など)は考慮されていません。施策の実施前には現場の状況と合わせてご判断ください。








