1. 课程导入

在金融研究中,数据从来不是天然可用的“原材料”。原始行情、财报、公告、宏观指标、另类数据往往分散在不同系统、不同频率、不同口径中,直接拿来做回测或实证,极易产生前视偏差、幸存者偏差与口径错配。本课程要解决的核心问题,不是“如何下载数据”,而是如何把零散数据加工成可追溯、可复现、可交付的金融研究数据集。第1章作为全课导入,先建立概念坐标系,再给出完整生产项目的学习目标与整体框架。

一、核心原理:金融研究数据集的定义与边界

金融研究数据集,是指围绕某一研究问题,经过采集、清洗、对齐、衍生、校验与文档化后,形成具有统一时间索引、统一实体标识、统一字段语义和明确版本记录的数据集合。它至少包含四个要素:实体维度(股票、债券、基金、公司、账户等)、时间维度(交易日、报告期、公告时点)、字段语义(价格、收益率、财务科目、因子暴露)以及元数据(来源、口径、更新频率、缺失规则、版本号)。

需要区分三个层次:原始数据层(Raw)、清洗中间层(Staging)与研究数据集层(Research Mart)。原始层保留“原样”,中间层记录清洗规则,研究层面向具体研究问题做宽表或面板组织。很多项目失败,正是因为把三层混在一起:既无法复现,也无法审计。

关键判断:一个数据集是否合格,不看它“有多少字段”,而看它能否回答三个问题——数据从哪来?经过哪些变换?换一个人能否在相同版本下得到相同结果?

二、分类与应用场景:不同研究目标对应不同数据集形态

金融研究数据集可按结构、频率与用途分类。按结构分为截面数据、时间序列数据与面板数据;按频率分为日频、月频、季频与事件频;按用途分为行情类、基本面类、因子类、文本类与交易执行类。不同研究场景对数据形态要求差异极大。

数据集类型典型内容主要应用场景关键风险
行情与交易数据OHLCV、复权价、成交额、换手率收益计算、动量/反转因子、回测复权口径不一致、停牌处理
基本面数据利润表、资产负债表、现金流价值因子、财务质量、事件研究报告期与公告期错配、前视偏差
因子与特征数据估值、成长、波动、流动性因子多因子选股、风险模型标准化窗口泄露、缺失值填充偏差
文本与另类数据公告、新闻、舆情、卫星数据情绪因子、事件驱动、ESG时间戳对齐、样本选择偏差
宏观与利率数据GDP、CPI、利率、信用利差资产配置、择时、宏观因子发布滞后、修订版本

例如,做多因子选股时,研究数据集通常需要“股票—交易日”面板,字段包含收益、因子暴露与行业分类;做事件研究时,则需要“事件—窗口”结构,精确到公告时点与前后窗口收益。分类的目的,是让数据形态服务于研究设计,而不是反过来。

三、方法流程:完整生产项目的整体框架

本课程将完整生产项目拆解为七个阶段,形成从需求到交付的闭环。下面用一段配置示例说明项目骨架,后续章节会逐层展开。

project/
├── config/
│   ├── sources.yaml        # 数据源与接口配置
│   └── schema.yaml         # 字段类型与主键定义
├── raw/                    # 原始落地,只读
├── staging/                # 清洗中间层
├── mart/                   # 研究数据集层
├── quality/                # 校验规则与报告
└── docs/                   # 数据字典与版本说明
  1. 需求定义:明确研究问题、实体范围、时间范围与字段清单。
  2. 数据采集:确定来源、接口、频率与增量策略,保留原始快照。
  3. 清洗对齐:处理缺失、异常、复权、时区与实体映射。
  4. 衍生计算:构造收益率、因子、标签与窗口统计量。
  5. 质量校验:主键唯一性、时间连续性、值域与跨表一致性。
  6. 版本管理:记录数据版本、代码版本与运行参数。
  7. 交付文档:数据字典、字段口径、更新日志与使用示例。

教学提示:七个阶段不是一次性瀑布,而是可迭代循环。每次新增字段或修正口径,都应触发质量校验与版本更新,而不是直接覆盖旧文件。

四、误区与复盘:初学者最容易踩的坑

第一个误区是“先跑模型,再补数据”。模型结果异常时,往往已无法定位是数据问题还是逻辑问题。第二个误区是忽视时间对齐:用年报数据在报告期当天就参与选股,会引入严重前视偏差。第三个误区是缺少主键约束:同一股票同一日期出现重复记录,导致回测收益被重复计算。第四个误区是只保存最终宽表,丢失清洗过程,无法复现。

复盘要点:任何一次数据异常,都应记录“现象—定位—根因—修复—验证”五步。数据项目的资产不只是数据本身,更是可复用的清洗规则与校验规则。

为帮助建立整体认知,下图给出金融研究数据集生产项目的核心结构:左侧为数据来源,中部为三层加工链路,右侧为研究应用与质量反馈。请重点观察“原始层只读、中间层记录规则、研究层面向问题”这一分层关系。

金融研究数据集生产项目结构 数据来源 行情/交易接口 财报/公告 宏观/另类数据 文本/舆情 三层加工链路 Raw 原始层(只读快照) 保留来源原貌,记录采集时间与批次 Staging 中间层(清洗规则) 缺失/异常/复权/实体映射/时间对齐 Mart 研究层(面向问题) 面板/宽表/因子/标签/事件窗口 质量校验贯穿全链路:主键·时间·值域·一致性 研究应用 因子回测 事件研究 风险模型 资产配置 质量反馈与版本迭代

五、学习目标与整体框架

完成本课程后,你应能够独立完成一个金融研究数据集的生产项目:从需求拆解、数据采集、清洗对齐、衍生计算,到质量校验、版本管理与文档交付。整体框架遵循“概念—工具—实操—复盘”的递进路径:先建立数据分层与偏差意识,再掌握配置化采集与校验工具,随后通过完整项目串联全流程,最后以质量报告与版本记录收尾。

  • 知识目标:理解金融研究数据集的定义、分类与典型偏差来源。
  • 技能目标:能编写配置化采集脚本、清洗规则与质量校验规则。
  • 工程目标:能组织 Raw/Staging/Mart 三层目录并实现版本可追溯。
  • 交付目标:能输出数据字典、字段口径说明与更新日志。

请记住本课贯穿始终的一条主线:研究结论的可信度,不会超过其底层数据集的可信度。从第1章开始,我们就把“可复现”作为最高优先级,而不是事后补救。