x13-auto-arimaコンポーネントは、自己回帰統合移動平均 (ARIMA) モデルの自動選択プログラムを使用します。 このコンポーネントは、TRAMO (1996) で編集されたGomezおよびMaravall (1998) プログラムに基づいています。 このトピックでは、Platform for AI (PAI) が提供するx13_auto_arimaコンポーネントを設定する方法について説明します。
背景情報
次のプロセスに基づいてx13_auto_arimaを選択します。
default model estimation
frequency = 1
の場合、デフォルトモデルは(0,1,1)
である。frequency > 1
の場合、デフォルトモデルは(0,1,1)(0,1,1)
である。identification of differencing orders
diffとseasonalDiffパラメータを指定する場合は、この手順をスキップしてください。
unit root tests
を使用して、差dと季節差Dを決定します。identification of ARMA model orders
ベイズ情報基準 (BIC) に基づいて最も適切なモデルを選択します。 maxOrderおよびmaxSeasonalOrderパラメーターは、この手順で有効になります。
comparison of identified model with default model
Ljung-Box Q統計を使用してモデルを比較します。 両方のモデルが受け入れられない場合は、
(3,d,1)(0,D,1)
モデルを使用します。final model checks
有馬の詳細については、「wiki」をご参照ください。 アルゴリズム使用法の注意:
支えられたスケール
行: グループ内の最大1,200のデータレコード
列: 1つの数値列
リソースの計算方法
groupColNamesパラメーターが指定されていない場合のデフォルトの計算方法:
coreNum=1 memSizePerCore=4096
groupColNamesパラメーターが指定されている場合のデフォルトの計算方法:
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 | 値は (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 | 可 | 入力テーブルの名前。 | N/A |
inputTablePartitions | 不可 | モデルトレーニング用に入力テーブルから選択されたフィーチャ列。 | フルテーブル |
seqColName | 可 | 時系列列。 このパラメーターは、値列の値をソートするためにのみ使用されます。 | N/A |
valueColName | 可 | 値の列。 | N/A |
groupColNames | 不可 | 階層化の列。 col0、col1など、複数の列をコンマ (,) で区切ることができます。 グループごとに時系列が作成されます。 | N/A |
start | 不可 | 時系列の開始時刻。 値は、 | 1.1 |
frequency | 不可 | 時系列の周波数。 値は (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 | 可 | 出力テーブル。 | N/A |
outputDetailTableName | 可 | 詳細テーブル。 | N/A |
outputTablePartition | 不可 | データをパーティションにエクスポートするかどうかを指定します。 | パーティションにデータをエクスポートしない |
coreNum | 不可 | コアの数。 値は正の整数でなければなりません。 このパラメーターは、memSizePerCoreと共に使用されます。 | システムによって決定される |
memSizePerCore | 不可 | 各コアのメモリサイズ。 単位:MB。 値は [1024,64 × 1024] の範囲の正の整数でなければなりません。 | システムによって決定される |
lifecycle | 不可 | 出力テーブルのライフサイクル。 | N/A |
時系列形式
startおよびfrequencyパラメーターは、数値列の時間ディメンションts1およびts2を指定します。
frequencyパラメータは、単位期間内のデータ周波数を指定し、各ts1におけるts2の周波数を意味する。
startパラメーターの値は
n1.n2
形式です。 これは、n1番目のts1において、開始日がn2番目のts2であることを示す。
時間単位: | ts1 | ts2 | 周波数 | start |
12ヶ月 /年 | 年 | 月 | 12 | 1949.2は1949年の2番目の月を示します。 |
4四半期 /年 | 年 | 3 か月 | 4 | 1949.2は1949年の第2四半期を示します。 |
7日 /週 | 週 | 日 | 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
予測の日付。
forecast
予測の結論。
lower
信頼レベルが指定された場合、予測の下限閾値が得られる。 デフォルトの信頼レベルは0.95です。
upper
予測の上限閾値は、信頼レベルが指定されたときに生じる。 デフォルトの信頼レベルは0.95です。
生成されたデータ
出力テーブルoutputDetailTableName
フィールドの説明
列名
コメント
key
model: 使用中のモデル。
evaluation: 評価結果。
parameters: トレーニングパラメータ。
log: トレーニングログ。
summary
ストレージの詳細。
生成されたデータ
よくある質問
なぜ予測結果は同じですか?
モデルトレーニング中に例外が発生した場合、平均モデルが呼び出されます。 この場合、全ての予測結果は訓練データの平均である。 一般的な例外には、時間差学習後の不安定性、収束のないトレーニング、および分散0が含まれます。 Logviewで個々のノードのstderrファイルを表示して、例外に関する特定の情報を取得できます。
コンポーネントパラメーターを設定するにはどうすればよいですか。
x13_arimaコンポーネントのp、d、q、sp、sd、およびsqパラメーターを設定する必要があります。 パラメーター設定に自信がない場合は、x13_auto_arimaコンポーネントを使用することを推奨します。
コンポーネントの上限のみを設定する必要があります。 コンポーネントは自動的にパラメータを調整します。
エラーメッセージ:
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
トレーニングデータが不十分です。 周波数パラメータを変更するか、トレーニングデータを追加します。
エラーメッセージ:
ERROR: Order of the MA operator is too large
ほとんどの場合、このエラーはトレーニングデータが不十分なために発生します。
エラーメッセージ:
ERROR: Series to be modelled and/or seasonally adjusted must have at least 3 complete years of data
季節パラメータを指定した場合は、少なくとも3年間のデータが必要です。
関連ドキュメント
X-13-ARIMAは、オープンソースX-13ARIMA-SEATSアルゴリズムに基づく季節調整済み自己回帰統合移動平均 (ARIMA) モデルアルゴリズムです。 x13_arimaコンポーネントを使用してデータを処理できます。 詳細については、「x13_auto_arima」をご参照ください。