🎓 レベル:標準 | 重要度:B(時系列への橋渡し) 📎 前提:定常性と独立増分
要点(BLUF)
- 自己共分散関数 と自己相関関数(ACF) は、同じ過程の異なる時点がどれだけ連動するかをラグ の関数で表します。
- 弱定常過程は、平均 と自己相関関数 という2次の情報だけで特徴づけられます(分布全体ではなく相関構造で見分ける)。
- 白色雑音は 、AR(1) は で幾何減衰。ACF の形が過程の「指紋」になります。
概念
弱定常な過程は、どの時点でも平均が同じなので、過程の個性は「時点どうしの連動の仕方」に現れます。それを定量化するのが自己相関関数です。ラグ1で強く相関し、ラグが離れると相関が薄れる — その減り方が過程の種類を物語ります。
数式による定式化
弱定常過程 (平均 )に対し、ラグ の自己共分散と自己相関は
弱定常性より は に依らず だけの関数。 は偶関数 で、正定値(任意の係数で作る2次形式が非負)という構造的制約を持ちます。
直観
要するに ACF は「 秒前の自分を、今の自分はどれだけ覚えているか」を測る記憶のグラフです。 が速く0へ落ちる過程は記憶が短く、ゆっくり落ちる過程は長い記憶(持続性)を持ちます。 は「今の自分は今の自分と完全に一致」という当たり前の起点です。
具体例
白色雑音(独立同分布)と AR(1)()の ACF を推定し、理論 と比べます。
import numpy as np
rng = np.random.default_rng(11)
def acf(z, Kmax):
z = z - z.mean(); n = len(z); v = np.dot(z, z)/n
return [np.dot(z[:n-k], z[k:])/n/v for k in range(Kmax+1)]
T = 200000
wn = rng.standard_normal(T) # 白色雑音
phi = 0.6
ar = np.zeros(T)
for t in range(1, T):
ar[t] = phi*ar[t-1] + rng.standard_normal()
ar = ar[2000:]
print("ラグ : 0 1 2 3 4")
print("白色雑音:", " ".join(f"{a:+.3f}" for a in acf(wn, 4)))
print("AR(1) :", " ".join(f"{a:+.3f}" for a in acf(ar, 4)))
print("理論AR :", " ".join(f"{phi**k:+.3f}" for k in range(5)))
# ラグ : 0 1 2 3 4
# 白色雑音: +1.000 +0.000 -0.003 -0.004 -0.002
# AR(1) : +1.000 +0.601 +0.362 +0.220 +0.133
# 理論AR : +1.000 +0.600 +0.360 +0.216 +0.130
白色雑音はラグ1以降ほぼ0(記憶なし)、AR(1) は で幾何減衰(指数的に薄れる記憶)。ACF だけで2つの過程を見分けられます。
他過程との関係
- 自己相関関数の構造は、過程のスペクトル密度(フーリエ変換)と一対一に対応します(ウィーナー=ヒンチンの定理)。時間領域の相関と周波数領域のパワーは同じ情報の表裏です。
- 定常分布と収束 の収束した連鎖も定常過程で、その ACF は遷移行列の固有値で決まります。
数式の直観的意味
の正定値性は飾りではありません。「ありえる自己相関関数」を制約し、たとえば のような噛み合わない指紋を持つ弱定常過程は存在しない、と教えます。これは有限次元分布とコルモゴロフの拡張定理の整合性条件が、2次モーメントの世界で具体化した姿です。
⚠️ よくある誤解
- 無相関 ≠ 独立。 は線形な連動がないだけで、非線形な依存(例: 型)は残りえます。独立を主張するには分布全体を見る必要があります。
- ACF は弱定常を仮定して初めて意味を持つ。非定常過程(トレンドのあるランダムウォーク等)に素朴に ACF を当てると、見かけ上ゆっくり減衰する偽の長期記憶が現れます。
- 標本 ACF はラグが大きいほど推定が不安定。データ長に対してラグが大きいと有効標本が減り、ノイズが乗ります。
対応シミュレーション
本文コードで を変えると、 が1に近いほど ACF の減衰が遅くなり(長い記憶)、負の では符号が交互に振動する ACF が観察できます。
関連
- 前提:定常性と独立増分
- 章のまとめ:確率過程の基礎 目次
- 応用:自己相関・偏自己相関・スペクトル(→時系列分析)、定常分布と収束