関数 > 信号処理 > 時系列解析 > 例: 相関および部分自己相関
例: 相関および部分自己相関
lcorr関数を使用してラグサンプル相関を計算し、plcorr関数を使用して部分自己相関を計算します。
定義および例については、Bowerman/O'Connell 著『Time Series Analysis』 (Duxbury) および Granger/Newbold 著『Forecasting Economic Time Series』 (Academic Press) を参照してください。
lcorr
lcorr 関数は、2 つの入力の長さが同じであることを前提としています。
入力信号はウィンドウ処理された正弦波パルス形式であるものとします。このパルスは音波探知信号などとして使用されます。リターン信号はいくらかの距離を進み、探知対象のオブジェクトに当たって跳ね返り、(移動時間だけ) 遅れ、減衰して、ノイズを含んでソースに返ります。受信した信号を探知信号と相関させることで、ラグを求め、それによって探知対象のオブジェクトまでの距離を求めることができます。
1. サンプル点の数を定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
2. パルスの長さを定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
3. sin関数を使用して信号を定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
4. hanning関数を使用してウィンドウ制御関数を定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
ウィンドウの幅は 200 です
ベクトル x は 1000 個の成分から成ります
5. 入力信号 x をプロットして、縦マーカーを使用してパルス長の線を表示します。
クリックしてこの式をコピー
6. rnd関数を使用してランダムノイズを定義してから、戻り信号の遅延と減衰を定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
7. リターン信号を定義し、入力信号とともにプロットします。
クリックしてこの式をコピー
クリックしてこの式をコピー
信号をシミュレートしたのではなく測定した場合など、ラグ時間がわからない場合、上記のようなノイズを含むプロットではどこがリターンパルスであるのかがわかりません。
この相関関数では、一方の信号をもう一方の信号に対して平行移動しながら掛け合わせて和をとるので、ラグ時間またはその付近での xy の線形相関は、その他のサンプルの相関と比較して最大になると考えられます。ラグ時間に達すると、重なりが最大になります。
8. 関数lcorrmax、およびmatchを使用して、xy の線形相関がラグ時間またはその付近で最大になることを確認します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
lcorr を使用した自己相関
自己相関を使用して、移動平均プロセスの次数を推定します。
1. rnd 関数とmovavg関数を使用して、ウィンドウ幅 N で乱数シーケンスを平滑化します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
2. 移動平均をプロットします。
クリックしてこの式をコピー
3. lcorr 関数を使用して Y の自己相関を計算し、プロットします。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
自己相関の最初の N 個の値は、N で 0 に近づくほぼ直線を形成します。N の値が既知でない場合は、この振る舞いを基に推定を行うことができました。
4. 参考として、関数slopeを使用して、この初期セグメントの傾きを計算し、-1/N と比較します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
この自己相関は信号のスペクトルのフーリエ変換です。したがって、これはdft関数を使用して効率的に計算できます。
plcorr
plcorr 関数は、自己回帰時系列に最もよく当てはまるモデルの次数を推定し、それによって、モデルのパラメータの算出を助けます。
部分自己相関シーケンスは反射係数シーケンスとも呼ばれ、前方予測値と後方予測値を減算することで時間 tt-k における時系列の値を調整した後のこれらの値の相関を表します。これらの予測値は、中間時間における時系列の値に基づいています。
その他の技術解説については、D. B. Percival/A. T. Walden 著『Spectral Analysis for Physical Applications』 (Cambridge University Press, 1993) の、自己相関モデルの Levinson-Durban 回帰について説明している 409 ページを参照してください。
サンプルの部分自己相関関数 plcorr の使用方法を説明するために、次のように自己回帰プロセスを定義します。
1. プロセスの係数を定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
2. rnd 関数を使用して、時系列を初期化します。
クリックしてこの式をコピー
クリックしてこの式をコピー
3. 自己回帰信号とランダムノイズを使用することで残りの時系列を生成します。
クリックしてこの式をコピー
クリックしてこの式をコピー
4. プロセスの最初の 200 個のステップを計算してプロットします。
クリックしてこの式をコピー
クリックしてこの式をコピー
5. 関数 lcorr および plcorr を使用して、自己相関および部分自己相関を計算します。
クリックしてこの式をコピー
クリックしてこの式をコピー
6. 各相関ベクトルの最初の 30 個の成分をプロットし、縦マーカーを使用して係数の数をマーク付けします。
クリックしてこの式をコピー
クリックしてこの式をコピー
自己回帰プロセス b では、自己相関は振動しますが、部分自己相関は基本的には 6 以降は切り捨てられます。したがって、部分自己相関からプロセスの次数についての情報が得られ、この情報を burg 関数などで使用できます。
経済時系列の適合と分析には通常は低次モデルが使用され、plcorr の一部の係数だけがゼロ以外になります。plcorr の係数が急激に低下しないデータには、非線形現象が現れていることがあります。この場合の一般的な方法としては、データを差分し、差分したデータの相関を分析します。
これは役に立ちましたか?