自相关的计算
自相关函数(Auto-Correlation Function, ACF)是用于度量时间序列自身在不同滞后时间上的相关性的方法。下面详细解释自相关的计算步骤和原理:
自相关的定义
对于一个时间序列 X = { X 1 , X 2 , … , X T } X = \{X_1, X_2, \ldots, X_T\} X={X1,X2,…,XT},其自相关函数 ACF ( k ) \text{ACF}(k) ACF(k)表示序列在滞后时间 k k k时的自相关性。自相关函数可以表示为:
ACF ( k ) = ∑ t = 1 T − k ( X t − X ˉ ) ( X t + k − X ˉ ) ∑ t = 1 T ( X t − X ˉ ) 2 \text{ACF}(k) = \frac{\sum_{t=1}^{T-k} (X_t - \bar{X})(X_{t+k} - \bar{X})}{\sum_{t=1}^{T} (X_t - \bar{X})^2} ACF(k)=∑t=1T(Xt−Xˉ)2∑t=1T−k(Xt−Xˉ)(Xt+k−Xˉ)
其中:
-
k
k
k是滞后时间。
-
X
t
X_t
Xt是时间步
t
t
t的数据点。
-
X
ˉ
\bar{X}
Xˉ是时间序列
X
X
X的均值。
-
T
T
T是时间序列的长度。
计算步骤
-
计算时间序列的均值:
首先计算时间序列的均值 X ˉ \bar{X} Xˉ:
X ˉ = 1 T ∑ t = 1 T X t \bar{X} = \frac{1}{T} \sum_{t=1}^{T} X_t Xˉ=T1t=1∑TXt -
计算自相关函数:
对于每个滞后时间 k k k,计算自相关函数 ACF ( k ) \text{ACF}(k) ACF(k):
ACF ( k ) = ∑ t = 1 T − k ( X t − X ˉ ) ( X t + k − X ˉ ) ∑ t = 1 T ( X t − X ˉ ) 2 \text{ACF}(k) = \frac{\sum_{t=1}^{T-k} (X_t - \bar{X})(X_{t+k} - \bar{X})}{\sum_{t=1}^{T} (X_t - \bar{X})^2} ACF(k)=∑t=1T(Xt−Xˉ)2∑t=1T−k(Xt−Xˉ)(Xt+k−Xˉ)- 分子部分:计算时间步 t t t与滞后时间步 t + k t+k t+k的偏差乘积的累加和。
- 分母部分:计算整个时间序列的方差(即所有时间步与均值偏差的平方和)。
实际例子
假设我们有一个简单的时间序列 X = { 2 , 4 , 6 , 8 , 10 } X = \{2, 4, 6, 8, 10\} X={2,4,6,8,10},我们计算其在不同滞后时间 k k k下的自相关函数。
-
计算均值:
X ˉ = 2 + 4 + 6 + 8 + 10 5 = 6 \bar{X} = \frac{2 + 4 + 6 + 8 + 10}{5} = 6 Xˉ=52+4+6+8+10=6 -
计算滞后时间 k = 1 k = 1 k=1时的自相关函数:
-
分子部分:
∑ t = 1 5 − 1 ( X t − 6 ) ( X t + 1 − 6 ) = ( 2 − 6 ) ( 4 − 6 ) + ( 4 − 6 ) ( 6 − 6 ) + ( 6 − 6 ) ( 8 − 6 ) + ( 8 − 6 ) ( 10 − 6 ) = ( − 4 ) ( − 2 ) + ( − 2 ) ( 0 ) + ( 0 ) ( 2 ) + ( 2 ) ( 4 ) = 8 + 0 + 0 + 8 = 16 \sum_{t=1}^{5-1} (X_t - 6)(X_{t+1} - 6) = (2-6)(4-6) + (4-6)(6-6) + (6-6)(8-6) + (8-6)(10-6) = (-4)(-2) + (-2)(0) + (0)(2) + (2)(4) = 8 + 0 + 0 + 8 = 16 t=1∑5−1(Xt−6)(Xt+1−6)=(2−6)(4−6)+(4−6)(6−6)+(6−6)(8−6)+(8−6)(10−6)=(−4)(−2)+(−2)(0)+(0)(2)+(2)(4)=8+0+0+8=16 -
分母部分:
∑ t = 1 5 ( X t − 6 ) 2 = ( 2 − 6 ) 2 + ( 4 − 6 ) 2 + ( 6 − 6 ) 2 + ( 8 − 6 ) 2 + ( 10 − 6 ) 2 = 16 + 4 + 0 + 4 + 16 = 40 \sum_{t=1}^{5} (X_t - 6)^2 = (2-6)^2 + (4-6)^2 + (6-6)^2 + (8-6)^2 + (10-6)^2 = 16 + 4 + 0 + 4 + 16 = 40 t=1∑5(Xt−6)2=(2−6)2+(4−6)2+(6−6)2+(8−6)2+(10−6)2=16+4+0+4+16=40 -
自相关函数:
ACF ( 1 ) = 16 40 = 0.4 \text{ACF}(1) = \frac{16}{40} = 0.4 ACF(1)=4016=0.4
-
-
计算滞后时间 k = 2 k = 2 k=2时的自相关函数:
-
分子部分:
∑ t = 1 5 − 2 ( X t − 6 ) ( X t + 2 − 6 ) = ( 2 − 6 ) ( 6 − 6 ) + ( 4 − 6 ) ( 8 − 6 ) + ( 6 − 6 ) ( 10 − 6 ) = ( − 4 ) ( 0 ) + ( − 2 ) ( 2 ) + ( 0 ) ( 4 ) = 0 − 4 + 0 = − 4 \sum_{t=1}^{5-2} (X_t - 6)(X_{t+2} - 6) = (2-6)(6-6) + (4-6)(8-6) + (6-6)(10-6) = (-4)(0) + (-2)(2) + (0)(4) = 0 - 4 + 0 = -4 t=1∑5−2(Xt−6)(Xt+2−6)=(2−6)(6−6)+(4−6)(8−6)+(6−6)(10−6)=(−4)(0)+(−2)(2)+(0)(4)=0−4+0=−4 -
分母部分同上,为 40。
-
自相关函数:
ACF ( 2 ) = − 4 40 = − 0.1 \text{ACF}(2) = \frac{-4}{40} = -0.1 ACF(2)=40−4=−0.1
-
通过这些步骤,我们可以计算出时间序列在不同滞后时间下的自相关函数,从而帮助模型识别和利用时间序列中的周期性依赖关系。
总结
自相关函数用于度量时间序列在不同滞后时间上的相关性,计算过程中需要考虑序列的均值和方差。通过计算自相关函数,可以发现时间序列中的周期性模式,这对于时间序列预测模型,如 Autoformer,具有重要的意义。