# 虚假相关 (Spurious Correlation)

在分析时间序列数据时,我们常常需要检验两个时间序列 X={xt}X=\{x_t\}Y={yt}Y=\{y_t\} 之间的相关性。

# 交叉协方差和交叉相关函数

  • 交叉协方差函数 (CCVF) γX,Y(t,s)\gamma_{X,Y}(t,s): 衡量 xtx_tysy_s 之间的协方差,其定义为 γX,Y(t,s)=Cov(xt,ys)\gamma_{X,Y}(t,s)=Cov(x_t,y_s)
  • 交叉相关函数 (CCF) ρX,Y(k)\rho_{X,Y}(k): 衡量 xtx_tytky_{t-k} 之间的线性关系,也等同于 xt+kx_{t+k}yty_t 之间的线性关系。其定义为 ρX,Y(k)=corr(xt,ytk)=corr(xt+k,yt)\rho_{X,Y}(k)=corr(x_t,y_{t-k})=corr(x_{t+k},y_t)

# CCF 在回归模型中的表现

考虑一个回归模型:

yt=β0+β1xtd+ety_t=\beta_0+\beta_1x_{t-d}+e_t

其中 XX 是一个零均值的过程,其方差为 σX2\sigma_X^2e={et}e=\{e_t\} 是一个白噪声过程 WN(0,σe2)WN(0,\sigma_e^2),且与 XX 相互独立。

对于这个模型,CCF 的理论值为:

ρX,Y(d)=corr(xtd,yt)=β1σXβ12σX2+σe2\rho_{X,Y}(-d)=corr(x_{t-d},y_t)=\frac{\beta_1\sigma_X}{\sqrt{\beta_1^2\sigma_X^2+\sigma_e^2}}

对于其他时滞 kdk \ne -d,CCF 的值为 ρX,Y(k)=0\rho_{X,Y}(k)=0

# 样本交叉相关函数 (SCCF)

我们可以使用样本交叉相关函数 (SCCF) rX,Y(k)r_{X,Y}(k) 来估计 CCF,其计算公式为:

rX,Y(k)=(xtxˉ)(ytkyˉ)(xtxˉ)2(ytkyˉ)2r_{X,Y}(k)=\frac{\sum(x_t-\bar{x})(y_{t-k}-\bar{y})}{\sqrt{\sum(x_t-\bar{x})^2\sum(y_{t-k}-\bar{y})^2}}

β1=0\beta_1=0 时,XXYY 在理论上是不相关的。此时,样本 SCCF rX,Y(k)r_{X,Y}(k) 近似服从均值为 0、方差为 1/n1/n 的正态分布,即 N(0,1/n)N(0, 1/n),其中 nn 是样本容量。因此,当 SCCF 的绝对值远大于 1.96/n1.96/\sqrt{n} 时,我们可以认为相关系数在统计上显著,不为 0。

# 虚假相关性的产生

当时间序列 XXYY 本身具有很强的自相关性(例如,它们都是非平稳的或接近非平稳的)时,即使它们之间没有因果关系,SCCF 也可能会显示出很高的显著性,从而导致虚假相关性

考虑一个更复杂的情形:

yt=β0+β1xtd+zty_t=\beta_0+\beta_1x_{t-d}+z_t

其中 ztARIMA(p,d,q)z_t \sim ARIMA(p,d,q)。在这种情况下,nrX,Y(k)\sqrt{n}r_{X,Y}(k) 的渐近方差约为 1+2k=1ρk(X)ρk(Y)1+2\sum_{k=1}^\infty\rho_k(X)\rho_k(Y)

特别地,当 XXYY 都是一阶自回归过程 AR(1)AR(1),其系数分别为 ϕX\phi_XϕY\phi_Y 时,nrX,Y(k)\sqrt{n}r_{X,Y}(k) 的渐近分布为 N(0,1+ϕXϕY1ϕXϕY)N\left(0,\frac{1+\phi_X\phi_Y}{1-\phi_X\phi_Y}\right)

可以注意到,当 ϕX\phi_XϕY\phi_Y 都接近 1 时(即序列接近非平稳),rX,Y(k)r_{X,Y}(k) 的样本方差会趋于无穷大。这使得即使 β1=0\beta_1=0,样本 SCCF 也会有很大的波动,导致误判为存在相关性,即假阳性


# 预白化 (Prewhitening)

为了解决虚假相关的问题,我们可以采用预白化方法。该方法旨在消除时间序列内部的自相关性,从而更准确地检验它们之间的因果关系。

# 预白化的步骤

  1. 模型拟合: 首先,为输入时间序列 XX 拟合一个适当的时间序列模型,例如 ARIMA(p,d,q)ARIMA(p,d,q)
  2. 获取白化滤波器: 从拟合好的模型中,获取一个白化滤波器。这通常是模型的 AR()AR(\infty) 表示,用算子 π(B)\pi(B) 表示,使得经过变换后,残差序列 at=π(B)xta_t=\pi(B)x_t 成为白噪声序列。
  3. 对 Y 进行变换: 使用同样的滤波器 π(B)\pi(B) 对时间序列 YY 进行变换,得到一个新的序列 y~t=π(B)yt\tilde{y}_t=\pi(B)y_t
  4. 检验: 计算并检验白噪声序列 {at}\{a_t\} 和变换后序列 {y~t}\{\tilde{y}_t\} 之间的 SCCF。

# 预白化的优势

  • 显著性检验更可靠: 经过预白化后,用于检验的 SCCF 具有更可靠的统计特性。此时,我们可以再次使用 1.96/n1.96/\sqrt{n} 作为临界值来判断 SCCF 的显著性,降低了假阳性的概率。
  • CCF 与回归系数成正比: 经过预白化后估算出的 CCF 的理论值与原始回归模型中的回归系数成正比,这使得CCF的解释更加直接。