このチュートリアルでは、あるカタログ会社が、10年分の販売データに基づいて、紳士服の月次売上を予測する例について説明します。
予測帯域幅利用のチュートリアルでは、エキスパート・モデラーが時系列に最も適切なモデルを決定する方法を学びました。 さて、モデルを選択する際に利用できる2つの方法、指数平滑法とARIMAについて詳しく見ていきましょう。
- 系列は全体的なトレンドを示しているか。 当てはまる場合、そのトレンドは一定したものに見えるか、それとも時間の経過とともに減衰するように見えるか。
- 系列は季節性を示しているか。 当てはまる場合、季節的変動は時間の経過とともに大きくなっているか、あるいは後続の期間でも一定しているように見えるか。
チュートリアルを試す
このチュートリアルでは、以下のタスクを実行します:
モデラーのフローとデータセットのサンプル
このチュートリアルでは、サンプル・プロジェクトの「カタログ売上予測」フローを使用します。 使用するデータファイルはcatalog_seasfac.csvである。 次の図は、モデラーのフロー例を示しています。
タスク 1:サンプルプロジェクトを開く
サンプル・プロジェクトには、いくつかのデータ・セットとモデラー・フローのサンプルが含まれています。 サンプル・プロジェクトをまだお持ちでない場合は、チュートリアル・トピックを参照してサンプル・プロジェクトを作成してください。 次に、以下の手順でサンプルプロジェクトを開きます:
- Cloud Pak for Dataの ナビゲーションメニュー「」から、Projects > View all Projetsをc選択します。
- SPSS ModelerProjectをクリックします。
- アセット」タブをクリックすると、データセットとモデラーフローが表示されます。
進捗状況を確認する
次の図は、プロジェクトのAssetsタブを示しています。 これで、このチュートリアルに関連するサンプルモデラーフローで作業する準備ができました。
タスク 2: データアセットとタイプノードを調べる
カタログ販売予測にはいくつかのノードがある。 以下の手順に従って、データ・アセットと タイプ・ノードを調べます:
- 資産タブから、予測カタログ販売モデラー・フローを開き、キャンバスがロードされるのを待つ。
- catalog_seasfac.csvノードをダブルクリックします。 このノードは、プロジェクト内のcatalog_seasfac.csvファイルを指すData Assetノードである。
- ファイル形式のプロパティを確認します。
- オプション:完全なデータセットを表示するには、データのプレビューをクリックします。
- Typeノードをダブルクリックする。
- 「値の読み込み」をクリックします。
- men "フィールドで、"role "が "Target "に設定されていることを確認する。
- 他のすべてのフィールドの役割がNoneに設定されていることを確認する。
- 保存 をクリックします。
- オプション:フィルタリングされたデータセットを表示するには、データのプレビューをクリックします。
進捗状況を確認する
次の図はTypeノードを示している。 これでデータを視覚化する準備が整いました。
タスク3:データを視覚化する
以下の手順に従って、Time プロット・ノードを使ってデータを可視化してください:
- 時間プロットノードを追加します:
- ノードパレットで、グラフセクションを展開する。
- 時間プロットノードをキャンバスにドラッグします。
- Typeノードを新しいTimeプロット・ノードに接続する。
- Time プロットノードをダブルクリックしてプロパティを設定します。
- シリーズ・セクションで、列の追加をクリックする。
- 男性フィールドを選択する。
- 「OK」をクリックします。
- Use custom x axis field label(カスタムX軸フィールド・ラベルを使用)を選択する。
- X軸ラベルには、日付を選択する。
- ノーマライズオプションをクリアする。
- 保存 をクリックします。
- にカーソルを合わせる [男性] v. 日付ノードをクリックし、'走るアイコンの'をクリックする。
- 出力とモデル]ペインで、名前が'[men]の結果をクリックする。 日付」でグラフを見る。
この系列は全体的に上昇傾向を示しています。つまり、系列値は経時的に増加する傾向があります。 上昇傾向は見たところ一定であり、線型トレンドを示しています。
また、この系列はグラフの垂直線で示されるように、毎年 12 月に売り上げが増えるという明確な季節性パターンも示しています。 系列の上昇傾向とともに季節変動が大きくなる様子が見られ、相加的季節性ではなく相乗的季節性を示唆しています。
系列の特性を確認したので、それをモデル化する準備ができました。 トレンド、季節性、またはその両方を示す系列を予測する場合は、指数平滑法が有益です。 先に見たように、このデータは両方の特徴を示している。
進捗状況を確認する
次の画像はグラフである。 これでモデルを作る準備ができた。
タスク4:モデルの構築
最適な指数平滑法モデルの構築では、モデル・タイプの判定 (そのモデルがトレンド、季節性、またはその両方を含む必要があるかどうか) と、選択したモデルの最適なパラメーターの取得が行われます。
紳士服の経時的な売り上げのプロットでは、線型トレンド・コンポーネントおよび相乗的季節性コンポーネントの両方を持つモデルが示唆されました。 これは Winters モデルを意味します。 しかし、最初に単純モデル(トレンドなし、季節性なし)を検討し、次にホルトモデル(線形トレンドを含むが季節性なし)を検討します。 これは、モデルがデータに適合しない場合を特定する練習になります (これはモデル構築に成功するには欠かせないスキルです)。
以下の手順に従って、単純な指数平滑化モデルを構築してください:
- Men (Time Series)ノードをダブルクリックしてプロパティを表示する。
- Observations and time intervalセクションを展開し、これらのプロパティを設定する:
- 時間/日付が 日付に設定されていることを確認する。
- Time Intervalが Monthsに設定されていることを確認する。
- Build options - generalセクションを展開し、以下のプロパティを設定する:
- MethodがExponential Smoothing に設定されていることを確認する。
- Model Typeが Simpleに設定されていることを確認する。
- 保存 をクリックします。
- すべてを実行する ' をクリックする。
- 出力とモデル]ペインで、名前'を持つ出力結果をクリックする [men $TS-men]vの時間プロット。 日付」でグラフを見る。「男性」プロットは実際のデータを表し、「$TS-men」は時系列モデルです。
この単純モデルは、実際、漸進的な (かつ、やや重い) 上昇傾向を示しますが、季節性は考慮されていません。 このモデルは問題なく却下できます。
今度はホルトの線形モデルを試してみよう。 これは少なくとも、単純なモデルよりはトレンドをモデル化できるはずだが、季節性を捉えることはできないだろう。
- Men (Time Series)ノードをダブルクリックし、以下のプロパティを設定する:
- Build options - generalセクションを展開する。
- モデルタイプを ホルトの線形トレンドに設定する。
- 保存 をクリックします。
- すべてを実行する ' をクリックする。
- 出力とモデル]ペインで、名前'を持つ出力結果をクリックする [men $TS-men]vの時間プロット。 日付」でグラフを見る。
Holt のモデルは単純モデルよりも滑らかな上昇傾向を示しますが、季節性はここでも考慮されないため、このモデルも無視できます。
紳士服の経時的な売り上げの初期プロットで、線型トレンドと相乗的季節性を統合したモデルが示唆されたことを思い出してください。 したがって、Winters のモデルが候補として適していると考えられます。
- Men (Time Series)ノードをダブルクリックし、以下のプロパティを設定する:
- Build options - generalセクションを展開する。
- モデルタイプを Wintersの乗法に設定する。
- 保存 をクリックします。
- すべてを実行する ' をクリックする。
- 出力とモデル]ペインで、名前'を持つ出力結果をクリックする [men $TS-men]vの時間プロット。 日付」でグラフを見る。
前よりも良好になりました。 モデルにデータのトレンドと季節性の両方が反映されています。 このデータ・セットは 10 年間のものです。10 の季節性ピークが見られ、それは毎年 12 月に発生しています。 予測結果に示された 10 のピークは、実際のデータで年に一度発生する 10 のピークとよく合致しています。
ただし、この結果により、指数平滑法手順の限界も浮き彫りになっています。 上昇と下降の両方の山形部分に注目すると、考慮されていない有意な構造があることが分かります。
主として季節変動による長期トレンドのモデル化に関心がある場合は、指数平滑法を選択するといいでしょう。 このような複雑な構造をモデル化するには、ARIMA法の使用を検討する必要がある。
進捗状況を確認する
次の図は、このフローを示しています。 これでARIMAモデルを構築する準備ができた。
課題5:ARIMAモデルの構築
ARIMA 手順では、時系列の微調整されたモデル作成に適した自己回帰和分移動平均 (ARIMA) モデルを作成できます。
ARIMA モデルには、トレンドおよび季節性コンポーネントのモデル作成用に、指数平滑法モデルよりも洗練された方法が提供されていて、モデルに予測変数を含めることができる利点もあります。
予測モデルを開発したいカタログ会社の例を続けますが、その会社が紳士服の月次売上に関するデータを収集し、売上の変動の一部を説明するために使用される可能性のあるいくつかの系列を収集したことを見てきました。 考えられる予測値には、郵送したカタログ数、カタログのページ数、受注用の電話回線の数、広告印刷物の費用、および顧客サービス担当者の数があります。
これらの中に、予測に有効な予測値はあるでしょうか。 予測値を持つモデルは、予測値を持たないモデルよりも実際に優れているでしょうか。 ARIMA手順を使って、予測変数付きの予測モデルを作成し、予測変数なしの指数平滑化モデルと比較して予測能力に有意差があるかどうかを確認することができます。
ARIMA法では、自己回帰、差分、移動平均の次数、およびこれらの構成要素の季節的対応を指定することによって、モデルを微調整することができる。 これらの構成要素の最適値を手動で決定するのは、かなりの試行錯誤を伴う時間のかかるプロセスであるため、この例では、エキスパートモデラーがARIMAモデルを選択するように指定します。
次に、データセット中の他の変数のいくつかを予測変数として扱うことで、より良いモデルを構築する。 予測値として含めると最も役立つと思われるものは、郵送したカタログ数 (mail
)、カタログのページ数 (page
) 、受注用の電話回線の数 (phone
)、広告印刷物の費用 (print
)、および顧客サービス担当者の数 (service
) です。
以下の手順に従ってARIMAモデルを構築する:
- Typeノードをダブルクリックしてプロパティを設定します。
- メール、ページ、電話、印刷、サービスの各フィールドの役割がInputに設定されていることを確認する。
- 男性の役割がターゲットに設定されていることを確認する。
- 残りのすべてのフィールドの「役割」を「なし」に設定する。
- 保存 をクリックします。
- Men (Time Series)ノードをダブルクリックし、以下のプロパティを設定する:
- Build options - generalセクションを展開する。
- メソッドを エキスパートモデラーに設定する。
- モデルタイプをARIMAモデルのみに設定する。
- エキスパートモデラーは季節モデルを考慮するオプションを選択する。
- 保存 をクリックします。
- すべてを実行する ' をクリックする。
- Outputs and modelsペインで、menという名前のモデルをクリックしてモデルの詳細を表示する。
- モデルページで、ターゲット欄のmenをクリックする。
- モデル情報ページをクリックします。 エキスパート・モデラーが 5 種類の指定予測値のうち、どのように 2 種類のみをこのモデルに有意として選択したかに注目してください。
- 2つのモデルウィンドウを閉じる。
- 出力とモデル]ペインで、名前'を持つ出力結果をクリックする [men $TS-men]vの時間プロット。 日付」でグラフを見る。
このモデルでは、大きな下降の山形部分を取得することで以前のモデルが改善されており、これまでで最適な状態になっています。
次にモデルをさらに改良することは可能だが、ここからの改良はわずかなものになるだろう。 予測変数付きのARIMAモデルが望ましいことがわかったので、このモデルを使って来年の売上を予測しよう。
- グラフウィンドウを閉じる。
- Men (Time Series)ノードをダブルクリックし、以下のプロパティを設定する:
- モデルオプションのセクションを展開します。
- Extend records into futureオプションを選択し、値を'
12
に設定する。 - 「将来の入力値を計算」オプションを選択します。
- 保存 をクリックします。
- すべてを実行する ' をクリックする。
- 出力とモデル]ペインで、名前'を持つ出力結果をクリックする [men $TS-men]vの時間プロット。 日付」でグラフを見る。
予測は良好のようです。 予想通り、12月のピークを過ぎると通常の販売水準に戻り、下半期は着実に増加傾向にあり、全般的に前年を上回っている。
進捗状況を確認する
次の図はARIMAモデルを使ったグラフである。
サマリー
増加トレンドだけでなく季節変動やその他の変動も組み込まれている複雑な時系列を問題なくモデル化できました。 また、試行錯誤により、正確なモデルに徐々に近づくことができることを確認しました。このモデルは、将来の売り上げの予測使用できます。
実際には、実際の販売データが更新されるたびにモデルを再適用し、例えば、毎月または四半期ごとに、更新された予測を作成する必要があります。
次のステップ
これで、他のSPSS® Modelerチュートリアルを試す準備ができました。