AR
過去の自分の値から先を予測するモデル(自己回帰)です。時系列予測の中でいちばん単純な形で、まず試す出発点になります。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | データ |
| 出力データ | データ |
| エラー情報 | データ |
Spark エンジンでは動きません。
入力の行はそのままでは残りません。 出力は実測値と予測値を縦に並べた別の表になります。
出力の形
出力は次の 4 列です。グループごとにモデルを作成するを使ったときは、グループの列がいちばん右に付きます。
| 列名 | 内容 |
|---|---|
カテゴリ | その行が実測か予測かの区別 |
予測対象 | 予測した列の名前 |
| 日付列と同じ名前の列 | 日付 |
値 | 実測値または予測値 |
カテゴリ に入るのは 3 つです。
| 値 | 中身 |
|---|---|
実測 | 入力にあった値そのまま |
過去データ検証 | 実測のある期間に対する、モデルの当てはめ値 |
予測 | 入力より先の期間の予測値 |
実測と当てはめ値を同じグラフに重ねれば、モデルが合っているかを目で確かめられます。 カテゴリ を折れ線グラフの系列に使ってください。
2 つ目の エラー情報 には エラーメッセージ の列が入ります。エラーが 1 つも起きなかったときは、全てのグループで正常に終了しました という 1 行だけが入ります。
設定項目
- 予測対象列を選択必須
- 予測したい値の列。数値の列だけ選べます。複数選べます。
- 日付列を選択必須
- 時間の軸。日付・日付時間・時間の列だけ選べます。
- 予測期間の設定必須
- 何期先まで予測するか。既定は
3。1 期の長さは、日付列の間隔そのものです。
オプション
- 最適ラグ数を決める際の評価指標を選択
- AIC(既定)か BIC。何期前までを使うかを自動で決める基準です。
- グループごとにモデルを作成する
- on にするとグルーピングする列を選択が出て、店舗ごと・商品ごとに別々のモデルを作ります。
- エラーを無視する
- on にすると、失敗したグループ・失敗した予測対象列を飛ばして続けます。飛ばした理由は エラー情報 に入ります。
ラグ数(何期前まで使うか)は自動で決まります。 自分で指定したいときは ARMA の p を使ってください。
入力データの前提
1 時点 1 行で、日付が連続している必要があります。
| 問題 | 直し方 |
|---|---|
| 同じ日付の行が複数ある | データ集計で日付をキーにまとめる |
| 抜けている期間がある | 連続数値、日付の補間で行を作る |
| 値に空欄がある | 時系列に沿った欠損値処理で埋める |
入力の行順は問いません。 中で日付の昇順に並べ替えてから計算します。
AIC と BIC
どちらも「モデルの当てはまりと複雑さの釣り合い」を測る指標です。BIC の方が単純なモデルを選びやすい傾向があります。迷ったら既定の AIC のままで構いません。
エラーと対処
「エラーを無視する」を on にすると、途中で止まらずに済みます。 失敗した分は出力から抜け、理由が エラー情報 に入ります。ただしひとつも作れなかったときは「全てのグループでモデル作成に失敗しました」で止まります。
日付列に欠損値がある
処理対象列に欠損値が含まれています。欠損値を除外するか補完してください。
直し方 — 日付が空の行を欠損値処理で落としてください。
予測対象列に欠損値がある
処理対象列に欠損値が含まれています。欠損値を除外するか補完してください。
日付列でも予測対象列でも、画面に出る文面は同じです。 どちらの列が原因かはメッセージからは分かりません。
直し方 — 時系列に沿った欠損値処理で埋めてください。
予測対象列に数値以外がある
処理対象列に数値型以外のデータが含まれてます。型変換をするか、数値型以外の列を除去してください。
直し方 — 列の型変更で数値にしてください。
日付列の値が重複している
同じ日付の行が複数あるときに出ます。時系列モデルは 1 時点 1 行を前提にします。
{{index_label}}列の値が重複しています。集計するなどして重複をなくしてください。
直し方 — データ集計で日付をキーにまとめてください。
日付が連続していない
抜けている期間があるときに出ます。
{{index_label}}が連続ではありません。時系列データの補間をお試しください。
直し方 — 連続数値、日付の補間で抜けている日付の行を作り、時系列に沿った欠損値処理で値を埋めてください。
すべてのグループで失敗した
どのグループ・どの予測対象列もモデルを作れなかったときに出ます。
全てのグループでモデル作成に失敗しました。:
{{error_msg}}
直し方 — グループの分け方を粗くして、1 グループあたりの行数を増やしてください。エラーを無視するを on にすると、作れたグループだけが出力されます。
選んだ列が入力にない
前のノードで列名を変えたり削除したりすると出ます。
対象の列が選択されていません。
対象の列が存在しません。
直し方 — 予測対象列を選択・日付列を選択・グルーピングする列を選択を選び直してください。
よく使う例
1. 売上を 3 か月先まで予測する
月次の売上から、先の見込みを立てたいとき。
入力
| 年月 | 売上 |
|---|---|
| 2024-01-01 | 100 |
| 2024-02-01 | 120 |
| …(24 か月分) | … |
設定
| 設定項目 | 値 |
|---|---|
| 予測対象列を選択 | 売上 |
| 日付列を選択 | 年月 |
| 予測期間の設定 | 3 |
出力 — カテゴリ が 実測 の 24 行、過去データ検証 の行、予測 の 3 行が縦に並びます。
2. 複数の列をまとめて予測する
売上と客数を同じ設定で予測したいとき。
入力
| 年月 | 売上 | 客数 |
|---|---|---|
| 2024-01-01 | 100 | 40 |
| 2024-02-01 | 120 | 45 |
設定
| 設定項目 | 値 |
|---|---|
| 予測対象列を選択 | 売上、客数 |
| 日付列を選択 | 年月 |
出力 — 予測対象 が 売上 の行と 客数 の行が縦に並びます。列は増えません。
3. 店舗ごとに予測する
店舗別の見込みが欲しいとき。
入力
| 店舗 | 年月 | 売上 |
|---|---|---|
| 渋谷 | 2024-01-01 | 100 |
| 池袋 | 2024-01-01 | 50 |
設定
| 設定項目 | 値 |
|---|---|
| 予測対象列を選択 | 売上 |
| 日付列を選択 | 年月 |
| グループごとにモデルを作成する | on(列に 店舗) |
| エラーを無視する | on |
出力 — 4 列に 店舗 が加わった 5 列になります。開店したばかりで行数の足りない店舗は出力から抜け、理由が エラー情報 に入ります。
4. 単純なモデルより複雑な基準で選ぶ
AIC だとラグ数が多くなりすぎて、先の予測がぶれるとき。
入力 — 例 1 と同じ
設定
| 設定項目 | 値 |
|---|---|
| 最適ラグ数を決める際の評価指標を選択 | BIC |
出力 — AIC より短いラグが選ばれやすくなり、予測がなだらかになります。
5. モデルが合っているかを確かめる
予測を人に見せる前に、当てはまりを確認したいとき。
入力 — 例 1 と同じ
設定 — 例 1 と同じ
出力 — 出力をそのまま折れ線グラフにつなぎ、横軸に 年月、縦軸に 値、系列に カテゴリ を指定します。実測 と 過去データ検証 が重なっていれば当てはまっています。