| スピーカー |
トランスクリプト |
| |
こんにちは。ご覧いただきありがとうございます。Jacob Rhyneと申します。JMPのソフトウェアテスターを務めています。本日は、JMPの時系列分析プラットフォームでARIMAモデルと状態空間平滑化モデルを選択できるようにするためのアドインを作成しましたので、ご紹介します。 |
| |
そこで、まず、タイム シリーズ プラットフォームで ARIMA モデルと状態空間平滑化モデルを適合する方法について簡単に説明します。 |
| |
この2つのモデルクラスを選択するためのアドインの必要性についてご紹介します。また、アドインの主要ツールである時系列クロスバリデーションの概要についても説明します。最後に、JMP 16.1を使用したアドインのデモを行います。 |
| |
JMPの時系列プラットフォームでは、様々な時系列モデルを当てはめることができます。このプレゼンテーションでは、ARIMAモデルと状態空間平滑化モデルに焦点を当て、鉄鋼出荷サンプルデータを用いてこれら2つのモデルを当てはめる方法を説明します。 |
| |
鉄鋼出荷サンプル データには、1984 年から 1991 年までの米国の鉄鋼出荷の月間合計が含まれています。これを、特殊モデリング メニューの時系列プラットフォームで調べます。 |
| |
鉄鋼出荷の列が時系列です。日付列が時間IDです。例えば、今後2年間の鉄鋼出荷の予測をしたいとします。これは月次データなので、24期間の予測が必要です。「OK」をクリックして時系列レポートを起動します。 |
| |
時系列にいくつかの基本的な統計と、いくつかの基本的な時系列診断がプロットされていることがわかります。 |
| |
この系列にARIMAモデルを当てはめたいのですが、ARIMAモデルを当てはめる際に、何らかの変換や差分処理が必要かどうかを判断する必要があります。そこで、時系列メニューの「差分」オプションを使って、この点を検討します。 |
| |
まず、1 次非季節差分から始めて、推定値をクリックします。 |
| |
差分系列のプロットができました。より定常的になったという点で改善が見られますが、まだ季節性は残っています。これは診断結果を見ればわかります。ラグ番号12まで下げてみます。 |
| |
自己相関値が高く、ラグ 12 の部分自己相関も少し高いことがわかります。したがって、これは、非季節性差分と季節性差分を使用して季節 ARIMA モデルを適合させる必要があることを示唆しています。 |
| |
レポートを整理するために、この差異レポートを閉じます。そして、ARIMAモデルグループオプションを使って、いくつかの異なるARIMAモデルを当てはめてみます。 |
| |
そこで、季節性ARIMAモデルを非季節性差分次数1と季節性差分次数1で当てはめることにしました。ただし、自己回帰次数と移動平均次数は0か1のいずれかにします。 |
| |
「推定」をクリックすると、JMPは16種類の季節性ARIMAモデルを当てはめます。モデル比較ウィンドウまでスクロールダウンして、これらのモデルを確認できます。モデルはAICの降順で並べられているので、AICを最小化するモデルを選択します。 |
| |
下にスクロールしてモデルとレポートを見てみましょう。安定していて可逆性があることがわかります。パラメータ推定値表も確認できます。予測値と予測区間も見てみましょう。 |
| |
これらすべての診断を確認して、予測の検討対象としてこの季節 ARIMA モデルに満足しているとします。 |
| |
したがって、これらの他の季節性 ARIMA モデルをレポートから削除します。 |
| |
また、状態空間平滑化モデルを使用して予測を作成することも検討したい場合は、時系列メニューの状態空間平滑化オプションを使用してこれを実行できます。 |
| |
これは月次データなので期間は 12 とする必要があります。この時系列に推奨される状態空間平滑化モデルをすべて当てはめます。 |
| |
「OK」をクリックして実行します。モデル比較レポートまでスクロールすると、JMPが推奨された状態空間平滑化モデルをすべて当てはめていることがわかります。モデルは再びAICの降順で並び替えられています。 |
| |
AICを最小化するモデルは、トレンドがなく乗法的な季節性を持つ乗法誤差モデルでした。そこで、このモデルを選択します。 |
| |
モデル比較アウトラインで、下にスクロールしてモデルの適合性を確認します。 |
| |
モデルの概要を確認して、パラメータ推定値テーブルを確認できます。 |
| |
予測と予測間隔を確認できます。これらの診断をすべて確認し、この状態空間平滑化モデルを予測の候補として検討することに決めたとします。 |
| |
そこで、モデルとモデル比較ウィンドウから他の状態空間スムージング モデルを削除します。 |
| |
そこで、ここで問題になるのは、私が検討している ARIMA モデルと、予測に検討している状態空間平滑化モデルのどちらを選択するかということです。 |
| |
尤度ベースの基準は異なるモデル クラス間で比較できないことを通知するテキスト警告が表示されていることがわかります。 |
| |
つまり、単にスクロールして AIC を表示し、AIC が低いので ARIMA モデルで予測に使用する、と言うことはできないということです。 |
| |
それは妥当な判断ではありません。では、どうすればいいのでしょうか?実は、JMPにはすでにそのようなオプションがあります。データが十分に長い場合です。 |
| |
ホールドバックを設定するには、タイム シリーズ プラットフォームを起動するときに、ホールドバックの予測オプションを使用できます。 |
| |
これにより、使用したすべての時系列モデルがトレーニングセットに適合されます。モデル比較ウィンドウでは、モデルをAICで並べ替える代わりに、 |
| |
モデルはホールドバック セットの二乗平均平方根誤差 (RMSE) によって並べ替えられ、ホールドバック セットの RMSE を最小化するモデルが選択されます。 |
| |
ただし、ホールドバック セットを使用するのに十分な長さのデータがない場合、ホールドバックの予測オプションを使用することはできず、ARIMA モデルまたは状態空間平滑化モデルのいずれかを選択できる別の方法が必要になります。 |
| |
そしてこれを実行します。 |
| |
これがアドインを作った理由です。このアドインは、時系列クロス検証と呼ばれる手法を使って選択を支援します。 |
| |
時系列クロス検証では、基本的に時系列を複数のトレーニング セットとテスト セットに分割し、連続するグループごとにトレーニング セットを 1 行ずつ拡張します。 |
| |
時系列クロスバリデーションの詳細な例を後ほど紹介しますが、この手法は私が考案したものではないことをご承知おきください。より詳しく知りたい方は、 |
| |
この講演を視聴した後、私は Rob Hyndman 博士による予測の原則と実践に関するリソースを推奨します。 |
| |
それでは、時系列クロス検証の例を見てみましょう。 |
| |
私は映画ファンなので、2021 年 1 月から 7 月までの北米の興行収入のデータを持っているとします。 |
| |
ARIMAモデルか状態空間平滑化モデルのいずれかを用いて、今後6週間の興行収入を予測したいと考えています。どちらの予測を用いるかを決定するために、時系列交差検証を用いたいと思います。 |
| |
前述したように、時系列クロス検証では、データをトレーニング セットとテスト セットのグループにサブセット化し、トレーニング セットを 1 行ずつ、各連続グループごとに拡張します。 |
| |
したがって、最初のトレーニング セットに必要な行数を決定する必要があります。 |
| |
私のアドインでは、デフォルトで6つの時系列クロスバリデーショングループが作成されます。これにより、初期のトレーニングセットで使用するデフォルトの行数が提案されますが、必要に応じて変更できます。 |
| |
この例では、トレーニング セットの初期行をデフォルトの 17 行のままにします。 |
| |
時系列クロスバリデーションアドインを起動すると、標準的な時系列レポートが表示されます。さらに、レポートの下部に時系列クロスバリデーションコントロール用のアウトラインボックスが追加されます。 |
| |
したがって、ここでは、最初の行数(最初のトレーニング セット内の行数)、関心のある予測期間、季節モデルを適合する場合の期間を指定する必要があります。 |
| |
したがって、トレーニング セットではデフォルトの 17 行を維持し、6 つの異なる時系列クロス検証グループを作成できるようにします。 |
| |
今後6週間の興行収入を予測したいので、予測期間は6とします。また、このデータには季節モデルを当てはめないため、期間は欠損値のままとします。 |
| |
それでは、最初の時系列クロス検証グループを調べてみましょう。 |
| |
最初のトレーニング セットには 17 行あり、次の 6 行はテスト セットであることがわかります。 |
| |
このアドインは、私が要求したARIMAモデルをトレーニングセットに適合させます。そして、推奨された状態空間平滑化モデルをトレーニングセットに適合させます。 |
| |
AIC によって各クラスの最適なモデルを選択し、選択したモデルの予測をテスト セットに取り込み、予測誤差を評価します。 |
| |
2番目の時系列クロスバリデーショングループはトレーニングセットを1行拡張するので、私のトレーニングセットは次のようになります。 |
| |
1行目から18行目までで構成され、次の6行がテストセットです。そして、最初の時系列クロスバリデーショングループで行ったプロセスを繰り返します。 |
| |
ユーザーが要求したARIMAモデルをすべて適用し、推奨された状態空間平滑化モデルを適用しました。AIC予測に基づいて最適なモデルを選択し、テストセットに追加し、予測誤差を保存します。 |
| |
これをすべてのデータを使い切るまで続けます。つまり、この例の最終的な時系列クロスバリデーショングループでは、1行目から22行目をトレーニングセットとして使用し、残りのデータ、つまり最後の6行をテストセットとして使用します。 |
| |
そこで、時系列クロス検証グループごとに予測誤差を保存していると述べました。 |
| |
アドインは、2 つのモデル クラスの全体的な RMSE、MAE、MAPE を報告し、時系列クロス検証グループごとに RMSE のプロットを提供します。 |
| |
この表とグラフを使用すると、予測にすべてのモデルを適合させるか、状態空間平滑化モデル予測を適合させるかを判断するのに役立ちます。 |
| |
このデータを使用してアドインがどのように動作するかを見てみましょう。 |
| |
そこで、Box Office Mojo から取得した興行収入データを開き、このデータの時系列プラットフォームを起動するこのスクリプトを実行します。時系列を確認したいだけだからです。 |
| |
私は週ごとの興行収入の平均を予測していますが、週が経つにつれて変動と平均収入が大きくなることが分かります。そこで対数変換を行いたいと思います。 |
| |
平均総収入に。平均総収入の対数列を作成することでこれを行うことができますが、 |
| |
必須ではありません。このアドインは、標準の時系列プラットフォームと同様に、Box Cox変換を実行できます。それでは、アドインを起動し、免責事項をクリックします。今後6週間の興行収入の平均終値を週ごとに予測したいと思います。 |
| |
平均総額への対数変換を実行したいので、Lambda が 0 に等しい Box Cox 変換を使用します。 |
| |
そして「OK」をクリックします。 |
| |
これで、Box-Cox変換された応答の標準時系列レポートが起動します。この赤い三角のメニューを使って、JMPで利用可能なあらゆる種類の時系列モデルを当てはめることができます。 |
| |
しかし、代わりにレポートの一番下まで移動し、時系列クロス検証を使用して、ARIMA モデルと状態空間平滑化モデルのどちらを適合させるべきかについての推奨事項を取得します。 |
| |
最初の行を 17 のままにしておきます。そうすることで、前の例で示した 6 つの時系列クロス検証グループが得られるからです。 |
| |
この例では、興行収入の今後 6 週間を予測したいので、予測の長さを 6 のままにし、期間を欠落と同じにしておきます。 |
| |
実行をクリックし、各時系列クロスバリデーショングループにどのようなARIMAモデルを当てはめるかを指定します。ここでは、非季節性差分を1としますが、自己回帰と移動平均の次数は0か1にします。 |
| |
したがって、「推定」をクリックすると、すべての時系列クロス検証グループが、これら 4 つの ARIMA モデルと推奨される状態空間平滑化モデルに適合されることになります。 |
| |
そこで [推定] をクリックすると、アドインは、このデータ セットを 6 つの時系列クロス検証グループに拡張し、要求されたモデルをトレーニング セットに適合させ、テスト セットに予測を適用し、予測エラーを保存します。 |
| |
下にスクロールして結果を見てみましょう。表を見ると、ARIMAモデルは状態空間平滑化モデルよりも全体的にRMSE、MAE、MAPEが低いことがわかります。プロットを見てみると |
| |
ARIMA モデルでは、すべての時系列クロス検証グループで RMSE が低くなっていることがわかります。 |
| |
そのため、このアドインでは、このデータの予測を作成するために、状態空間平滑化モデルではなくARIMAモデルの使用を推奨しています。赤い三角のメニューに移動し、ARIMAモデルグループオプションを使用してARIMAモデルを当てはめることができます。 |
| |
アドインの別の例を見てみましょう。次の例では、MC3 Quarterly サンプル データのサブセットを使用します。 |
| |
MC3 Quarterlyサンプルデータには、MC3モデリングコンペティションから抽出された100種類強の時系列データが含まれています。これらの時系列データはすべて四半期ごとのものです。 |
| |
これは非常に多くの異なる時系列データが含まれているという点で興味深いデータセットだと思います。ただし、今回の講演では時間的な都合上、表から3つの時系列データをランダムに抽出しました。 |
| |
それではアドインを起動します。 |
| |
ランチャーの設定です。Y列は時系列、timeは時間IDです。また、複数の系列のデータがあるので、系列列のbyオプションを使用する必要があります。ここでも、今後2年間の予測をしたいので、予測期間を8つ入力して[OK]をクリックします。 |
| |
予想通り、テーブル内の各系列の時系列レポートが表示されました。また、テーブル内の各系列には時系列クロスバリデーションのコントロールも設定しています。 |
| |
したがって、これらの各シリーズに対して時系列クロス検証を使用して、予測に ARIMA モデルまたは状態空間平滑化モデルを使用するための推奨事項を取得できます。 |
| |
時間の関係で、最初の系列のみ実行します。この系列には季節モデルを適用したいので、期間は4とします。「実行」をクリックします。 |
| |
したがって、私は非季節差分順序として 1 を使用しますが、他のすべての自己回帰移動平均順序と季節差分順序は 0 または 1 の範囲にします。 |
| |
繰り返しますが、これは四半期データなので、観測期間を4に設定してください。推定をクリックすると、32個のARIMAモデルが当てはめられます。 |
| |
各時系列クロスバリデーショングループで、アドインはNが691の系列に移動します。 |
| |
6つの異なる時系列クロスバリデーショングループに拡張しています。要求されたARIMAモデルをトレーニングセットに適合させています。推奨された状態空間平滑化モデルをトレーニングセットに適用しています。 |
| |
AICを用いて最適なモデルを選択します。テストセットに予測値を入力し、予測誤差を保存します。 |
| |
終わるまで少しお待ちください。 |
| |
さぁ行こう。 |
| |
スクロールして結果を確認できます。表からわかるように、ARIMAモデルは状態空間平滑化モデルよりもRMSE、MAE、MAPEが低い値を示しました。 |
| |
そして、プロットから、最後の時系列クロスバリデーショングループを除くすべてのグループでARIMAモデルのRMSEが低いことがわかります。 |
| |
状態空間平滑化モデルよりも優れており、最後のグループでもほぼ同じでした。 |
| |
したがって、もう一度時系列のクロス検証を行い、ARIMA モデルを使用してシリーズ N 691 の予測を作成することをお勧めします。また、他の異なるシリーズに移動してプロセスを繰り返すと、状態空間平滑化モデルが推奨される場合があります。 |
| |
そこで、実際には時系列クロス検証とは関係のないアドインの別の機能を紹介してデモを終了します。 |
| |
また、アドインを使った予測を評価するためのテストセットも用意しました。ここでも鉄鋼出荷のサンプルデータを使って、これをお見せします。それでは、アドインを起動しましょう。日付別に鉄鋼出荷を予測したいと思います。 |
| |
今後2年間を予測したいとします。予測期間を24期間とします。前述のように、系列が十分に長い場合は、ホールドバックセットでホールドバックの予測オプションを使用できます。 |
| |
モデルを選択するためです。そのため、時系列クロスバリデーションを使用する必要はありません。そのため、トレーニングテストセットオプションを使用できます。 |
| |
選択したモデルを評価するための独立したテストセットを用意します。テストセットの長さは12とします。 |
| |
これは、データの最後の12行を分析から完全に除外し、予測のパフォーマンスを評価するために使用することを意味します。それでは「OK」をクリックします。 |
| |
テーブルにもう一つ列を追加したことがわかります。これはテストセットのインジケーター列で、行がテストセットに含まれている場合は1、含まれていない場合は0になります。 |
| |
そして、これらの時系列モデルは、テストセットがゼロになる行にのみ当てはめられます。これにより、テストセットの独立性を維持できます。 |
| |
それでは、このデータにARIMAモデルを当てはめてみましょう。この講演の冒頭で使用したのと同じコントロールを用い、季節性および非季節性の差分順序は1としますが、その他の順序は0から1の範囲とします。 |
| |
そこで、「推定」をクリックして、これら 16 種類の季節 ARIMA モデルを実行し、推奨される状態空間平滑化モデルも適合させます。 |
| |
そこで、モデル比較ウィンドウまでスクロールすると、ホールドバック セット内の二乗平均平方根誤差を最小化するモデルが、加法誤差、傾向なし、加法季節性のない状態空間平滑化モデルであることがわかります。 |
| |
例えば、テストセットで最もパフォーマンスの高いARIMAモデルのパフォーマンスにも興味があるとします。そのモデルを選択することもできます。 |
| |
そして、予測に考慮しなくなった他のモデルを削除します。 |
| |
したがって、ここでもホールドバック オプションでの予測を使用したので、予測に使用するこの状態空間平滑化モデルを選択しますが、ARIMA モデルがテスト セットでどのように機能するかが興味深いです。 |
| |
下にスクロールしてテストセット分析ボックスまで進みます。ホールドバック予測オプションを使用したので、ここでは選択した2つのモデルをトレーニングデータとホールドバックデータの組み合わせに再適合させ、更新されたパラメータを取得します。 |
| |
次に、テスト セットに予測を適用し、実際のテスト セット データと比較して予測のパフォーマンスを評価します。 |
| |
では、「実行」をクリックして分析を実行します。テストセットのRMSE、MAE、MAPEの表と、テストセットと予測値を比較したプロットが表示されます。 |
| |
状態空間平滑化モデルはホールドバックセットだけでなくテストセットでも優れたパフォーマンスを示したことがわかります。つまり、このテストセット分析オプションは、モデルの適合度を評価するためのツールを提供するに過ぎません。 |
| |
まとめると、このアドインを使用すると、時系列のクロス検証を実行できます。 |
| |
JMP のホールドバック予測オプションを使用するには長さが足りない時系列データがあり、それでも別のモデル クラスの使用を検討したい場合は、このアドインが役立つと思います。 |
| |
このアドインでは、テストセットを使用して予測を評価する機能も提供されます。なお、時系列データに対する他のモデル選択手法と同様に、このアドインは予測精度の向上を保証するものではありません。 |
| |
貴重なお時間をいただき、誠にありがとうございます。アドインをぜひお試しいただき、Discoveryの残りの部分も楽しんでいただければ幸いです。ありがとうございました。 |