# 虚假相关 (Spurious Correlation)
在分析时间序列数据时,我们常常需要检验两个时间序列 X={xt} 和 Y={yt} 之间的相关性。
# 交叉协方差和交叉相关函数
- 交叉协方差函数 (CCVF) γX,Y(t,s): 衡量 xt 和 ys 之间的协方差,其定义为 γX,Y(t,s)=Cov(xt,ys)。
- 交叉相关函数 (CCF) ρX,Y(k): 衡量 xt 和 yt−k 之间的线性关系,也等同于 xt+k 和 yt 之间的线性关系。其定义为 ρX,Y(k)=corr(xt,yt−k)=corr(xt+k,yt)。
# CCF 在回归模型中的表现
考虑一个回归模型:
yt=β0+β1xt−d+et
其中 X 是一个零均值的过程,其方差为 σX2;e={et} 是一个白噪声过程 WN(0,σe2),且与 X 相互独立。
对于这个模型,CCF 的理论值为:
ρX,Y(−d)=corr(xt−d,yt)=β12σX2+σe2β1σX
对于其他时滞 k=−d,CCF 的值为 ρX,Y(k)=0。
# 样本交叉相关函数 (SCCF)
我们可以使用样本交叉相关函数 (SCCF) rX,Y(k) 来估计 CCF,其计算公式为:
rX,Y(k)=∑(xt−xˉ)2∑(yt−k−yˉ)2∑(xt−xˉ)(yt−k−yˉ)
当 β1=0 时,X 和 Y 在理论上是不相关的。此时,样本 SCCF rX,Y(k) 近似服从均值为 0、方差为 1/n 的正态分布,即 N(0,1/n),其中 n 是样本容量。因此,当 SCCF 的绝对值远大于 1.96/n 时,我们可以认为相关系数在统计上显著,不为 0。
# 虚假相关性的产生
当时间序列 X 和 Y 本身具有很强的自相关性(例如,它们都是非平稳的或接近非平稳的)时,即使它们之间没有因果关系,SCCF 也可能会显示出很高的显著性,从而导致虚假相关性。
考虑一个更复杂的情形:
yt=β0+β1xt−d+zt
其中 zt∼ARIMA(p,d,q)。在这种情况下,nrX,Y(k) 的渐近方差约为 1+2∑k=1∞ρk(X)ρk(Y)。
特别地,当 X 和 Y 都是一阶自回归过程 AR(1),其系数分别为 ϕX 和 ϕY 时,nrX,Y(k) 的渐近分布为 N(0,1−ϕXϕY1+ϕXϕY)。
可以注意到,当 ϕX 和 ϕY 都接近 1 时(即序列接近非平稳),rX,Y(k) 的样本方差会趋于无穷大。这使得即使 β1=0,样本 SCCF 也会有很大的波动,导致误判为存在相关性,即假阳性。
# 预白化 (Prewhitening)
为了解决虚假相关的问题,我们可以采用预白化方法。该方法旨在消除时间序列内部的自相关性,从而更准确地检验它们之间的因果关系。
# 预白化的步骤
- 模型拟合: 首先,为输入时间序列 X 拟合一个适当的时间序列模型,例如 ARIMA(p,d,q)。
- 获取白化滤波器: 从拟合好的模型中,获取一个白化滤波器。这通常是模型的 AR(∞) 表示,用算子 π(B) 表示,使得经过变换后,残差序列 at=π(B)xt 成为白噪声序列。
- 对 Y 进行变换: 使用同样的滤波器 π(B) 对时间序列 Y 进行变换,得到一个新的序列 y~t=π(B)yt。
- 检验: 计算并检验白噪声序列 {at} 和变换后序列 {y~t} 之间的 SCCF。
# 预白化的优势
- 显著性检验更可靠: 经过预白化后,用于检验的 SCCF 具有更可靠的统计特性。此时,我们可以再次使用 1.96/n 作为临界值来判断 SCCF 的显著性,降低了假阳性的概率。
- CCF 与回归系数成正比: 经过预白化后估算出的 CCF 的理论值与原始回归模型中的回归系数成正比,这使得CCF的解释更加直接。