Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

armax

時間領域データを使用して ARMAX、ARIMAX、ARMA、または ARIMA モデルのパラメーターを推定する

説明

ARMAX または ARMA モデルの推定

sys = armax(tt,[na nb nc nk]) は、timetable tt の変数に含まれるデータを使用して、ARMAX モデルまたは ARMA idpoly モデル sys のパラメーターを推定します。最初の Nu 個の変数が入力として使用され、次の Ny 個の変数が出力として使用されます。Nu と Ny はそれぞれ nbna の次元から決定されます。

ARMA モデルの場合は、入力信号がないため、sys = armax(tt,na) を使用します。この場合は、最初の Ny 個の変数を使用してモデルが適合されます。

armax は、予測誤差法と、[na nb nc nk] で指定された多項式の次数を使用して推定を行います。モデルのプロパティには、推定の共分散 (パラメーターの不確かさ)、および推定データと測定データとの適合度が含まれます。

tt から特定の入力チャネルと出力チャネルを選択するには、名前と値の構文を使用して 'InputName''OutputName' を対応する timetable 変数名に設定します。

sys = armax(u,y,[na nb nc nk]) は、コンマ区切りの行列 u,y 内の時間領域入力信号と出力信号を使用します。データのサンプル時間は 1 秒と仮定されます。サンプル時間を変更するには、名前と値の構文を使用して Ts を設定します。ARMA モデル

sys = armax(data,[na nb nc nk]) は、iddata オブジェクト data 内の時間領域データを使用します。この構文は特に、データ オブジェクトが提供する追加情報 (データのサンプル時間、実験のラベル付けなど) を利用する場合に使用します。

sys = armax(___,Name,Value) は、1 つ以上の名前と値の引数を使用して追加のオプションを指定します。たとえば、名前と値の引数 'IntegrateNoise',1 は、非定常外乱があるシステムに役立つ ARIMAX または ARIMA モデルを推定します。Name,Value は、前述の任意の入力引数の組み合わせの後に指定します。

初期パラメーターの構成

sys = armax(tt,init_sys) は、離散時間線形システム init_sys を使用して、timetable tt を使用した推定のための sys の初期パラメーター化を構成します。

sys = armax(u,y,init_sys) は、推定に行列データ u,y を使用します。

sys = armax(data,init_sys) は、推定にデータ オブジェクト data を使用します。

追加の推定オプションの指定

sys = armax(___,opt) は、初期条件の処理、正則化、および推定に使用する数値探索方法などのオプションを指定するオプション セット opt を組み込みます。

推定される初期条件を返す

[sys,ic] = armax(___) は、推定される初期条件を initialCondition オブジェクトとして返します。この構文は、モデルの応答を同じ推定入力データを使用してシミュレートまたは予測し、その応答を同じ推定出力データと比較する場合に使用します。初期条件を組み込むことで、シミュレーションの最初の部分における一致が高まります。

すべて折りたたむ

ARMAX モデルを推定し、推定データに対するモデル出力の適合を確認します。

timetable tt2 に測定データを読み込みます。

load sdata2 tt2

2 次 AB、および C 多項式、および 1 つのサンプル周期の伝達遅延をもつ ARMAX モデルを推定します。

na = 2;
nb = 2;
nc = 2;
nk = 1;
sys = armax(tt2,[na nb nc nk])
sys =
Discrete-time ARMAX model: A(z)y(t) = B(z)u(t) + C(z)e(t)
  A(z) = 1 - 1.512 z^-1 + 0.7006 z^-2                    
                                                         
  B(z) = -0.2606 z^-1 + 1.664 z^-2                       
                                                         
  C(z) = 1 - 1.604 z^-1 + 0.7504 z^-2                    
                                                         
Sample time: 0.1 seconds
  
Parameterization:
   Polynomial orders:   na=2   nb=2   nc=2   nk=1
   Number of free coefficients: 6
   Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.

Status:                                          
Estimated using ARMAX on time domain data "tt2". 
Fit to estimation data: 85.89% (prediction focus)
FPE: 1.086, MSE: 1.054                           
 

出力には、推定の詳細と一緒に、推定パラメーターを含む多項式が表示されます。Status の下の Fit to estimation data から、推定モデルの 1 ステップ先の予測精度が 80% を超えていることがわかります。

モデルのシミュレーション出力と測定されたデータを比較します。

compare(tt2,sys)

Figure contains an axes object. The axes object with ylabel y contains 2 objects of type line. These objects represent Validation data (y), sys: 85.69%.

測定されたデータに対するシミュレートされたモデルの適合度は、推定の適合度とほぼ同じです。

ARMA モデルを推定し、その応答を測定出力および AR モデルの両方と比較します。

ノイズがある時系列 ymat9 を含むデータを読み込みます。

load sdata9 ymat9

1 次 C 多項式で 4 次 ARMA モデルを推定します。

na = 4;
nc = 1;
sys = armax(ymat9,[na nc]);

4 次 AR モデルを推定します。

sys_ar = ar(ymat9,na);

モデル出力と測定されたデータを比較します。

compare(ymat9,sys,sys_ar)

Figure contains an axes object. The axes object is empty.

ARMA モデルの方がデータに適合します。

測定されたデータから ARMAX モデルを推定し、推定オプションを指定します。

データを読み込み、iddata オブジェクトを作成します。オプション セット opt を初期化し、FocusSearchMethodMaxIterations、および Display のオプションを設定します。更新したオプション セットを使用して、ARMAX モデルを推定します。

load twotankdata;
z = iddata(y,u,0.2);
opt = armaxOptions;
opt.Focus = 'simulation';
opt.SearchMethod = 'lm';
opt.SearchOptions.MaxIterations = 10;
opt.Display = 'on';
sys = armax(z,[2 2 2 1],opt);

進捗状況ビューアーに表示されるモデルの測定成分の終了条件は、最大反復回数に到達することです。

結果を改善するには、MaxIterations の大きい方の値を使用してモデルを再度推定するか、以下のように以前に推定されたモデルで反復を続行します。

sys2 = armax(z,sys);
compare(z,sys,sys2)

Figure contains an axes object. The axes object with ylabel y1 contains 3 objects of type line. These objects represent Validation data (y1), sys: 65.52%, sys2: 64.71%.

sys2sys のパラメーターを調整して、データへの適合度を高めます。

正則化された ARX モデルを変換して、正則化された ARMAX モデルを推定します。

データを読み込みます。

load regularizationExampleData.mat m0simdata;

次数 30 の正則化されていない ARMAX モデルを推定します。

m1 = armax(m0simdata(1:150),[30 30 30 1]);

試行錯誤により Lambda 値を決定して、正則化された ARMAX モデルを推定します。

opt = armaxOptions;
opt.Regularization.Lambda = 1;
m2 = armax(m0simdata(1:150),[30 30 30 1],opt);

正則化された ARX モデルを変換した後に、次数の低次元化を実行して、低次の ARMAX モデルを取得します。

opt1 = arxOptions;
[L,R] = arxRegul(m0simdata(1:150),[30 30 1]);
opt1.Regularization.Lambda = L;
opt1.Regularization.R = R;
m0 = arx(m0simdata(1:150),[30 30 1],opt1);
mr = idpoly(balred(idss(m0),7));

モデルの出力をデータと比較します。

opt2 = compareOptions('InitialCondition','z');
compare(m0simdata(150:end),m1,m2,mr,opt2);

Figure contains an axes object. The axes object with ylabel y1 contains 4 objects of type line. These objects represent Validation data (y1), m1: 41.22%, m2: 52.13%, mr: 64.91%.

一変量時系列データの 4 次 ARIMA モデルを推定します。

ノイズがある時系列を含むデータを読み込みます。

load iddata9 z9;

出力信号を積分し、結果を使用して z9 の元の出力信号を置換します。

z9.y = cumsum(z9.y);

'IntegrateNoisetrue に設定して、1 次 C 多項式で 4 次 ARIMA モデルを推定します。

model = armax(z9,[4 1],'IntegrateNoise',true); 

10 ステップ先の予測を使用してモデルの出力を予測し、予測された出力を推定データと比較します。

compare(z9,model,10)

Figure contains an axes object. The axes object is empty.

測定データから、さまざまな次数の ARMAX モデルを繰り返し推定します。

dryer2 データを読み込み、多項式の次数 nanbnc、および入力遅延 nk の組み合わせに対して推定を行います。

load dryer2;
z = iddata(y2,u2,0.08,'Tstart',0);
na = 2:4;
nc = 1:2;
nk = 0:2;
models = cell(1,18);
ct = 1;
for i = 1:3
    na_ = na(i);
    nb_ = na_;
    for j = 1:2
        nc_ = nc(j);
        for k = 1:3
            nk_ = nk(k); 
            models{ct} = armax(z,[na_ nb_ nc_ nk_]);
            ct = ct+1;
        end
    end
end

推定されたモデルをスタックし、シミュレートされた応答を推定データ z と比較します。

models = stack(1,models{:});
compare(z,models)

Figure contains an axes object. The axes object with ylabel y1 contains 19 objects of type line. These objects represent Validation data (y1), models(:,:,1): 58.91% models(:,:,2): 76.68% models(:,:,3): 85.97% models(:,:,4): 71.74% models(:,:,5): 78.2% models(:,:,6): 85.92% models(:,:,7): 87.44% models(:,:,8): 88.43% models(:,:,9): 88.32% models(:,:,10): 87.49% models(:,:,11): 88.43% models(:,:,12): 88.43% models(:,:,13): 88.41% models(:,:,14): 88.4% models(:,:,15): 88.38% models(:,:,16): 88.36% models(:,:,17): 88.37% models(:,:,18): 88.48%.

推定データを読み込みます。

load sdata2 umat2 ymat2

推定データから次数 3 の状態空間モデルを推定します。

sys0 = n4sid(umat2,ymat2,3);

以前推定した状態空間モデルを使用して ARMAX モデルを推定することにより、パラメーターを初期化します。

sys = armax(umat2,ymat2,sys0);
compare(umat2,ymat2,sys)

Figure contains an axes object. The axes object with ylabel y1 contains 2 objects of type line. These objects represent Validation data (y1), sys: 86.56%.

データを読み込みます。

load iddata1ic z1i

2 次 ARMAX モデル sys を推定し、ic で初期条件を返します。

na = 2;
nb = 2;
nc = 2;
nk = 1;
[sys,ic] = armax(z1i,[na nb nc nk]);
ic
ic = 
  initialCondition with properties:

     A: [2x2 double]
    X0: [2x1 double]
     C: [0 1]
    Ts: 0.1000

ic は、sys の自由応答を状態空間形式で X0 の初期状態ベクトルにカプセル化する initialCondition オブジェクトです。ic は、sysz1i 入力信号でシミュレートし、その応答を z1i 出力信号と比較する場合に組み込むことができます。

入力引数

すべて折りたたむ

推定データ。一定間隔の時間ベクトルを使用する timetable として指定します。tt には入力チャネルと出力チャネルを表す変数が含まれます。複数実験データの場合、tt は長さが Ne の timetable の cell 配列です。Ne は実験数です。

指定された多項式の次数の次元から、推定に使用する入力チャネルと出力チャネルの数が判定されます。入力/出力チャネルの選択は、'InputName''OutputName' の名前と値の引数が指定されているかどうかによります。

  • 'InputName''OutputName' が指定されていない場合、tt の最初の Nu 個の変数が入力として使用され、tt の次の Ny 個の変数が出力として使用されます。

  • 'InputName''OutputName' が指定されている場合、指定された変数が使用されます。指定された入力名と出力名の数は、Nu および Ny と一致しなければなりません。

  • 入力がない時系列モデルを推定できる関数では、'InputName' を指定する必要はありません。

推定データ型の取り扱いの詳細については、Data Domains and Data Types in System Identification Toolboxを参照してください。

推定データ。SISO システムの場合は、等間隔でサンプリングされた入力および出力時間領域信号値を含む、Ns 行 1 列の実数値行列のコンマ区切りのペアとして指定します。ここで、Ns はサンプルの数です。

MIMO システムの場合は、u,y を、以下の次元をもつ入力行列と出力行列のペアとして指定します。

  • u — Ns 行 Nu 列の行列。Nu は入力の数です。

  • y — Ns 行 Ny 列の行列。Ny は出力の数です。

複数実験データの場合は、u,y を 1 行 Ne 列の cell 配列のペアとして指定します。Ne は実験数です。すべての実験のサンプル時間が一致していなければなりません。

出力のみを含み、入力を含まない時系列データの場合は、[],y を指定します。

推定データ型の取り扱いの詳細については、Data Domains and Data Types in System Identification Toolboxを参照してください。

時間領域推定データ。iddata オブジェクトとして指定します。ARMA および ARIMA の時系列モデルの場合、data の入力チャネルは空でなければなりません。例については、ARMA モデルおよびARIMA モデルを参照してください。

モデルの多項式の次数と遅延。1 行 4 列のベクトル、または行列 [na nb nc nk] のベクトルとして指定します。多項式の次数は、その多項式で推定する係数の数と等しくなります。

ARMA または ARIMA 時系列モデルの場合、入力はないため、[na nb nc nk][na nc] に設定します。例については、ARMA モデルを参照してください。

Ny 個の出力と Nu 個の入力をもつモデルの場合は次のようになります。

  • na は多項式 A(q) の次数です。Ny 行 Ny 列の非負の整数の行列として指定します。

  • nb は多項式 B(q) + 1 の次数です。Ny 行 Nu 列の非負の整数の行列として指定します。

  • nc は多項式 C(q) の次数です。長さが Ny の非負の整数の列ベクトルとして指定します。

  • nk は入出力遅延です。伝達遅延とも呼ばれます。Ny 行 Nu 列の非負の整数の行列として指定します。nk は、ARMAX モデルでは B 多項式の先頭に含まれる固定のゼロで表現されます。

例については、ARMAX モデルの推定を参照してください。

sys の初期パラメーター化を構成するシステム。離散時間線形モデルとして指定します。init_sys は、測定データを使用した推定を実行して取得することも、idpolyidss などのコマンドを使用して直接構築することもできます。

init_sys が ARMAX モデルの場合、armaxinit_sys のパラメーター値を推定の初期推定として使用します。A(q)、B(q)、および C(q) の初期推定と制約を構成するには、init_sysStructure プロパティを使用します。以下に例を示します。

  • init_sys の A(q) 項の初期推定を指定するには、init_sys.Structure.A.Value を初期推定として設定します。

  • init_sys の B(q) 項の制約を指定するには、以下を行います。

    • init_sys.Structure.B.Minimum を最小の B(q) 係数値に設定します。

    • init_sys.Structure.B.Maximum を最大の B(q) 係数値に設定します。

    • init_sys.Structure.B.Free を設定して、推定についてどの B(q) 係数が自由であるか示します。

init_sys が ARMAX 構造をもつ多項式モデルでない場合、最初に init_sys が ARMAX モデルに変換されます。armax は結果のモデルのパラメーターを、sys を推定する初期推定として使用します。

opt が指定されず、init_sys が推定で取得された場合、init_sys.Report.OptionsUsed からの推定オプションが使用されます。

例については、状態空間モデルを使用した ARMAX モデル パラメーターの初期化を参照してください。

RMAX モデルの同定の推定オプション。armaxOptions オプション セットとして指定します。opt で指定するオプションには以下が含まれます。

  • 初期条件の処理 — このオプションを使用して、初期条件の設定または推定方法を決定します。

  • 入力データと出力データのオフセット — これらのオプションは、推定時にデータからオフセットを削除するために使用します。

  • 正則化 — このオプションは、推定プロセスにおけるバイアスと分散の誤差のトレードオフを制御するために使用します。

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

例: 'InputDelay',2 は、2 つのサンプル周期の入力遅延をすべての入力チャネルに適用します。

サンプル時間。'Ts' とサンプル時間 (TimeUnit で指定された単位) で構成されるコンマ区切りのペアとして指定します。行列ベースのデータ (u,y) を使用するときに、仮定された 1 秒のサンプル時間以外のサンプル時間が必要な場合は Ts を指定する必要があります。

timetable tt のデータのサンプル時間を取得するには、timetable プロパティ tt.Properties.Timestep を使用します。

例: armax(umat1,ymat1,___,'Ts',0.08) は、0.08 秒のサンプル時間でモデルを計算します。

入力遅延。サンプル時間の整数倍として表されます。'InputDelay' と次のいずれかで構成されるコンマ区切りのペアとして指定します。

  • Nu 行 1 列のベクトル (Nu は入力の数) — 各エントリは、対応する入力チャネルの入力遅延を表す数値です。

  • スカラー値 — すべての入力チャネルに同じ遅延を適用します。

  • 0 — 入力遅延はありません。

例: armax(data,[2 1 1 0],'InputDelay',1) は、2 サンプルの入力遅延を含む 1 次 B および C 多項式をもつ 2 次 ARX モデルを推定します。

各入出力ペアの伝達遅延。サンプル時間の整数倍として表されます。'IODelay' と次のいずれかで構成されるコンマ区切りのペアとして指定します。

  • Ny 行 Nu 列の行列 (Ny は出力の数、Nu は入力の数) — 各エントリは、対応する入出力ペアの伝達遅延を表す整数値です。

  • スカラー値 — すべての入出力ペアに同じ遅延を適用します。

'IODelay' は、nk 次数の置換として役に立ちます。max(nk-1,0) のラグを 'IODelay' の値として括り出すことができます。nk > 1 の場合、armax(na,nb,nk)armax(na,nb,1,'IODelay',nk-1) と等価です。

ノイズ チャネルへの積分器の追加。'IntegrateNoise' と長さ Ny の logical ベクトルで構成されるコンマ区切りのペアとして指定します。Ny は出力の数です。

特定の出力に対して 'IntegrateNoise'true に設定すると、このモデルになります。

A(q)y(t)=B(q)u(tnk)+C(q)1q1e(t)

ここで、11q1 はノイズ チャネル e(t) の積分器です。

'IntegrateNoise' を使用して ARIMA または ARIMAX モデルを作成します。

例については、ARIMA モデルを参照してください。

出力引数

すべて折りたたむ

与えられた推定データを適合する ARX モデル。離散時間の idpoly オブジェクトとして返されます。このモデルは、指定したモデル次数、遅延、および推定オプションを使用して作成されます。

推定結果と使用されたオプションに関する情報は、モデルの Report プロパティに格納されます。Report には次のフィールドがあります。

Report のフィールド説明
Status

モデルのステータスの概要。モデルが構築によって作成されたものか推定によって取得されたものかを示します。

Method

使用された推定コマンド。

InitialCondition

モデル推定時の初期条件の処理。次の値のいずれかとして返されます。

  • 'zero' — 初期条件をゼロに設定。

  • 'estimate' — 初期条件を独立した推定パラメーターとして処理。

  • 'backcast' — 初期条件を最適な最小二乗近似を使用して推定。

このフィールドは、推定オプション セットで InitialCondition オプションが 'auto' に設定されている場合に、初期条件がどのように扱われたかを確認するのに特に便利です。

Fit

推定の定量的評価。構造体として返されます。これらの品質メトリクスの詳細については、Loss Function and Model Quality Metricsを参照してください。構造体には、以下のフィールドがあります。

フィールド説明
FitPercent

正規化平方根平均二乗誤差 (NRMSE)。モデルの応答が推定データにどの程度適合するかをパーセンテージで示す尺度で、fitpercent = 100(1-NRMSE) として表されます。

LossFcn

推定完了時の損失関数の値。

MSE

平均二乗誤差 (MSE)。モデルの応答が推定データにどの程度適合するかを示す尺度です。

FPE

モデルの最終予測誤差。

AIC

生の赤池情報量基準 (AIC)。モデルの品質を示す尺度です。

AICc

小さいサンプルサイズの補正された AIC。

nAIC

正規化された AIC。

BIC

ベイズ情報量基準 (BIC)。

Parameters

モデル パラメーターの推定値。

OptionsUsed

推定に使用されたオプション セット。これは、カスタム オプションを構成していない場合は既定のオプションのセットになります。詳細については、armaxOptions を参照してください。

RandState

推定開始時の乱数ストリームの状態。推定時にランダム化が使用されなかった場合は空 [] になります。詳細については、rng を参照してください。

DataUsed

推定に使用されたデータの属性。次のフィールドをもつ構造体として返されます。

フィールド説明
Name

データ セットの名前。

Type

データ型。

Length

データ サンプルの数。

Ts

サンプル時間。

InterSample

入力サンプル間動作。次の値のいずれかとして返されます。

  • 'zoh' — ゼロ次ホールドにより、サンプル間で区分的に一定な入力信号を維持。

  • 'foh' — 1 次ホールドにより、サンプル間で区分的に線形な入力信号を維持。

  • 'bl' — 帯域幅を制限した動作により、ナイキスト周波数を超える連続時間入力信号のパワーがゼロになるように指定。

InputOffset

推定時に時間領域の入力データから削除されたオフセット。非線形モデルの場合は [] になります。

OutputOffset

推定時に時間領域の出力データから削除されたオフセット。非線形モデルの場合は [] になります。

Termination

予測誤差の最小化に使用された反復探索の終了条件。次のフィールドを含む構造体として返されます。

フィールド説明
WhyStop

数値探索を終了する理由。

Iterations

推定アルゴリズムで実行された探索の反復回数。

FirstOrderOptimality

探索アルゴリズムが終了したときの勾配探索ベクトルの ノルム。

FcnCount

目的関数が呼び出された回数。

UpdateNorm

最後の反復における勾配探索ベクトルのノルム。探索法が 'lsqnonlin' または 'fmincon' の場合は省略されます。

LastImprovement

最後の反復における基準改善。パーセンテージで表されます。探索法が 'lsqnonlin' または 'fmincon' の場合は省略されます。

Algorithm

'lsqnonlin' または 'fmincon' の探索法で使用されるアルゴリズム。他の探索法が使用されている場合は省略されます。

数値探索の最適化を必要としない推定法の場合、Termination フィールドは省略されます。

Report の使用の詳細については、Estimation Reportを参照してください。

推定される初期条件。initialCondition オブジェクトまたは initialCondition 値のオブジェクト配列として返されます。

  • 単一実験データ セットの場合、ic は、推定される初期条件 (x0) に対する伝達関数モデルの自由応答 (行列 A および C) を状態空間形式で表します。

  • Ne 回の実験用の複数実験データ セットの場合、ic は、実験ごとに 1 つの initialCondition 値のセットを含む長さ Ne のオブジェクト配列です。

armax0ic 値を返し、非ゼロの初期条件があることがわかっている場合は、armaxOptions'InitialCondition' オプションを 'estimate' に設定し、更新されたオプション セットを armax に渡します。以下に例を示します。

opt = armaxOptions('InitialCondition','estimate')
[sys,ic] = armax(data,np,nz,opt)
'InitialCondition' の既定の 'auto' 設定では、初期条件が推定誤差最小化プロセス全体に無視できる影響をもたらす場合、'zero' 手法が使用されます。'estimate' を指定すると、ic の値が推定されます。

詳細については、initialCondition を参照してください。この引数の使用例については、初期条件の取得を参照してください。

詳細

すべて折りたたむ

ARMAX モデル

ARMAX (追加入力を伴う自己回帰移動平均) モデルの構造は次のとおりです。

y(t)+a1y(t1)++anay(tna)=     b1u(tnk)++bnbu(tnknb+1)+             c1e(t1)++cnce(tnc)+e(t)

よりコンパクトに差分方程式を記述すると次のようになります。

A(q)y(t)=B(q)u(tnk)+C(q)e(t)

ここで

  • y(t) — 時間 t における出力

  • na — 極の数

  • nb — 零点の数 + 1

  • nc"C" 係数の数

  • nk — 入力が出力に影響する前のシステムの "むだ時間" とも呼ばれる時間に発生する入力サンプルの数

  • y(t1)y(tna) — 現在の出力が依存している前の出力

  • u(tnk)u(tnknb+1) — 現在の出力が依存している前の入力と遅延入力

  • e(t1)e(tnc) — ホワイトノイズ外乱の値

パラメーター nanb、および nc は ARMAX モデルの次数、nk は遅延です。"q" は遅れ演算子です。具体的には次のようになります。

A(q)=1+a1q1++anaqna

B(q)=b1+b2q1++bnbqnb+1

C(q)=1+c1q1++cncqnc

ARMA 時系列モデル

ARMA (自己回帰移動平均) モデルは、入力チャネルがないARMAX モデルの特殊なケースです。ARMA 単出力モデルの構造は次の方程式で与えられます。

A(q)y(t)=C(q)e(t)

ARIMAX モデル

ARIMAX (追加入力を伴う自己回帰和分移動平均) モデルの構造は、ARMAX モデルと似ていますが、ノイズ源 e(t) に積分器を含む点が異なります。

A(q)y(t)=B(q)u(tnk)+C(q)(1q1)e(t)

ARIMA モデル

ARIMA (自己回帰和分移動平均) モデルの構造は、入力がない ARIMAX モデルの低次元化です。

A(q)y(t)=C(q)(1q1)e(t)

アルゴリズム

反復探索アルゴリズムは、ロバスト化した二次予測誤差基準を最小化します。以下のいずれかに該当する場合、反復が終了します。

  • 最大反復回数に達した。

  • 期待改善量が、指定された許容誤差よりも小さい。

  • 基準の下限値が見つからない。

sys.Report.Termination を使用して、停止条件に関する情報を取得できます。

armaxOptions オプション セットを使用して、推定結果に影響を与えるオプションを作成および構成します。特に、'SearchOptions' プロパティを使用して、MaxIterationsTolerance などの探索アルゴリズム属性を設定します。

反復探索の初期パラメーター値を初期モデルとして指定しない場合、それらの値は特殊な 4 段階 LS-IV アルゴリズムで作成されます。

ロバスト化のカットオフ値は、Advanced.ErrorThreshold 推定オプションと、初期パラメーター推定値の残差の推定標準偏差に基づきます。カットオフ値は、最小化中に再計算されません。既定では、ロバスト化は実行されません。ErrorThreshold オプションの既定値は 0 です。

安定した予測子に対応するモデルのみテストされるように、アルゴリズムは予測子の安定性テストを実行します。一般的に、C(q)F(q) (該当する場合) の両方が、単位円の内側にすべての零点をもたなければなりません。

最小化の情報は、推定オプション 'Display''On' または 'Full' である場合に画面に表示されます。'Display''Full' の場合、現在のパラメーター推定値と前のパラメーター推定値の両方が列ベクトルの形式で表示され、パラメーターはアルファベット順に表示されます。また、基準関数 (コスト) の値が与えられ、ガウス・ニュートン ベクトルとそのノルムが表示されます。'Display''On' の場合、基準値のみが表示されます。

代替方法

armax は、連続時間モデルの推定をサポートしません。tfest を使用して連続時間伝達関数モデルを推定するか、ssest を使用して連続時間状態空間モデルを推定します。

armax は時間領域データのみサポートします。周波数領域データの場合は、oe を使用して出力誤差 (OE) モデルを推定します。

参照

[1] Ljung, L. System Identification: Theory for the User, Second Edition. Upper Saddle River, NJ: Prentice-Hall PTR, 1999. See chapter about computing the estimate.

バージョン履歴

R2006a で導入

すべて展開する