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

Platform For AI:x13_arima

最終更新日:Apr 01, 2026

x13_arima は、オープンソースの X-13ARIMA-SEATS パッケージに基づく季節性時系列予測アルゴリズムです。このアルゴリズムはフィルターのように機能し、入力データに含まれるノイズおよび季節的パターンから、基礎となる信号を分離したうえで、その信号を将来へと外挿して予測値を生成します。

データに明確な季節構造(例:月次売上、四半期収益、週次トラフィックなど)が存在し、モデルの次数(order)を完全に制御したい場合に、x13_arima を使用します。どの次数を指定すべきか不明な場合は、代わりに x13_auto_arima を使用してください。このコンポーネントでは、各次数の上限値のみを指定すれば、x13_auto_arima が自動的に最適な値を探索します。

仕組み

x13_arima は、ARIMA(p,d,q)(P,D,Q)m の形式で表される季節性 ARIMA モデルを適用します:

区分パラメーター意味
非季節成分(p,d,q)自己回帰次数、差分次数、移動平均次数
季節成分(P,D,Q)季節自己回帰次数、季節差分次数、季節移動平均次数
周期m1 季節あたりの観測数(例:年間サイクルにおける月次データの場合は 12)

ARIMA(自己回帰和分移動平均)は、1970 年代初頭に Box および Jenkins によって提唱され、Box-Jenkins モデルとも呼ばれます。

制限事項

制限
グループあたりの行数最大 1,200 レコード
実行ごとに数値列を 1 列のみ指定可能

コンポーネントの設定

方法 1:PAI コンソールでの設定(推奨)

ビジュアルモデリングのパイプラインページで、x13_arima コンポーネントを追加し、以下のパラメーターを設定します。

[フィールド設定] タブ

パラメーター必須説明
時系列列はい数値列を並べ替えます。値自体には影響しません。
値列はい予測対象の数値列です。
層別化列いいえカンマ区切りの列名(例:col0,col1)。各グループごとに個別のモデルが適用されます。

[パラメータ設定] タブ

パラメーター必須範囲デフォルト説明
フォーマット (p,d,q)はい[0, 36] の非負整数非季節 ARIMA 次数。p:自己回帰次数、d:差分次数、q:移動平均次数。
開始日付いいえyear.season(例:1986.11.1時系列の開始位置です。「時系列フォーマット」をご参照ください。
系列周波数いいえ[1, 12] の正の整数12単位期間あたりの観測数です。12 は、年間サイクルにおける月次データを意味します。
フォーマット (sp,sd,sq)いいえ[0, 36] の非負整数非季節季節 ARIMA 次数。sp:季節自己回帰次数、sd:季節差分次数、sq:季節移動平均次数。
季節サイクルいいえ(0, 12]12季節周期の長さです。
予測エントリいいえ(0, 120] の正の整数12将来へと予測するステップ数です。
予測信頼水準いいえ(0, 1)0.95予測範囲の信頼区間の幅です。

[チューニング] タブ

パラメーター説明
コア数コア数です。デフォルトではシステムが自動的に決定します。
メモリコアあたりのメモリ量(MB 単位)です。デフォルトではシステムが自動的に決定します。

方法 2:PAI コマンドの実行

SQL スクリプトまたはODPS SQL コンポーネントを使用して、x13_arima を直接呼び出します。

PAI -name x13_arima
    -project algo_public
    -DinputTableName=pai_ft_x13_arima_input
    -DseqColName=id
    -DvalueColName=number
    -Dorder=3,1,1
    -Dstart=1949.1
    -Dfrequency=12
    -Dseasonal=0,1,1
    -Dperiod=12
    -DpredictStep=12
    -DoutputPredictTableName=pai_ft_x13_arima_out_predict
    -DoutputDetailTableName=pai_ft_x13_arima_out_detail

パラメーター

パラメーター必須デフォルト説明
inputTableNameはい入力テーブルの名前です。
inputTablePartitionsいいえ全テーブル入力テーブルから読み込むパーティションです。
seqColNameはい時系列列です。valueColName 列の並べ替えにのみ使用されます。
valueColNameはい予測対象の数値列です。
groupColNamesいいえグループ化列(カンマ区切り、例:col0,col1)。各グループごとに個別のモデルが適用されます。
orderはい非季節次数(p,d,q 形式)。[0, 36] の非負整数です。
startいいえ1.1時系列の開始位置(n1.n2 形式)です。「時系列フォーマット」をご参照ください。
frequencyいいえ12単位期間あたりの観測数です。(0, 12] の範囲。12 は 1 年間に 12 ヶ月あることを意味します。
seasonalいいえ非季節季節次数(sp,sd,sq 形式)。[0, 36] の非負整数です。
periodいいえfrequency季節周期の長さです。(0, 100] の範囲。
maxiterいいえ1500トレーニング反復回数の上限です。
tolいいえ1e-5収束許容誤差(DOUBLE 型)です。
predictStepいいえ12将来へと予測するステップ数です。(0, 365] の範囲。
confidenceLevelいいえ0.95予測範囲の信頼水準です。(0, 1)の範囲。
outputPredictTableNameはい予測結果の出力テーブルです。
outputDetailTableNameはいモデル詳細の出力テーブルです。
outputTablePartitionいいえパーティションなし出力テーブルのパーティション仕様です。
coreNumいいえシステムデフォルトコア数です。正の整数である必要があります。memSizePerCore と併用します。
memSizePerCoreいいえシステムデフォルトコアあたりのメモリ量(MB 単位)です。[1024, 65536] の範囲。
lifecycleいいえMaxCompute における出力テーブルのライフサイクルです。

デフォルトのリソース割り当て

条件coreNummemSizePerCore
groupColNames 未設定14096 MB
groupColNames 設定済みfloor(total rows / 120,000)4096 MB

時系列フォーマット

start および frequency パラメーターは、データをカレンダー時間にマッピングする方法を共同で定義します。データを、2 段階のカレンダー(上位単位 ts1(例:年)および下位単位 ts2(例:月))に配置された値のシーケンスとして考えます。

  • frequencyts2 下位単位が ts1 上位単位あたりにいくつあるか

  • startn1.n2 の形式で記述され、これは n2 番目の ts2n1 番目の ts1 内にあることを意味します

粒度ts1ts2frequencystart の例
月次121949.2 = 1949 年 2 月
四半期四半期41949.2 = 1949 年第 2 四半期
日次(週単位サイクル)71949.2 = 1949週目の2日目
カスタム単一単位任意11949.1 = 1949 番目の単位

この例では、1949 年から 1960 年までの国際線航空便の乗客数を月別に記録した AirPassengers データセットを使用しています。データセットの詳細については、「AirPassengers (R datasets)」をご参照ください。

入力テーブルの準備

入力テーブルには、2 つの列があります:id(シーケンス番号)および number(旅客数)です。

idnumber
1112
2118
3132
4129
5121
......

テーブルを作成し、MaxCompute クライアントを使用してデータをアップロードします。インストール手順については、「MaxCompute クライアント (odpscmd)」をご参照ください。トンネル コマンドの使用方法については、「トンネル コマンド」をご参照ください。

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

このデータセットは、1949 年 1 月から始まる月次データであるため、start=1949.1 および frequency=12 を使用します。以下の表は、14 個の値 [1, 2, 3, ..., 15]start=1949.3 および frequency=12(1949 年 3 月から始まる月次データ)でマッピングした場合の例です:

1 月2 月3 月4 月5 月6 月7 月8 月9 月10 月11 月12 月
194912345678910
19501112131415

以下の例では、同じ値のシーケンス [1, 2, 3, ..., 15] を使用して、四半期、週次、および単一単位の粒度における時系列マッピングを示します:

四半期(frequency=4、start=1949.3)

Q1Q2Q3Q4
194912
19503456
195178910
195211121314
19531415

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

週単位サイクルの日次(frequency=7、start=1949.3)

194912345
19506789101112
1951131415

予測は、1951週目の4日目から開始されます。

単一単位(frequency=1、start=1949.1)

サイクルp1
19491
19502
19513
19524
19535
19546
19557
19568
19579
195810
195911
196012
196113
196214
196315

予測は 1963 年から開始されます。

PAI コマンドの実行

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

PAI -name x13_arima
    -project algo_public
    -DinputTableName=pai_ft_x13_arima_input
    -DseqColName=id
    -DvalueColName=number
    -Dorder=3,1,1
    -Dseasonal=0,1,1
    -Dstart=1949.1
    -Dfrequency=12
    -Dperiod=12
    -DpredictStep=12
    -DoutputPredictTableName=pai_ft_x13_arima_out_predict
    -DoutputDetailTableName=pai_ft_x13_arima_out_detail

出力テーブル

outputPredictTableName — 予測結果

説明
pdate予測日付です。
forecast予測値です。
lower信頼区間の下限(デフォルト:95%)です。
upper信頼区間の上限(デフォルト:95%)です。
image

outputDetailTableName — モデル詳細

説明
keyレコードタイプです:model(モデル仕様)、evaluation(評価メトリック)、parameters(トレーニングパラメーター)、または log(トレーニングログ)。
summary対応する key の詳細内容です。
image

よくある質問

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

モデルが平均モデルにフォールバックしており、すべての予測ステップに対してトレーニングデータの平均値を出力しています。これは、時系列差分後の不安定性、収束失敗、または分散がゼロであるなどの理由によりトレーニングが失敗した場合に発生します。正確なエラーを確認するには、ジョブの Logview を開き、個々のノードの stderr ファイルを確認してください。

p、d、q、sp、sd、sq の値をどのように選択すればよいですか?

パラメーター設定に自信がない場合は、代わりに x13_auto_arima を使用してください。各次数の上限値のみを設定すると、x13_auto_arima が自動的に最適な値を探索します。

エラー:`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 パラメーターを変更するか、より多くの過去のデータを追加してください。

エラー:`Order of the MA operator is too large`

ほとんどの場合、このエラーはトレーニングデータが不十分であるために発生します。トレーニングデータを追加してください。

エラー:`Series to be modelled and/or seasonally adjusted must have at least 3 complete years of data`

季節パラメーター(seasonal)を指定する場合、入力データには少なくとも 3 年分の完全なデータが必要です。

次のステップ