x13-auto-arimaコンポーネントは、自己回帰統合移動平均 (ARIMA) モデルの自動選択プログラムを使用します。 このコンポーネントは、TRAMO (1996) で編集されたGomezおよびMaravall (1998) プログラムに基づいています。 このトピックでは、Platform for AI (PAI) が提供するx13_auto_arimaコンポーネントを設定する方法について説明します。
背景情報
次のプロセスに基づいてx13_auto_arimaを選択します。
デフォルトモデル推定
frequency = 1の場合、デフォルトモデルは(0,1,1)である。frequency > 1の場合、デフォルトモデルは(0,1,1)(0,1,1)である。差分順序の識別
diffとseasonalDiffパラメータを指定する場合は、この手順をスキップしてください。
ユニットルートテストを使用して、差dと季節差Dを決定します。ARMAモデル注文の特定
ベイズ情報基準 (BIC) に基づいて最も適切なモデルを選択します。 maxOrderおよびmaxSeasonalOrderパラメーターは、この手順で有効になります。
識別されたモデルとデフォルトモデルの比較
Ljung-Box Q統計を使用してモデルを比較します。 両方のモデルが受け入れられない場合は、
(3,d,1)(0,D,1)モデルを使用します。最終モデルチェック
arimaの詳細については、「wiki」をご参照ください。 アルゴリズム使用法の注意:
支えられたスケール
行: グループ内の最大1,200のデータレコード
列: 1つの数値列
リソースの計算方法
groupColNamesパラメーターが指定されていない場合のデフォルトの計算方法:
coreNum=1 memSizePerCore=4096groupColNamesパラメーターが指定されている場合のデフォルトの計算方法:
coreNum = floor(Total number of rows/120,000) memSizePerCore=4096
制限事項
MaxComputeのコンピューティングリソースのみに基づいて、x13_auto_arimaコンポーネントを使用できます。
コンポーネントの設定
方法1: PAIコンソールでコンポーネントを設定する
Machine Learning Designerのパイプラインページで、x13_auto_arimaコンポーネントのパラメーターを設定できます。 下表に、各パラメーターを説明します。
タブ | パラメーター | 説明 |
フィールド設定 | 時系列列 | 必須。 このパラメーターは、値列の値をソートするためにのみ使用されます。 |
値列 | 必須。 | |
層化コラム | 必要に応じて、 col0、col1など、複数の列をコンマ (,) で区切ることができます。 グループごとに時系列が作成されます。 | |
パラメーター設定 | 開始日 | サポートされている形式はyear.seasonです。 例: 1986.1 |
シリーズ周波数 | 値は (0,12) の範囲の正の整数でなければなりません。 | |
最大pとq | 値は (0,4) の範囲の正の整数でなければなりません。 | |
最大の季节pとq | 値は (0,2) の範囲の数値でなければなりません。 | |
最大差d | 値は (0,2) の範囲の正の整数でなければなりません。 | |
最大の季節差d | 値は (0,1) の範囲の正の整数でなければなりません。 | |
差d | 値は (0,2) の範囲の正の整数でなければなりません。 diffパラメーターとmaxDiffパラメーターの両方が指定されている場合、maxDiffパラメーターは有効になりません。 diffパラメーターは、seasonalDiffパラメーターと一緒に使用する必要があります。 | |
季節差d | 値は (0,1) の範囲の正の整数でなければなりません。 seasonalDiffパラメーターとmaxSeasonalDiffパラメーターの両方を指定した場合、maxSeasonalDiffパラメーターは有効になりません。 | |
predictNum | 予測の数。 たとえば、先月の1日の売上を使用して新しい週の売上を予測する場合、予測の数は7です。 階層化列が選択された場合、各グループは7つの予測を有する。 値は (0,120) の範囲の正の整数でなければなりません。 | |
予測信頼区間 | デフォルト値: 0.95 | |
公差 | 必要に応じて、 デフォルト値: 1e-5 | |
最大イテレーション | 値は正の整数である必要があります。 デフォルト値: 1500 | |
実行チューニング | コア | コアの数。 デフォルトでは、システムが値を決定します。 |
メモリ | コアあたりのメモリサイズ。 単位:MB。 |
方法2: PAIコマンドを使用してコンポーネントを構成する
CLIを使用して、コンポーネントパラメーターを設定できます。 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 | 非対象 | 時系列の開始時刻。 値は、 | 1.1 |
周波数 | 非対象 | 時系列の周波数。 値は (0,12) の範囲の正の整数でなければなりません。 詳細については、「時系列形式」をご参照ください。 | 12 説明 12の値は12か月 (1年) を示します。 |
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] の範囲の正の整数でなければなりません。 diffパラメーターとmaxDiffパラメーターの両方が指定されている場合、maxDiffパラメーターは有効になりません。 diffパラメーターは、seasonalDiffパラメーターと共に使用する必要があります。 | -1 説明 − 1の値は、差dが指定されていないことを示す。 |
seasonalDiff | 非対象 | 季節の違いd。 値は [0,1] の範囲の正の整数でなければなりません。 seasonalDiffパラメーターとmaxSeasonalDiffパラメーターの両方を指定した場合、maxSeasonalDiffパラメーターは有効になりません。 | -1 説明 値 − 1は、季節差dが指定されていないことを示す。 |
maxiter | 非対象 | 反復の最大数。 値は正の整数である必要があります。 | 1500 |
tol | 非対象 | 公差。 値はDOUBLE型です。 | 1e-5 |
predictStep | 非対象 | 予測エントリの数。 値は (0,365) の範囲の正の整数でなければなりません。 | 12 |
confidenceLevel | 非対象 | 信頼レベル。 値は (0,1) の範囲の数値でなければなりません。 | 0.95 |
outputPredictTableName | 対象 | 出力テーブル。 | 非該当 |
outputDetailTableName | 対象 | 詳細テーブル。 | 非該当 |
outputTablePartition | 非対象 | データをパーティションにエクスポートするかどうかを指定します。 | パーティションにデータをエクスポートしない |
coreNum | 非対象 | コアの数。 値は正の整数である必要があります。 このパラメーターは、memSizePerCoreと共に使用されます。 | システムによって決定される |
memSizePerCore | 非対象 | 各コアのメモリサイズ。 単位:MB。 値は [1024,64 × 1024] の範囲の正の整数でなければなりません。 | システムによって決定される |
ライフサイクル | 非対象 | 出力テーブルのライフサイクル。 | 非該当 |
時系列形式
startおよびfrequencyパラメーターは、数値列の時間ディメンションts1およびts2を指定します。
frequencyパラメータは、単位期間内のデータ周波数を指定し、各ts1におけるts2の周波数を意味する。
startパラメーターの値は
n1.n2形式です。 これは、n1番目のts1において、開始日がn2番目のts2であることを示す。
時間の単位 | ts1 | ts2 | 周波数 | start |
12ヶ月 /年 | 年 | 1 か月 | 12 | 1949.2は1949年の2番目の月を示します。 |
4四半期 /年 | 年 | 3 か月 | 4 | 1949.2は1949年の第2四半期を示します。 |
7日 /週 | 週 | 1 日 | 7 | 1949.2は1949週目の2日目を示します。 |
1 | 任意の時間単位 | 1 | 1 | 1949.1は、1949年、または1949日または時間を示します。 |
例: value=[1,2,3,5,6,7,8,9,10,11,12,13,14,15]
start=1949.3、frequency=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、frequency=4は、単位時間が年4四半期であることを示し、予測は年1953の第2四半期から開始されます。年
Qtr1
Qtr2
Qtr3
Qtr4
1949
1
2
1950
3
4
5
6
1951
7
8
9
10
1952
11
12
13
14
1953
15
start=1949.3、frequency=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、frequency=1は、予測が1963.00で始まることを示す。サイクル
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 | 番号 |
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
予測の日付。
予測
予測の結論。
低い
信頼レベルが指定された場合、予測の下限閾値が得られる。 デフォルトの信頼レベルは0.95です。
アッパー
予測の上限閾値は、信頼レベルが指定されたときに生じる。 デフォルトの信頼レベルは0.95です。
生成されたデータ

出力テーブルoutputDetailTableName
フィールドの説明
列名
コメント
キー
model: 使用中のモデル。
evaluation: 評価結果。
parameters: トレーニングパラメータ。
log: トレーニングログ。
概要
ストレージの詳細。
生成されたデータ

よくある質問
なぜ予測結果は同じですか?
モデルトレーニング中に例外が発生した場合、平均モデルが呼び出されます。 この場合、全ての予測結果は訓練データの平均である。 一般的な例外には、時間差学習後の不安定性、収束のないトレーニング、および分散0が含まれます。 Logviewで個々のノードのstderrファイルを表示して、例外に関する特定の情報を取得できます。
コンポーネントパラメーターを設定するにはどうすればよいですか。
x13_arimaコンポーネントのp、d、q、sp、sd、およびsqパラメーターを設定する必要があります。 パラメーター設定に自信がない場合は、x13_auto_arimaコンポーネントを使用することを推奨します。
コンポーネントの上限のみを設定する必要があります。 コンポーネントは自動的にパラメータを調整します。
エラーメッセージ:
Error: 差分および /または条件付きAR推定後の観測数は9であり、推定されたモデルに必要な最小系列長24トレーニングデータが不十分です。 周波数パラメータを変更するか、トレーニングデータを追加します。
エラーメッセージ:
エラー: MA演算子の順序が大きすぎますほとんどの場合、このエラーはトレーニングデータが不十分なために発生します。
エラーメッセージ:
エラー: モデル化および /または季節調整するシリーズには、少なくとも3年間のデータが必要です季節パラメータを指定した場合は、少なくとも3年間のデータが必要です。
関連ドキュメント
X-13-ARIMAは、オープンソースX-13ARIMA-SEATSアルゴリズムに基づく季節調整済み自己回帰統合移動平均 (ARIMA) モデルアルゴリズムです。 x13_arimaコンポーネントを使用してデータを処理できます。 詳細については、「x13_auto_arima」をご参照ください。