4、数据准备:财务数据、市场数据、另类数据的获取、清洗与标准化

AI估值模型与传统估值模型的本质差异,在于其能够同时消化和处理海量、异构、非结构化的数据。传统估值依赖三大报表和可比公司倍数,而AI估值模型则试图捕捉市场情绪、供应链动态、舆情信号等“软信息”。然而,数据是模型的燃料——燃料不纯,引擎再先进也无法稳定运行。本章将系统拆解AI估值模型的数据供应链:从三类核心数据的获取渠道,到清洗逻辑,再到标准化方法,最终形成可直接输入机器学习算法的特征矩阵。

AI估值模型数据供应链全景图 数据源层 财务数据:三大报表、审计附注 市场数据:行情、估值、分析师预期 另类数据:舆情、卫星、供应链 清洗层 缺失值处理(删除/插补) 异常值检测(IQR/孤立森林) 去重、去噪、格式统一 标准化层 Z-Score / Min-Max归一化 行业中性化处理 时间序列对齐与面板化 特征矩阵(Feature Matrix) 样本 × 特征 → 可直接输入ML模型 数据质量四维评估 完整性 一致性 时效性 准确性

4.1 三类数据的获取渠道与核心字段

AI估值模型的数据输入可划分为三大类:财务数据、市场数据和另类数据。每一类数据的获取渠道、更新频率和数据结构差异极大,需要分别设计采集策略。

4.1.1 财务数据:模型的基本盘

财务数据是估值模型的“锚”。主要包括资产负债表、利润表、现金流量表三大报表,以及审计附注中的细分科目。获取渠道以Wind、Bloomberg、Choice等金融终端为主,也可通过交易所官网、巨潮资讯网等公开渠道获取原始PDF后解析。关键字段包括:营业收入、净利润、EBITDA、总资产、净资产、经营现金流、资本开支等。财务数据的核心问题是报表重述和会计准则差异——同一家公司在不同年份可能因会计政策变更导致数据不可比。

4.1.2 市场数据:市场预期的直接反映

市场数据包括股价、成交量、市值、市盈率、市净率、股息率等行情指标,以及分析师一致预期(EPS预测、目标价)、评级变动等卖方数据。获取渠道包括行情API(如Tushare、AkShare)、券商研报数据库(如慧博、朝阳永续)。市场数据的核心特征是高频——日频甚至分钟频,且存在前复权、后复权、除权除息等复权问题。分析师预期数据则存在乐观偏差,需要做系统性修正。

4.1.3 另类数据:差异化信息的来源

另类数据是AI估值模型区别于传统模型的“胜负手”。常见类型包括:

  • 舆情数据:新闻标题、社交媒体讨论、股吧帖子,通过NLP提取情感分数和关注度指标。
  • 供应链数据:上下游企业的订单、招标信息、物流数据,用于交叉验证收入真实性。
  • 卫星遥感数据:停车场车辆计数、工厂夜间灯光亮度、油罐液位等,适用于特定行业(如零售、能源)。
  • 招聘数据:企业招聘岗位数量和结构变化,可作为业务扩张或收缩的前瞻信号。

另类数据的获取通常需要爬虫、API订阅或第三方数据供应商(如Genscape、RS Metrics)。其核心挑战在于非结构化——需要大量清洗和特征工程才能转化为可用变量。

数据类型 典型来源 更新频率 核心字段示例 主要挑战
财务数据 Wind、Bloomberg、巨潮资讯 季度/年度 营收、净利润、EBITDA、资产负债率 报表重述、会计准则差异
市场数据 Tushare、AkShare、券商数据库 日频/分钟频 收盘价、成交量、PE、PB、分析师预期 复权处理、预期偏差
另类数据 爬虫、API订阅、第三方供应商 实时/日频 情感分数、招聘指数、卫星计数 非结构化、噪声大、成本高

4.2 数据清洗:从原始数据到可用数据

原始数据几乎总是“脏”的——存在缺失、异常、重复、格式不一致等问题。清洗的目标是让数据达到“可用”状态,而非“完美”状态。过度清洗可能引入偏差,清洗不足则会让模型学到噪声。

4.2.1 缺失值处理策略

缺失值处理需区分机制:随机缺失(MCAR)可直接删除或均值插补;非随机缺失(MNAR)则需谨慎——例如小市值公司可能因披露不完整而缺失部分财务科目,直接删除会引入幸存者偏差。推荐策略:

  1. 先判断缺失比例,超过30%的字段考虑删除或合并。
  2. 时间序列数据优先使用前向填充(forward fill)或插值法。
  3. 截面数据可使用中位数或行业均值插补,但需生成“缺失标记”作为额外特征。

4.2.2 异常值检测与处理

异常值可能来自数据录入错误、极端市场事件或真实的极端经营表现。处理前必须区分“错误异常”和“真实极端”。常用方法包括:

  • 统计方法:3σ原则、IQR(四分位距)法。
  • 机器学习方法:孤立森林(Isolation Forest)、DBSCAN聚类。
  • 业务规则:例如资产负债率超过100%但非金融企业,大概率是数据错误。

处理方式上,错误异常直接修正或删除;真实极端值可做Winsorize缩尾处理(如上下1%分位数截断),避免极端值主导模型训练。

风险提示:异常值处理必须保留审计日志。AI估值模型的可解释性要求我们能够追溯每一个极端值的处理逻辑。如果模型上线后出现预测偏差,审计日志是定位问题的第一入口。

4.3 数据标准化:让不同量纲的特征可比

标准化是AI估值模型训练前的必要步骤。不同特征的量纲差异巨大——营收以亿元计,市盈率以倍数计,情感分数在[-1,1]区间——如果不做标准化,梯度下降类算法(如神经网络、逻辑回归)会偏向量纲大的特征。

4.3.1 常用标准化方法

方法 公式 适用场景 注意事项
Z-Score标准化 (x - μ) / σ 数据近似正态分布 对异常值敏感,需先处理异常
Min-Max归一化 (x - min) / (max - min) 数据有明确边界 新数据超出边界时需重新计算
RobustScaler (x - 中位数) / IQR 存在较多异常值 对异常值鲁棒,但计算量稍大
行业中性化 减去行业均值后除以行业标准差 跨行业比较 需先定义行业分类标准

4.3.2 时间序列对齐与面板数据构建

AI估值模型通常使用面板数据(Panel Data)——即多个公司在多个时间点的观测值。财务数据是季度频率,市场数据是日频率,另类数据可能是实时频率。必须将所有数据对齐到统一的时间网格上。推荐做法:

  1. 确定基准频率(如季度或月度),以财务报告期为锚点。
  2. 市场数据在报告期截止日取截面值(如季度末收盘价)。
  3. 另类数据在报告期内做聚合(如季度平均情感分数)。
  4. 生成滞后特征(lag features),避免未来函数泄漏。
实战要点:在构建特征矩阵时,务必使用T+1原则——即用t期的数据预测t+1期的估值。任何使用了t+1期信息的特征都会导致“未来函数”,使模型在回测中表现优异但实盘失效。

4.4 案例拆解:某消费零售企业的数据准备全流程

以下案例展示一个完整的实操闭环,帮助理解数据准备各环节如何衔接。

4.4.1 背景与目标

某券商量化团队计划为A股消费零售板块构建AI估值模型,覆盖约80家上市公司,时间跨度为2018-2023年。目标是用财务、市场和另类数据预测未来12个月的EV/EBITDA倍数。

4.4.2 数据获取与初始状态

  • 财务数据:从Wind导出季度三大报表,共获取80家公司×24个季度=1920个样本,但发现约15%的样本存在缺失(主要是小市值公司早期数据不全)。
  • 市场数据:通过Tushare获取日频行情,发现部分公司存在长期停牌(超过30个交易日),导致价格数据中断。
  • 另类数据:爬取主流财经媒体的新闻标题,共获取约50万条新闻,但存在大量重复转载和无关广告内容。

4.4.3 清洗与处理过程

第一步:财务数据清洗。对缺失率超过30%的字段(如“研发费用”)直接删除;对缺失率较低的字段(如“营业总收入”)使用行业中位数插补,并生成“是否插补”标记列。发现3家公司的资产负债率超过200%,经人工核查为数据录入错误,予以修正。

第二步:市场数据清洗。对停牌超过30天的样本,将停牌期间的价格填充为停牌前最后交易日价格,并生成“停牌天数”特征。对复权价格使用后复权方式,确保历史价格可比。

第三步:另类数据处理。使用Jieba分词+预训练情感模型(如FinBERT)对新闻标题进行情感打分,过滤掉重复新闻(基于标题MD5去重),并计算每家公司每季度的平均情感分数和新闻数量。

4.4.4 标准化与面板构建

将所有数据对齐到季度频率。财务数据直接使用报告期值;市场数据取季度末收盘价和季度平均换手率;另类数据取季度平均情感分数。然后进行Z-Score标准化,并按申万一级行业做行业中性化处理。最终生成的特征矩阵维度为1920×45(样本×特征)。

4.4.5 结果与复盘

模型训练后,在验证集上的R²达到0.62,相比仅使用财务数据的基线模型(R²=0.41)有显著提升。复盘发现,另类数据中的“新闻情感分数”和“新闻数量”是贡献度排名前五的特征。但同时也发现,2020年疫情期间的极端市场环境下,模型预测偏差较大——原因是异常值处理时对极端市场事件做了Winsorize缩尾,导致模型对尾部风险不敏感。

经验总结:数据准备不是一次性的“清理”,而是需要与模型迭代同步进行的持续过程。建议建立数据版本管理机制,每次清洗逻辑变更后重新训练模型,并记录性能变化。

4.5 常见误区与总结复盘

在数据准备环节,以下误区最为常见:

  • 误区一:追求数据完美。试图清洗掉所有异常值,结果丢失了真实的市场信号。正确做法是区分“错误”和“极端”,保留后者并做缩尾处理。
  • 误区二:忽视时间对齐。将不同频率的数据直接拼接,导致模型学到虚假的领先-滞后关系。
  • 误区三:未来函数泄漏。在特征中使用了未来信息(如使用了t+1期的实际财务数据),回测结果虚高。
  • 误区四:标准化时机错误。在划分训练集/测试集之前就做全量标准化,导致测试集信息泄漏到训练过程。

正确的标准化流程是:先划分训练集和测试集,然后在训练集上计算均值和标准差,再用同样的参数转换测试集。对于时间序列数据,应使用滚动窗口的标准化方式,避免使用未来数据计算统计量。

总结而言,数据准备是AI估值模型中最耗时但最关键的环节。一个扎实的数据管道,应当具备自动化采集、规则化清洗、标准化输出和版本管理四大能力。当数据质量得到保障后,后续的因子构建和模型训练才能建立在可靠的基础之上。