コンテンツにスキップ

ARMA

過去の値と、過去の予測のずれの両方を使って予測するモデルです。AR より当てはまりがよくなることがあります。

入出力

ポート内容
入力データデータ
出力データデータ
エラー情報データ

Spark エンジンでは動きません。

入力の行はそのままでは残りません。 出力は実測値と予測値を縦に並べた別の表になります。

出力の形

出力は次の 4 列です。グループごとにモデルを作成するを使ったときは、グループの列がいちばん右に付きます。

列名内容
カテゴリ実測 / 過去データ検証 / 予測
予測対象予測した列の名前
日付列と同じ名前の列日付
値実測値または予測値

形も意味も AR と同じです。カテゴリ の 3 つの値の意味は AR で説明しています。

2 つ目の エラー情報 には エラーメッセージ の列が入ります。エラーが 1 つも起きなかったときは、全てのグループで正常に終了しました という 1 行だけが入ります。

設定項目

予測対象列を選択必須
予測したい値の列。数値の列だけ選べます。複数選べます。
日付列を選択必須
時間の軸。日付・日付時間・時間の列だけ選べます。
自己回帰パラメータ(p)必須
モデルの設定の下に出ます。何期前までの値を使うか。既定は 1。
移動平均パラメータ(q)必須
何期前までの予測のずれを使うか。既定は 3。
予測期間の設定必須
何期先まで予測するか。既定は 3。1 期の長さは、日付列の間隔そのものです。

オプション

グループごとにモデルを作成する
on にするとグルーピングする列を選択が出て、店舗ごと・商品ごとに別々のモデルを作ります。
エラーを無視する
on にすると、失敗したグループ・失敗した予測対象列を飛ばして続けます。

AR にある「最適ラグ数を決める際の評価指標を選択」はありません。 ARMA では p を自分で決めます。

入力データの前提

1 時点 1 行で、日付が連続している必要があります。前提と直し方は AR と同じです。入力の行順は問いません。 中で日付の昇順に並べ替えてから計算します。

p と q の決め方

自己相関と偏自己相関を求めるで当たりを付けます。 偏自己相関が切れるところが p、自己相関が切れるところが q の目安です。

2 つは出力への効き方が違います。

設定項目出力への効き方
p行数は変わりません。係数が増えるだけです。大きくすると「ARの係数が定常的でない」で止まりやすくなります
q過去データ検証 の行数が 実測の行数 − q になります。 先頭から q 行分、当てはめ値が出ません

q を大きくすると、当てはまりを確かめられる行が減ります。 24 か月のデータなら次のようになります。

q実測過去データ検証予測(予測期間 3)
124 行23 行3 行
3(既定)24 行21 行3 行
1224 行12 行3 行
2424 行0 行3 行

決め方の手順 — ①自己相関と偏自己相関を求めるで候補を出す → ②その p q で流す → ③出力を折れ線グラフに入れ、実測 と 過去データ検証 のずれを見る → ④ずれが大きければ候補を変えて②に戻る。過去データ検証 の行数が減りすぎていないかも、このときに見てください。

エラーと対処

「エラーを無視する」を on にすると、途中で止まらずに済みます。 失敗した分は出力から抜け、理由が エラー情報 に入ります。ただしひとつも作れなかったときは「全てのグループでモデル作成に失敗しました」で止まります。

日付列に欠損値がある

処理対象列に欠損値が含まれています。欠損値を除外するか補完してください。

直し方 — 日付が空の行を欠損値処理で落としてください。

予測対象列に欠損値がある

処理対象列に欠損値が含まれています。欠損値を除外するか補完してください。

日付列でも予測対象列でも、画面に出る文面は同じです。 どちらの列が原因かはメッセージからは分かりません。

直し方 — 時系列に沿った欠損値処理で埋めてください。

予測対象列に数値以外がある

処理対象列に数値型以外のデータが含まれてます。型変換をするか、数値型以外の列を除去してください。

直し方 — 列の型変更で数値にしてください。

日付列の値が重複している

同じ日付の行が複数あるときに出ます。

{{index_label}}列の値が重複しています。集計するなどして重複をなくしてください。

直し方 — データ集計で日付をキーにまとめてください。

係数が定常的でない

指定した p q ではモデルが安定しないときに出ます。右肩上がり・右肩下がりのデータでよく起きます。

列: {{X_label}}での処理は、計算されたARの係数が定常的でないため中断されました。差分系列でモデルを作成するか、別のパラメータ、別のモデルを選択してください。

直し方 — ARIMA で差分を取るか、p を小さくしてください。

日付が連続していない

抜けている期間があるときに出ます。

{{index_label}}が連続ではありません。時系列データの補間をお試しください。

直し方 — 連続数値、日付の補間で抜けている日付の行を作り、時系列に沿った欠損値処理で値を埋めてください。

すべてのグループで失敗した

全てのグループでモデル作成に失敗しました。: {{error_msg}}

直し方 — グループの分け方を粗くして、1 グループあたりの行数を増やしてください。

選んだ列が入力にない

前のノードで列名を変えたり削除したりすると出ます。

対象の列が選択されていません。

対象の列が存在しません。

直し方 — 予測対象列を選択・日付列を選択・グルーピングする列を選択を選び直してください。

よく使う例

1. AR で足りないときに試す

AR の予測が実績から外れるので、予測のずれも取り込みたいとき。

入力

年月売上
2024-01-01100
2024-02-01120
…(24 か月分)…

設定

設定項目値
予測対象列を選択売上
日付列を選択年月
自己回帰パラメータ(p)1
移動平均パラメータ(q)3
予測期間の設定3

出力 — AR と同じ 4 列です。行数は 実測 24 行・過去データ検証 21 行(24 − q)・予測 3 行の 48 行になります。過去データ検証 が 実測 にどれだけ近いかで、AR と比べられます。

2. 上下動の大きいデータに当てる

日々のぶれが大きく、1 期前の値だけでは説明しきれないとき。

入力

日付来店数
2024-04-01120
2024-04-0280
…(180 日分)…

設定

設定項目値
自己回帰パラメータ(p)1
移動平均パラメータ(q)7

出力 — ぶれの影響を 7 期分取り込んだ当てはめ値になります。過去データ検証 は先頭 7 日分が出ないので 173 行(180 − 7)です。

3. ACF と PACF を見てから決める

既定のまま使っていて、p と q が適切か自信がないとき。

入力 — 例 1 と同じ

設定 — 先に自己相関と偏自己相関を求めるを同じ列に掛けます。PACF が 2 期目で切れ、ACF が 1 期目で切れていたなら、p に 2、q に 1 を入れます。

出力 — 当てはめ値が実測に近づきます。

4. 複数の列をまとめて予測する

売上と客数を同じ p q で予測したいとき。

入力

年月売上客数
2024-01-0110040
2024-02-0112045

設定

設定項目値
予測対象列を選択売上、客数

出力 — 予測対象 が 売上 の行と 客数 の行が縦に並びます。p と q は 2 列とも同じです。別々にしたいなら、ノードを分けてください。

関連