2. 金融时序数据基础

在构建任何金融时序模型之前,我们必须先理解数据的“物理性质”。模型漂移往往并非算法本身失效,而是数据生成过程发生了变化。本节从时间序列的四个核心维度——组成、频率、平稳性、自相关结构——出发,结合常见数据源与预处理方法,为后续漂移检测与重训策略打下基础。

一、时间序列的四大组成成分

经典分解将金融时间序列视为四个成分的叠加或乘积:趋势(Trend)、季节(Seasonality)、循环(Cycle)与随机扰动(Irregular/Noise)。金融数据中,趋势常表现为长期收益率中枢的缓慢移动;季节成分在日内高频数据中尤为明显,例如开盘与收盘的成交量U型分布;循环成分对应宏观周期,周期长度不固定;随机扰动则包含突发事件与信息冲击。

理解组成成分的意义在于:若模型把季节成分误判为趋势,漂移检测会产生大量假警报;反之,若忽略趋势突变,重训会滞后于真实分布变化。

二、频率:从Tick到月度

金融数据频率跨度极大,不同频率对应不同的建模假设与预处理方式。下表列出常见频率及其典型特征:

频率典型数据主要特征预处理要点
Tick/逐笔成交、委托非等间隔、含噪声重采样、去重、买卖方向标记
分钟级OHLCV日内季节性强缺失填补、波动率聚集处理
日频收盘价、收益率样本量适中、周末缺失交易日对齐、对数收益率
周/月频宏观指标发布滞后、修订对齐发布时点、避免前视偏差
频率选择不是越高越好。高频数据信噪比低,且对延迟与交易成本敏感;低频数据样本少,漂移检测统计功效不足。实战中常采用“多频率融合”:用日频判断趋势漂移,用分钟频捕捉微观结构突变。

三、平稳性:时序建模的地基

平稳性指序列的统计特性(均值、方差、自协方差)不随时间平移而变化。金融价格序列通常非平稳,而收益率序列更接近平稳。常用检验包括ADF、KPSS与PP检验。若序列非平稳,可通过差分、去趋势或对数变换处理。

平稳性直接关系到漂移定义:若训练集与推理集均为非平稳序列,模型学到的可能是伪关系,一旦外部冲击改变趋势,预测立刻失效。因此,漂移检测应在平稳化后的残差或特征空间进行,而非原始价格。

from statsmodels.tsa.stattools import adfuller
import numpy as np

# 对数收益率
ret = np.diff(np.log(price))
adf_stat, p_value, _, _, crit, _ = adfuller(ret)
print(f"ADF={adf_stat:.4f}, p={p_value:.4f}")
# p < 0.05 可认为平稳

四、自相关与偏自相关:识别时序依赖结构

自相关函数(ACF)衡量序列与其滞后项的相关性,偏自相关函数(PACF)则剔除中间滞后项的影响。二者是识别AR、MA、ARIMA阶数的核心工具。金融收益率通常ACF快速衰减,但绝对值或平方序列呈现长记忆,即波动率聚集。

在漂移场景中,ACF/PACF的形态变化本身就是信号:若某资产原本ACF在滞后5阶截尾,某段时间后变为拖尾,说明市场微观结构或参与者行为发生改变,模型需要重训。

金融时序数据基础结构关系 数据源 行情/宏观/另类 频率与重采样 Tick→分钟→日频 平稳化处理 差分/对数/去趋势 ACF/PACF 依赖结构 漂移敏感点 频率错配:训练日频、推理分钟频 非平稳未处理:伪回归导致漂移误判 ACF结构突变:波动率聚集模式改变

五、常见金融数据源与预处理方法

常见数据源包括:交易所行情(NYSE、NASDAQ、上交所、深交所)、数据供应商(Wind、Bloomberg、Refinitiv)、公开接口(Yahoo Finance、Alpha Vantage、Tushare)以及另类数据(新闻情绪、卫星图像、信用卡流水)。不同源的数据在时区、复权方式、缺失标记上差异巨大。

预处理标准流程如下:

  1. 时间对齐:统一时区与交易日历,处理夏令时与节假日。
  2. 缺失值处理:金融数据缺失常含信息,不宜简单均值填充;可用前向填充加缺失指示变量。
  3. 异常值检测:基于滚动分位数或MAD,区分真实极端事件与数据错误。
  4. 平稳化与标准化:对数收益率、滚动Z-score,避免未来信息泄露。
  5. 特征工程:滞后收益、滚动波动率、成交量比率等。
预处理阶段最容易被忽视的是前视偏差:使用未来数据计算滚动统计量,会让离线评估虚高,上线后漂移提前爆发。务必使用扩展窗口或严格滚动窗口。

六、误区与复盘

  • 误区一:所有金融序列都做差分。 差分可能过度消除有用信息,尤其对已平稳的收益率序列。
  • 误区二:ACF截尾就一定是AR模型。 金融数据常含结构突变,ACF形态可能被少数极端值主导。
  • 误区三:忽略频率混用带来的漂移。 训练与推理频率不一致,等价于分布偏移,必须纳入重训触发条件。
  • 复盘要点: 每次重训前,先检查数据源的频率、缺失率与ACF形态是否发生系统性变化,再决定是重训模型还是修复数据管道。

掌握本节内容后,你应能判断一组金融时序数据是否适合直接建模,并识别哪些预处理步骤会直接影响后续漂移检测的灵敏度与重训策略的触发时机。