ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

偏自己相関列による AR 次数選択

この例は、偏自己相関列を使用して自己回帰モデルの次数を評価する方法を示しています。これらの過程に対しては、偏自己相関列の使用がモデル次数の選択に役立ちます。値 X(1),X(2),X(3),...,X(k+1) をもつ定常な時系列において、ラグ k における偏自己相関列は、介在観測値 X(2),X(3),X(4),...,X(k)における X(1) および X(1) の回帰推定後の、X(1) と X(k+1) との相関です。移動平均過程では、自己相関列を使用して次数を評価することができます。しかし、自己回帰 (AR) 過程または自己回帰移動平均 (ARMA) 過程では、自己相関列は次数選択の役には立ちません。以下で定義される AR(2) 過程を考えます。

で定義される AR(2) 過程を検討します。ここで、ɛ(n) は N(0,1) ガウス ホワイト ノイズ過程です。以下に例を示します。

  • AR(2) 過程の実現をシミュレート

  • 時系列の遅延した値同士の相関をグラフにより考察

  • 時系列サンプルの自己相関列の調査

  • ユール・ウォーカー式を解くことによる時系列の AR(15) モデル近似 (aryule)

  • aryule によって返される反射係数を使用した偏自己相関列の計算

  • モデル次数選択のための偏自己相関列の調査

差分方程式で定義された AR(2) 過程から、長さ 1,000 サンプルの時系列をシミュレートします。再現性のある結果を得るために、乱数発生器を既定の状態に設定します。

A = [1 1.5 0.75];
rng default
x = filter(1,A,randn(1000,1));

AR(2) 過程の周波数応答を表示します。

[H,W] = freqz(1,A);
plot(W,20*log10(abs(H)),'linewidth',2); grid on;
axis tight;
xlabel('Radians/sample'); ylabel('dB');

この場合、AR(2) 過程はハイパス フィルターのように機能します。

n=2,3,4,5 について X(1) 対 X(n) の散布図を作成することによって x における相関をグラフを使用して調査します。

x12 = x(1:end-1);
x21 = x(2:end);
x13 = x(1:end-2);
x31 = x(3:end);
x14 = x(1:end-3);
x41 = x(4:end);
x15 = x(1:end-4);
x51 = x(5:end);
subplot(2,2,1)
plot(x12,x21,'b*');
xlabel('X_1'); ylabel('X_2');
subplot(2,2,2)
plot(x13,x31,'b*');
xlabel('X_1'); ylabel('X_3');
subplot(2,2,3)
plot(x14,x41,'b*');
xlabel('X_1'); ylabel('X_4');
subplot(2,2,4)
plot(x15,x51,'b*');
xlabel('X_1'); ylabel('X_5');

散布図において、X(1),X(2) および X(1),X(3) 間で線形関係があることがわかります。しかし、X(1) と X(4) または X(5) との間には線形関係はありません。

上段の散布図において、点はおおよそ直線に並び、左上のパネルでは負の勾配を、右上のパネルでは正の勾配をもっています。下の 2 つのパネルでは、散布図は明らかな線形関係を示してはいません。

X(1)およびX(2) 間の負の相関と X(1)およびX(3) 間の正の相関は、この例では AR(2) 過程がハイパス フィルターのように機能しているということによって説明されます。

サンプルの自己相関列を 50 ラグまで求めて結果をプロットします。

[xc,lags] = xcorr(x,50,'coeff');
stem(lags(51:end),xc(51:end),'markerfacecolor',[0 0 1])
xlabel('Lag'); ylabel('ACF');
title('Sample Autocorrelation Sequence');

サンプルの自己相関列は、ラグ 1 で 負の値、ラグ 2 で 正の値を示しています。散布図に基づけば、これは予想どおりの結果です。しかし、サンプルの自己相関列からは AR モデルに適切な次数がいくつかは決定できません。

aryule を使用して AR(15) モデルを近似します。反射係数を返します。反射係数の符号を反転すると偏自己相関列になります。

[arcoefs,E,K] = aryule(x,15);

大きいサンプルの 95% 信頼区間で偏自己相関列をプロットします。次数 p の自己回帰過程によってデータが生成される場合、サンプルの偏自己相関列の p より大きいラグにおける値は、N(0,1/N) 分布に従います。ここで、N は時系列の長さです。

pacf = -K;
lag = 1:15;
stem(lag,pacf,'markerfacecolor',[0 0 1]);
xlabel('Lag'); ylabel('Partial Autocorrelation');
set(gca,'xtick',1:1:15)
lconf = -1.96/sqrt(1000)*ones(length(lag),1);
uconf = 1.96/sqrt(1000)*ones(length(lag),1);
hold on;
line(lag,lconf,'color',[1 0 0]);
line(lag,uconf,'color',[1 0 0]);

偏自己相関列の値が 95% 信頼限界の外側にあるのは、ラグ 1 およびラグ 2 だけです。このことは AR 過程の正しいモデル次数が 2 であることを示しています。この例では、AR(2) 過程をシミュレートするために時系列を生成しました。したがって、この偏自己相関は結果を確かめただけです。実際には、モデル次数についての事前情報の無い、観察されただけの時系列を扱います。実際的なケースでは、偏自己相関は、定常な自己回帰時系列において適切なモデル次数を選択するための重要なツールです。

この情報は役に立ちましたか?