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

Platform For AI:x13_arima

最終更新日:Jul 22, 2024

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] の範囲内の非負の整数である。

  • p: 自己回帰係数

  • d: 差

  • q: 移动回帰系数

開始日

サポートされている形式はyear.seasonです。 例: 1986.1

シリーズ周波数

値は [1,12] の範囲の正の整数でなければなりません。

Format

サポートされている形式はsp、sd、sqです。 sp、sd、およびsqは、[0,36] の範囲内の非負の整数である。

  • sp: 季節性自己回帰係数

  • sd: 季節差

  • sq: 季節移動回帰係数

季節サイクル

値は (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です。

    • 次の図にデータを示します。

      image

  • 出力テーブルoutputDetailTableName

    • フィールドの説明

      列名

      コメント

      キー

      • model: 使用中のモデル。

      • evaluation: 評価結果。

      • parameters: トレーニングパラメータ。

      • log: トレーニングログ。

      概要

      ストレージの詳細。

    • 次の図にデータを示します。

      image

よくある質問

  • なぜ予測結果は同じですか?

    モデルトレーニング中に例外が発生した場合、平均モデルが呼び出されます。 この場合、全ての予測結果は訓練データの平均である。 一般的な例外には、時間差学習後の不安定性、収束のないトレーニング、および分散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」をご参照ください。