Main Content

ARIMA モデルの推定

この例では、自己回帰和分移動平均 (ARIMA) モデルを推定する方法を示します。

非定常トレンド (季節性) を含む時系列のモデルが必要になることがあります。このようなモデルのカテゴリの 1 つが ARIMA モデルです。これらのモデルはノイズ源に固定の積分器を含みます。したがって、ARMA モデルの支配方程式が "A(q)y(t)=Ce(t)" として表される場合、ARIMA モデルの対応するモデルは次のように表されます。ここで、"A(q)" は自己回帰項、"C(q)" は移動平均項を表します。

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

ここで、項 11-q-1 は離散時間積分器を表します。同様に、ARI モデルと ARIX モデルの方程式も定式化できます。

時系列モデルの推定コマンド ararx、および armax を使用して、ノイズ源 e(t) に積分器を導入できます。これは、推定コマンドの IntegrateNoise パラメーターを使用して行います。

推定の手法では、時系列データの定数のオフセットは考慮されません。ノイズの積分器を導入する機能は時系列データだけに限定されません。外乱が季節性の影響を受ける可能性がある入出力モデルに対しても行うことができます。1 つの例として ARIMAX 構造の多項式モデルがあります。

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

例については、armax のリファレンス ページを参照してください。

線形トレンドをもつスカラーの時系列の ARI モデルを推定します。

load iddata9 z9
Ts = z9.Ts;
y = cumsum(z9.y);
model = ar(y,4,'ls','Ts',Ts,'IntegrateNoise', true);
% 5 step ahead prediction
compare(y,model,5)

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Validation data (y1), model: 78.76%.

2 つの時系列のうちの一方にのみノイズの積分がある多変量時系列モデルを推定します。

load iddata9 z9
Ts = z9.Ts;
y = z9.y;
y2 = cumsum(y);
% artificially construct a bivariate time series
data = iddata([y, y2],[],Ts); na = [4 0; 0 4];
nc = [2;1];
model1 = armax(data, [na nc], 'IntegrateNoise',[false; true]);
% Forecast the time series 100 steps into future
yf = forecast(model1,data(1:100), 100);
plot(data(1:100),yf)

Figure contains 2 axes objects. Axes object 1 with title y1 contains 2 objects of type line. These objects represent untitled1, yf. Axes object 2 with title y2 contains 2 objects of type line. These objects represent untitled1, yf.

出力が結合されていた場合 (na が対角行列でなかった場合)、状況がより複雑になり、2 番目のノイズ チャネルに単純に積分器を追加しても機能しません。