halo 的技术博客

返回

「科技和金融最近在共振吗?」——传统回答是算一个 Pearson 相关系数。但相关系数有一个致命缺陷:它只有一个数,既不分时间,也不分周期。两只股票可能在危机里高度同步、平时各走各的;也可能在「月度」周期上共振、在「日度」噪声上互不相关。把这一切压成一个 0.6,你就丢掉了所有结构信息。

小波相干性(Wavelet Coherence) 解决的就是这件事:它把「相关性」展开成一张 时间 × 频率 的地图,让你看见「在哪个时段、哪个周期尺度上,两板块在共振」。本文用 numpy 从零实现 à trous MODWT(db4 核)和交叉小波相干性,并在两只合成板块上验证。

1. 数据:一只会「发病」的联动#

我们合成两只板块日收益 techfinance,都受一个共同市场因子驱动,但联动强度随时间变化:

  • 平时(非危机):共同暴露 β=0.3、特质波动大 → 相关仅 0.22
  • 危机窗口(第 450–650 日):β 跳到 0.9、特质波动骤降 → 相关飙升到 0.97(本例先不人为掺入领先-滞后,看最干净的同相共振)

两只板块日收益序列

肉眼只能看出「中间那段好像一起动了」。要精确定位、还要看是「哪个周期」在动,就得上小波。

2. à trous MODWT:把序列拆进尺度#

经典 DWT 会「砍掉」一半样本(下采样),不适合做两个序列的对齐相干。我们用 à trous(“带孔”)平稳小波变换——它在每个尺度 j 给系数插入 2^(j-1)-1 个零,使得所有尺度系数都和原序列等长、时间对齐。采用加性分解(细节 = 相邻两级平滑之差),重构误差仅 1.7e-17(冗余变换可精确还原):

W[j] 就是第 j 尺度的带通细节系数;它在全部尺度上与原始序列等长,正好拿来两两比对相干性。

3. 交叉小波相干性 R(j,t)#

对每个尺度 j、每个时刻 t,交叉小波相干性定义为

R(j,t)=S(Wx(j)Wy(j))(t)2S ⁣((Wx(j))2)(t)  S ⁣((Wy(j))2)(t)R(j,t) = \frac{\bigl|S(W_x^{(j)}W_y^{(j)})(t)\bigr|^2}{S\!\bigl((W_x^{(j)})^2\bigr)(t)\;S\!\bigl((W_y^{(j)})^2\bigr)(t)}

其中 S(·) 是时间方向上的高斯平滑(窗口 σ=12 日),作用是压制单点抖动得到「局部相干」。分子是两序列尺度系数乘积的平滑(交叉小波功率),分母是各自功率的乘积——本质就是「逐尺度、逐时刻的局部相关系数」,取值范围 [0,1]。

算出来就是下面这张时-频地图:红色 = 共振强。可以清楚看到危机窗口(白色竖带)在全部尺度上同时亮起,正是「板块共振」的时频指纹;非危机区域整体偏暗。

交叉小波相干性时频热图

4. 两板块共享的尺度能量结构#

相干性高,前提是两序列在同一尺度上有「同构」的波动。把每个尺度的平均细节系数平方(能量)画出来,科技与金融在各尺度几乎叠在一起——共同市场因子的波动被两个板块同步吸收(低频尤其明显):

MODWT 尺度能量谱对比

5. 相干性 vs 滚动相关:局部化的价值#

把「中尺度(j=3~5,约 8–64 日)平均相干性」和「60 日滚动 Pearson 相关」叠在一起,差别一目了然:滚动相关被固定窗口平滑,危机信号被前后 30 天稀释,峰值温吞;而小波相干性精准锁死危机窗口,峰起峰落与真实 regime 完全对齐。

尺度平均相干性 vs 滚动相关

本例量化结果:危机窗口平均相干性 0.50,非危机 0.09——差距一倍以上,而滚动相关只能给一个被稀释的中间值。

6. 实战提醒(诚实版)#

  • 相位敏感(对照实验):作为验证,我们人为让 finance 滞后 tech 3 天重算——危机平均相干性从 0.50 掉到 0.14,而相关系数仍有 0.74。相位差直接压低相干性,说明小波相干性同时编码「幅度相关 + 相位对齐」。想看谁带谁,对交叉小波做 Hilbert 变换取相位即可(相位箭头方向即领先/滞后)。
  • 边界效应:小波在序列两端(约几个最大尺度的宽度)不可靠,画热力图时边缘要打折扣。
  • 平滑窗口 σ:σ 越大相干越平滑但分辨率越低,是偏差-方差权衡;本例 σ=12 日。
  • 本文是合成数据:真实板块(沪深300 行业指数、美股 sector ETF)的联动是时变且多因子的,相干性地图会看到多个时段多个尺度的亮带,比本例更「碎」,但读法完全一致。

小结#

相关系数只给一个数,小波相干性给一张 时间 × 频率 的共振地图。用 numpy 从零实现 à trous MODWT(db4 核) 与交叉小波相干性,我们在一对「平时弱相关、危机强相关」的合成板块上,把共振精确锁定到危机窗口(平均相干性 0.50 vs 0.09),并看出它横跨全部尺度。完整实现约 30 行,四张图全部真实计算。

小波相干性板块联动:用交叉小波看板块共振的时频结构
https://blog.halo26812.eu.org/blog/wavelet-coherence-sector-comovement
Author halo
Published at 2026年8月29日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨