金融数据基础与缺失值概述
金融数据分析与建模的起点,往往不是华丽的算法或复杂的模型,而是对数据本身质量的深刻理解。在信贷审批、量化交易、风险定价、客户画像等典型金融场景中,数据缺失是最普遍、最棘手的数据质量问题之一。缺失值处理不当,轻则导致模型参数估计有偏,重则引发风险决策失误,造成实质性资金损失。本章作为整个技术手册的基石,将系统梳理金融数据的类型体系,严格定义缺失值的概念,深入剖析缺失机制的三种理论分类(MCAR/MAR/MNAR),并结合银行信贷、证券交易、保险精算等真实业务场景,帮助读者建立一套从“看见缺失”到“理解缺失”再到“应对缺失”的完整认知框架。
上图从宏观视角勾勒了金融数据类型、缺失值定义与缺失机制之间的逻辑关系。在后续内容中,我们将逐一拆解每个模块,并深入探讨如何在实际金融项目中识别和应对不同类型的缺失。
2.1 金融数据类型体系
金融数据具有鲜明的行业特征,其类型划分直接影响缺失值处理的策略选择。从数据结构角度,金融数据主要分为以下五大类,每类数据的缺失模式和处理难度截然不同。
| 数据类型 | 典型字段 | 常见缺失原因 | 缺失影响 |
|---|---|---|---|
| 结构化数值型 | 股价、利率、贷款金额、信用评分 | 系统故障、人工录入遗漏 | 直接导致模型输入不完整 |
| 类别型 | 行业分类、信用评级、地区代码 | 分类标准变更、信息未采集 | 影响分组统计和哑变量编码 |
| 时序型 | 日收益率、月度宏观指标 | 停牌、节假日、数据源中断 | 破坏时间序列连续性 |
| 文本型 | 财报附注、新闻舆情、客户备注 | 非结构化提取失败 | 影响NLP特征工程 |
| 稀疏型 | 交易对手方、担保人信息 | 业务本身不存在该属性 | 需区分“真缺失”与“结构缺失” |
值得注意的是,金融数据中还存在一种特殊的“隐式缺失”。例如,在贷款申请表中,申请人若没有信用卡,则“信用卡额度”字段为空,这并非数据缺失,而是业务逻辑上的“不适用”。在数据处理时,必须将此类结构性缺失与随机缺失严格区分,否则会引入严重偏差。
2.2 缺失值的严格定义与识别
在金融语境下,缺失值不能简单等同于“空值”。一个严谨的定义是:缺失值是指本应存在但未被观测、未被记录或无法获取的数据值。这一定义包含三个层次:
- 物理缺失:数据采集时因设备故障、网络中断等原因未写入,表现为数据库中的NULL。
- 逻辑缺失:数据存在但被业务规则屏蔽。例如,银行对“反洗钱风险等级”字段设置了权限控制,部分风控人员无法查看,导出数据时该字段为空。
- 编码缺失:数据被填充为特殊占位符,如-9999、999999、'N/A'、'Unknown'。这类值在统计时若不预处理,会被误认为有效数值参与计算。
识别缺失值的标准流程包括:① 使用df.isnull().sum()统计各字段空值数量;② 检查字段的取值分布,查找-9999、0、空字符串等异常占位符;③ 结合业务逻辑判断“0值”是否为有效值(如“逾期天数”为0表示未逾期,而“授信额度”为0可能表示未授信);④ 绘制缺失值矩阵图,观察缺失是否呈现某种规律性分布。
2.3 缺失机制:MCAR / MAR / MNAR 深度解析
Rubin(1976)提出的缺失机制分类是选择插补方法的理论基石。理解这三种机制,决定了我们是应该删除数据、均值插补,还是采用更复杂的模型法。
2.3.1 MCAR(完全随机缺失)
当数据缺失的概率与任何观测变量或未观测变量均无关时,称为MCAR。例如,交易系统因偶发硬件故障导致部分订单记录丢失,这种缺失与订单金额、客户类型、交易时间均无关联。MCAR是最“安全”的缺失类型,因为观测数据仍然是总体的无偏样本。处理上可以直接删除缺失记录,或使用简单的均值插补,不会引入系统性偏差。
2.3.2 MAR(随机缺失)
当数据缺失的概率依赖于其他已观测变量,但与缺失值本身无关时,称为MAR。这是金融场景中最常见的缺失机制。例如,在信贷数据中,年轻客户的“工作年限”字段更容易缺失,而“年龄”是已观测变量。此时,缺失概率与“年龄”相关,但与“工作年限”的具体数值无关。MAR情况下,若直接删除缺失记录,会导致样本偏向年长客户,产生选择偏差。更优的策略是利用年龄、学历等完整变量建立插补模型。
2.3.3 MNAR(非随机缺失)
当数据缺失的概率与缺失值本身的大小或属性相关时,称为MNAR。这是最棘手的情况。例如,在私募基金业绩报送中,业绩差的基金更倾向于不披露净值数据,导致“净值”字段缺失与“净值”本身低相关。又如,在贷款违约预测中,高违约风险的借款人可能故意隐瞒“负债率”信息。MNAR情况下,简单的插补方法会严重低估风险,必须引入外部数据源或构建样本选择模型(如Heckman两阶段模型)进行修正。
2.4 金融场景案例拆解:信贷申请数据中的缺失机制识别
某股份制银行零售信贷部门在构建“个人消费贷违约预测模型”时,发现训练数据集中“月收入”字段缺失率高达23%。初始团队直接采用均值插补后建模,模型在验证集上的AUC仅为0.68,且“月收入”特征的系数为负,与业务常识相悖。我们介入后进行了系统排查。
关键输入数据:该数据集包含10万条历史申请记录,字段包括年龄、性别、学历、职业、单位性质、月收入、负债率、征信查询次数、违约标签。缺失主要集中在“月收入”和“负债率”两个字段。
分析判断过程:首先,我们绘制了缺失值矩阵,发现“月收入”缺失与“职业”字段高度相关——自由职业者和个体户的缺失率高达45%,而受雇于企事业单位的客户缺失率仅为8%。进一步做Little's MCAR检验,p值小于0.001,强烈拒绝MCAR假设。结合业务逻辑判断,自由职业者收入不稳定,银行客户经理在录入时往往无法获取准确数值,因此该缺失机制更符合MAR——缺失概率依赖于“职业”这一已观测变量。
实际操作步骤:① 放弃均值插补,改用基于逻辑回归的预测均值匹配法(PMM),以年龄、职业、学历、单位性质作为预测变量;② 对“负债率”字段,因其缺失与“月收入”存在联动,采用链式方程多重插补(MICE)同时插补两个变量;③ 插补后重新训练模型,AUC提升至0.74,且“月收入”系数恢复为正,符合业务逻辑。
结果对比与复盘:通过正确识别MAR机制并采用多重插补,模型性能提升约8.8%。复盘经验:在金融建模中,缺失值处理不是“数据清洗”的末端环节,而应前置到特征工程阶段。团队需要与业务人员深度访谈,理解每个字段的采集流程,才能准确判断缺失机制。若盲目使用均值插补,不仅降低模型区分度,更可能扭曲特征与目标变量的真实关系。
2.5 常见误区与总结复盘
在金融数据缺失值处理中,以下误区需要特别警惕:
- 误区一:将所有缺失值一律视为MCAR。这会导致过度删除数据,损失大量有效信息。例如,在回测量化策略时,若某只股票因停牌导致收益率缺失,直接删除该日数据会破坏投资组合的连续性,产生“幸存者偏差”。
- 误区二:用0值填充数值型缺失。在金融领域,0往往具有实际业务含义(如“逾期金额为0”表示正常还款),用0填充缺失会引入大量噪声。
- 误区三:忽视缺失机制对模型可解释性的影响。在监管合规场景下,模型必须可解释。若使用复杂的深度生成模型插补,虽然预测精度高,但难以向监管机构解释特征与风险的关系。
- 误区四:未区分“不适用”与“缺失”。例如,未婚客户的“配偶收入”字段为空,这是结构性不适用,不应参与插补,而应单独编码为“无配偶”类别。