X-13-ARIMAは、オープンソースX-13ARIMA-SEATSアルゴリズムに基づく季節調整済み自己回帰統合移動平均 (ARIMA) モデルアルゴリズムです。 このトピックでは、Platform for AI (PAI) が提供するx13_arimaコンポーネントを設定する方法について説明します。
背景情報
ARIMAは、時系列予測のために、1970年代初頭にBoxとJenkinsによってBox-Jenkinsメソッドで提案されました。 ARIMAモデルはBox-Jenkinsモデルとも呼ばれます。
アルゴリズムの説明:
支えられたスケール
行: グループ内の最大1,200のデータレコード
列: 1つの数値列
リソースの計算方法
groupColNamesパラメーターが指定されていない場合のデフォルトの計算方法:
coreNum=1 memSizePerCore=4096
groupColNamesパラメーターが指定されている場合のデフォルトの計算方法:
coreNum = floor(Total number of rows/120,000) memSizePerCore=4096
コンポーネントの設定
次のいずれかの方法を使用して、x13_arimaコンポーネントを設定できます。
方法1: PAIコンソールでコンポーネントを設定する
Machine Learning Designerのパイプラインページで、x13_arimaコンポーネントのパラメーターを設定できます。 下表に、各パラメーターを説明します。
タブ | パラメーター | 説明 |
フィールド設定 | 時系列列 | 必須。 このパラメーターは、数値列の値をソートするためにのみ使用されます。 |
値列 | 必須。 | |
層化コラム | オプションです。 col0、col1など、複数の列をコンマ (,) で区切ることができます。 グループごとに時系列が作成されます。 | |
パラメーター設定 | Format | サポートされる形式はp,d,qです。 p、d、およびqは、[0,36] の範囲内の非負の整数である。
|
開始日 | サポートされている形式はyear.seasonです。 例: 1986.1 | |
シリーズ周波数 | 値は [1,12] の範囲の正の整数でなければなりません。 | |
Format | サポートされている形式はsp、sd、sqです。 sp、sd、およびsqは、[0,36] の範囲内の非負の整数である。
| |
季節サイクル | 値は (0,12) の範囲の数値でなければなりません。 デフォルト値: 12 | |
予測エントリ | 値は (0,120) の範囲の正の整数でなければなりません。 デフォルト値: 12 | |
予測信頼レベル | 値は (0,1) の範囲の数値でなければなりません。 デフォルト値: 0.95 | |
チューニング | コア | コアの数。 デフォルトでは、システムが値を決定します。 |
メモリ | コアあたりのメモリサイズ。 単位:MB。 |
方法2: PAIコマンドを使用してコンポーネントを構成する
SQLスクリプトを使用してPAIコマンドを呼び出すことができます。 詳細については、「SQLスクリプト」をご参照ください。
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 | 可 | 入力テーブルの名前。 | N/A |
inputTablePartitions | 不可 | トレーニング用に入力テーブルから選択されたフィーチャ列。 | フルテーブル |
seqColName | 可 | 時系列列。 このパラメーターは、valueColName列の値をソートするためにのみ使用されます。 | N/A |
valueColName | 可 | 数値列。 | N/A |
groupColNames | 不可 | グループ化列。 複数の列をコンマ (,) で区切ることができます。 例: col0,col1 グループごとに時系列が作成されます。 | N/A |
order | 可 | pは自己回帰係数を示す。 dは差を示す。 qは移動回帰係数を示す。 値は、[0,36] の範囲の負でない整数である必要があります。 | N/A |
start | 不可 | 時系列の開始日。 値は、1986.1のように、year.season形式の文字列である必要があります。 詳細については、「時系列形式」をご参照ください。 | 1.1 |
frequency | 不可 | 時系列の周波数。 値は (0,12) の範囲の正の整数でなければなりません。 詳細については、「時系列形式」をご参照ください。 | 12 説明 12の値は、1年あたり12か月を示します。 |
seasonal | 不可 | spは季節性自己回帰係数を示す。 sdは季節差を示す。 sqは、季節移動回帰係数を示す。 値は、[0,36] の範囲の負でない整数である必要があります。 | 季節以外 |
period | 不可 | 季節のサイクル。 値は (0,100) の範囲の数値でなければなりません。 | 設定 |
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] の範囲の正の整数でなければなりません。 | システムによって決定される |
ライフサイクル | 不可 | 出力テーブルのライフサイクル。 | 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]
は、単位時間が年間12か月であり、予測が1950年の6月から開始されることを示します。
年
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
1949
1
2
3
4
5
6
7
8
9
10
1950
11
12
13
14
有効期限の 15
は、単位時間が年間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
14
有効期限の 15
は、単位時間が週7日であることを示し、予測は1951週目の4日目から開始されます。
週
サン
月
火曜日
水曜日
木
金
土
1949
1
2
3
4
5
1950
6
7
8
9
10
11
12
1951
13
14
有効期限の 15
は、予測が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 xxxx/airpassengers.csv pai_ft_x13_arima_input -h true;
PAIコマンドの実行
SQLスクリプトまたはODPS SQLコンポーネントを使用して、次のPAIコマンドを実行できます。
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
予測の日付。
予測
予測の結論。
低い
信頼レベルが指定された場合、予測の下限閾値が得られる。 デフォルトの信頼レベルは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年間のデータが必要です。
関連ドキュメント
x13_arimaコンポーネントには、p、d、q、sp、sd、sqなどのパラメーターを設定する必要があります。 パラメーターの設定方法がわからない場合は、x13_auto_arimaコンポーネントを使用することを推奨します。 このコンポーネントのパラメーターの上限を指定するだけで、最適なパラメーター値が自動的に指定されます。 詳細については、「x13_auto_arima」をご参照ください。