すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:x13_auto_arima

最終更新日:Sep 11, 2026

Gomez and Maravall (1998) および TRAMO (1996) のプロシージャを用いて、時系列データに最適な ARIMA モデルを自動的に選択します。

仕組み

このコンポーネントは、4 つのステップで最適な ARIMA モデルを選択します。

  1. デフォルトモデルの推定

    • frequency = 1 の場合、デフォルトモデルは (0,1,1) です。

    • frequency > 1 の場合、デフォルトモデルは (0,1,1)(0,1,1) です。

  2. 差分次数の特定diffseasonalDiff が指定されている場合、このステップはスキップされます。それ以外の場合は、単位根検定により、非季節差分次数 d と季節差分次数 D を決定します。

  3. ARMA 次数の特定:ベイズ情報量規準 (BIC) に基づいて、最も適切なモデルを選択します。maxOrdermaxSeasonalOrder パラメーターで上限を制御します。

  4. モデルの比較と最終チェック:Ljung-Box Q 統計量を使用して、特定したモデルをデフォルトモデルと比較します。両方のモデルが不適切な場合は、(3,d,1)(0,D,1) モデルにフォールバックします。

ARIMA の詳細については、「自己回帰和分移動平均」をご参照ください。

制限事項

  • MaxCompute のコンピューティングリソースでのみ実行されます。

  • 1 グループあたりのデータレコード数は最大 1,200 件です。

  • 数値列は 1 列のみです。

リソース計算

  • groupColNames を指定しない場合:

      coreNum = 1
      memSizePerCore = 4096
  • groupColNames を指定する場合:

      coreNum = floor(総行数 / 120,000)
      memSizePerCore = 4096

コンポーネントの設定

x13_auto_arima は、以下のいずれかの方法で設定します。

方法1:PAI コンソールでの設定

ビジュアルモデリングのパイプラインページでパラメーターを設定します。

フィールド設定

パラメーター

必須

説明

時系列列

はい

値列の値を並べ替えます。

値列

はい

時系列値を含む数値列。

層化列

いいえ

複数のカラムは、カンマ (,) で区切ります (例: col0,col1)。グループごとに個別の時系列が作成されます。

パラメーター設定

パラメーター

説明

デフォルト

開始日

形式:year.seasonal。例:1986.1

--

系列頻度

(0,12] の範囲の正の整数。

--

p と q の最大値

[0,4] の範囲の整数。

--

季節性の p と q の最大値

[0,2] の範囲の整数。

--

差分 d の最大値

[0,2] の範囲の整数。

--

季節差分 d の最大値

[0,1] の範囲の整数。

--

差分 d

0 より大きく 2 以下の正の整数です。diffmaxDiff の両方が指定されている場合、maxDiff は無視されます。seasonalDiff と併用する必要があります。

--

季節差分 d

範囲 (0,1] 内の正の整数です。 seasonalDiffmaxSeasonalDiffの両方が指定されている場合、 maxSeasonalDiffは無視されます。

--

予測数

予測数。 たとえば、過去 1 か月間に基づいて今後 7 日間の売上を予測するには、7 に設定します。 [層化列] が選択されている場合、各グループがこの数の予測を生成します。 0 より大きく 120 以下の正の整数を指定します。

--

予測信頼区間

予測区間を計算するための信頼度。

0.95

収束許容誤差

オプション。 モデルフィッティングの収束許容誤差。

1e-5

最大反復回数

正の整数。

1500

実行チューニング

パラメーター

説明

コア数

デフォルトではシステムが自動的に決定します。

メモリサイズ

コアあたりのメモリサイズ (MB)。

方法2:PAI コマンドでの設定

SQL スクリプトを使用して PAI コマンドを実行します。 詳細については、「SQL スクリプト」をご参照ください。

PAI -name x13_auto_arima
    -project algo_public
    -DinputTableName=pai_ft_x13_arima_input
    -DseqColName=id
    -DvalueColName=number
    -Dstart=1949.1
    -Dfrequency=12
    -DpredictStep=12
    -DoutputPredictTableName=pai_ft_x13_arima_out_predict2
    -DoutputDetailTableName=pai_ft_x13_arima_out_detail2

パラメーターリファレンス

パラメーター

必須

説明

デフォルト

inputTableName

はい

入力テーブルの名前。

該当なし

inputTablePartitions

いいえ

入力テーブルのパーティション。

テーブル全体

seqColName

はい

時系列列。 値列の値を並べ替えます。

該当なし

valueColName

はい

値列。

該当なし

groupColNames

いいえ

層別列。複数の列はカンマ (,) で区切ります。例: col0,col1。グループごとに個別の時系列が作成されます。

該当なし

start

いいえ

時系列の開始時刻。 形式: year.seasonal、たとえば 1986.1 など。 詳細については、「時系列フォーマット」をご参照ください。

1.1

frequency

いいえ

時系列の頻度。 (0,12] の範囲の正の整数。 値 12 は 12 か月 (1 年) を示します。 詳細については、「時系列フォーマット」をご参照ください。

12

maxOrder

いいえ

p と q の最大値。 [0,4] の範囲の整数。

2

maxSeasonalOrder

いいえ

季節性の p と q の最大値。 [0,2] の範囲の整数。

1

maxDiff

いいえ

非季節差分次数 d の最大値。 [0,2] の範囲の整数。

2

maxSeasonalDiff

いいえ

季節差分次数 d の最大値。 [0,1] の範囲の整数。

1

diff

いいえ

非季節性差分階数 d。[0,2] の範囲の正の整数です。diffmaxDiff の両方が指定されている場合、maxDiff は無視されます。seasonalDiff と一緒に使用する必要があります。値 -1 は、未指定の差分階数を示します。

-1

seasonalDiff

いいえ

季節階差の次数 d。 [0,1] の範囲の正の整数。 seasonalDiffmaxSeasonalDiff の両方が指定されている場合、 maxSeasonalDiff は無視されます。 値 -1 は、未指定の季節階差の次数を示します。

-1

maxiter

いいえ

最大反復回数。 正の整数。

1500

tol

いいえ

収束許容誤差。 DOUBLE 型。

1e-5

predictStep

いいえ

予測エントリ数。 (0,365] の範囲の正の整数。

12

confidenceLevel

いいえ

予測区間の信頼度。 (0,1) の範囲の数値。

0.95

outputPredictTableName

はい

出力予測テーブル。

該当なし

outputDetailTableName

はい

出力詳細テーブル。

該当なし

outputTablePartition

いいえ

データをパーティションにエクスポートするかどうかを指定します。

パーティションにデータをエクスポートしない

coreNum

いいえ

コア数。正の整数です。memSizePerCore と併用されます。

システムによって決定

memSizePerCore

いいえ

コアあたりのメモリサイズ (MB)。 [1024, 65536] の範囲の正の整数。

システムによって決定

lifecycle

いいえ

出力テーブルのライフサイクル。

該当なし

時系列フォーマット

start パラメーターと フリークエンシー パラメーターは、数値列に ts1 と ts2 という 2 つの時間次元を定義します。

  • フリークエンシー は、1 つの ts1 単位に収まる ts2 単位の数を指定します。

  • startn1.n2 というフォーマットを使用します。これは、系列が n1 番目の ts1 における n2 番目の ts2 から始まることを意味します。

一般的な設定:

時間単位

ts1

ts2

フリークエンシー

start の例

12 か月/年

12

1949.2 = 1949 年 2 月

4 四半期/年

四半期

4

1949.2 = 1949 年第 2 四半期

7 日/週

7

1949.2 = 1949 週目の 2 日目

1

任意の時間単位

1

1

1949.1 = 1949 年、または 1949 日目、または 1949 時間目

時系列の例

指定値: value = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

start=1949.3, フリークエンシー=12 (月次データ、12 か月/年)

予測は 1950 年 6 月から始まります。

1月

2月

3月

4月

5月

6月

7月

8月

9月

10月

11月

12月

1949

1

2

3

4

5

6

7

8

9

10

1950

11

12

13

14

15

start=1949.3, フリークエンシー=4 (四半期データ、4 四半期/年)

予測は 1953 年第 2 四半期から始まります。

第 1 四半期

第 2 四半期

第 3 四半期

第 4 四半期

1949

1

2

1950

3

4

5

6

1951

7

8

9

10

1952

11

12

13

14

1953

15

start=1949.3, フリークエンシー=7 (日次データ、7 日/週)

予測は 1951 週目の 4 日目から始まります。

1949

1

2

3

4

5

1950

6

7

8

9

10

11

12

1951

13

14

15

start=1949.1, フリークエンシー=1 (非季節性データ)

予測は 1964 年から始まります。

サイクル

p1

1949

1

1950

2

1951

3

1952

4

1953

5

1954

6

1955

7

1956

8

1957

9

1958

10

1959

11

1960

12

1961

13

1962

14

1963

15

テストデータの準備

この例では、AirPassengers.csv データセットを使用します。このデータセットは、1949 年から 1960 年までの国際航空旅客数を月ごとに記録したものです。データセットの詳細については、「AirPassengers」をご参照ください。

サンプルデータ:

id

number

1

112

2

118

3

132

4

129

5

121

...

...

MaxCompute クライアントで次の Tunnel コマンドを実行して、データをアップロードします。MaxCompute クライアントのインストールと設定については、「MaxCompute クライアント (odpscmd)」をご参照ください。Tunnel コマンドの詳細については、「Tunnel コマンド」をご参照ください。

create table pai_ft_x13_arima_input(id bigint, number bigint);
tunnel upload xxx/airpassengers.csv pai_ft_x13_arima_input -h true;

PAI コマンドの実行

SQL スクリプトまたは ODPS SQL コンポーネントを使用して PAI コマンドを実行します。

PAI -name x13_auto_arima
    -project algo_public
    -DinputTableName=pai_ft_x13_arima_input
    -DseqColName=id
    -DvalueColName=number
    -Dstart=1949.1
    -Dfrequency=12
    -DmaxOrder=4
    -DmaxSeasonalOrder=2
    -DmaxDiff=2
    -DmaxSeasonalDiff=1
    -DpredictStep=12
    -DoutputPredictTableName=pai_ft_x13_arima_auto_out_predict
    -DoutputDetailTableName=pai_ft_x13_arima_auto_out_detail

出力

予測テーブル (outputPredictTableName)

説明

pdate

予測の日付。

forecast

予測の結論。

lower

指定した信頼度における予測区間の下限。デフォルト: 0.95。

upper

指定した信頼度における予測区間の上限。デフォルト: 0.95。

生成されたデータ:

Prediction output

詳細テーブル (outputDetailTableName)

説明

key

次のいずれか: model (使用されたモデル)、evaluation (評価)、parameters (トレーニングパラメーター)、または log (トレーニングログ)。

summary

対応するキーのストレージ詳細。

生成されたデータ:

Details output

よくある質問

すべての予測結果が同じ値になるのはなぜですか?

これは、モデルトレーニング中に例外が発生し、平均モデルにフォールバックした場合に発生します。平均モデルは、すべての予測に対してトレーニングデータの平均値を出力します。一般的な原因としては、差分後の不安定性、トレーニング中の収束の失敗、または入力データの分散が 0 であることが挙げられます。

具体的なエラーを診断するには、Logview で個々のノードの stderr ファイルを確認してください。

x13_arima と x13_auto_arima のどちらを選択すればよいですか?

x13_arima では、p、d、q、sp、sd、sq パラメーターを手動で指定する必要があります。どの値を使用すればよいかわからない場合は、代わりに x13_auto_arima を選択してください。x13_auto_arima では、上限 (maxOrdermaxDiff など) のみを設定すれば、コンポーネントがパラメーターを自動的に調整します。

エラー:差分後の観測値数が最小系列長未満

ERROR: Number of observations after differencing and/or conditional AR estimation
is 9, which is less than the minimum series length required for the model estimated, 24

指定されたモデルでは、トレーニングデータが不足しています。 frequency パラメーターを変更するか、トレーニングデータを追加してください。

エラー:MA 演算子の次数が過大

ERROR: Order of the MA operator is too large

このエラーは通常、トレーニングデータ不足が原因です。入力テーブルにデータポイントを追加してください。

エラー:系列に 3 年分以上の完全なデータが必要

ERROR: Series to be modelled and/or seasonally adjusted must have at least 3 complete
years of data

季節性パラメーターが指定されている場合、入力データには少なくとも 3 年分の完全な観測値を含める必要があります。

リファレンス

X-13ARIMA-SEATS は、オープンソースの X-13ARIMA-SEATS アルゴリズムに基づく季節調整済み自己回帰和分移動平均 (ARIMA) モデルアルゴリズムです。関連する手動パラメーターコンポーネントについては、x13_arima をご参照ください。