4、数据准备与清洗:所需数据源与处理流程
组合风险归因与人群切片复盘依赖多源异构数据的融合。数据质量直接决定归因结果的可靠性。本节梳理四大核心数据源、对齐策略、缺失值处理与异常值检测方法,确保后续分析建立在干净、一致的数据基础上。
4.1 四大核心数据源
风险归因所需数据可归纳为四类,每类承担不同的分析角色:
| 数据源 | 核心字段 | 分析用途 | 更新频率 |
|---|---|---|---|
| 持仓数据 | 组合代码、证券代码、持仓数量、持仓市值、成本价、持仓占比 | 计算风险暴露、行业/风格因子权重、集中度 | 日频 / 实时 |
| 交易数据 | 交易日期、证券代码、买卖方向、成交数量、成交价格、佣金、印花税 | 归因交易贡献、换手率、交易成本分析 | 日频 / T+1 |
| 行情数据 | 证券代码、日期、开盘价、收盘价、最高价、最低价、成交量、收益率 | 计算因子收益、波动率、相关性矩阵 | 日频 / 高频 |
| 客户信息 | 客户ID、风险等级、投资目标、资产规模、年龄、职业、持仓偏好 | 人群切片、风险偏好匹配、行为画像 | 月频 / 事件驱动 |
实践提示: 持仓与交易数据通常来自内部交易系统(OMS/EMS),行情数据依赖外部供应商(如Wind、Bloomberg),客户信息则来自CRM或KYC系统。建议为每个数据源建立独立的原始层(Raw Layer),保留全量历史快照,便于回溯与审计。
4.2 数据对齐:时间与标识的统一
多源数据在时间粒度、证券标识、组合维度上存在不一致,必须进行系统化对齐。
- 时间对齐: 统一使用交易日历(排除非交易日),持仓与行情按日对齐;交易数据按成交日期归属;客户信息按快照日期或变更日期对齐。
- 证券标识对齐: 建立内部证券主表(Security Master),将不同数据源中的证券代码映射为统一标识(如ISIN、内部ID),避免因代码变更或别名导致匹配失败。
- 组合维度对齐: 持仓与交易数据必须关联到同一组合层级(账户级、产品级、客户级),确保归因结果可向上汇总。
对齐检查清单:
- 所有数据源是否使用同一套交易日历?
- 证券代码是否已映射到统一主表?
- 组合/账户标识是否一致?
- 时间戳是否已转换为统一时区(如UTC+8)?
- 是否存在跨数据源的时间延迟(如行情T+1、交易T+0)?
4.3 缺失值处理策略
缺失值在金融数据中普遍存在,需根据缺失类型与业务含义选择处理方式。
| 缺失类型 | 常见场景 | 处理策略 | 注意事项 |
|---|---|---|---|
| 完全随机缺失 | 个别交易日行情缺失(停牌) | 前向填充(Forward Fill)或插值 | 停牌期间收益率设为0,复牌后补涨 |
| 随机缺失 | 部分客户风险等级未填写 | 中位数填充 / 模型预测填充 | 避免使用均值填充导致分布偏移 |
| 非随机缺失 | 小市值股票长期无交易 | 标记为“缺失”并单独分组 | 不可随意填充,需评估对归因的影响 |
| 结构性缺失 | 新上市证券无历史行情 | 使用行业均值或因子模型估计 | 需在报告中注明估计方法 |
风险警示: 缺失值处理不当会扭曲风险归因结果。例如,用0填充停牌期间的收益率,会低估波动率与VaR。建议在清洗报告中记录缺失比例与填充方法,供后续审计使用。
4.4 异常值检测方法
异常值可能源于数据录入错误、市场极端事件或系统故障。检测方法需兼顾统计稳健性与业务可解释性。
- 统计方法: Z-score(|Z|>3)、IQR(超出1.5倍四分位距)、MAD(中位数绝对偏差)。适用于收益率、持仓占比等连续变量。
- 业务规则: 收益率超过±20%(A股涨跌停限制)、持仓占比超过100%、交易价格偏离行情均价±5%。适用于强约束场景。
- 时间序列方法: 滚动窗口均值±3倍标准差、季节性分解(STL)。适用于检测趋势中的孤立异常点。
- 机器学习方法: Isolation Forest、LOF(局部异常因子)。适用于高维因子暴露数据的异常检测。
4.5 清洗后的数据质量检查
完成清洗后,需执行数据质量检查(Data Quality Check),确保数据可用于风险归因。
数据质量检查清单:
- 完整性: 所有组合在分析期内是否有完整的持仓与行情记录?缺失比例是否低于阈值(如5%)?
- 一致性: 持仓市值与行情价格计算的理论市值是否一致?差异是否在合理范围(如0.1%)?
- 准确性: 抽样核对交易记录与清算数据,确认成交价格、数量无误。
- 时效性: 数据是否覆盖完整的分析时间窗口?是否存在延迟或未来数据泄露?
- 唯一性: 主键(日期+证券+组合)是否存在重复记录?
通过上述数据准备与清洗流程,可构建一个干净、对齐、可追溯的分析数据集,为后续的组合风险归因与人群切片复盘奠定坚实基础。