4. 数据准备与清洗
经营现金流预测的准确度,往往不取决于模型多复杂,而取决于进入模型的数据是否干净、口径是否一致。很多团队在建模阶段反复调参,却忽略了源头数据的问题:同一笔回款在业务系统与财务系统中日期不同、银行流水与总账科目对不上、某个月的数据缺失被简单填零。本章聚焦数据准备与清洗的四个关键动作,为后续季节性与情景预测打下可靠基础。
一、核心原理:预测质量的上限由数据质量决定
经营现金流具有明显的季节性、周期性和偶发性。若原始数据中混入了口径不一致或异常值,模型会把“噪声”误认为“规律”。例如,将一笔年末集中支付的大额货款当作常态支出,会系统性高估未来同期流出。数据准备的核心目标可以概括为三点:可追溯(每笔数据能回到原始凭证)、可比较(不同期间、不同主体口径一致)、可建模(时间序列连续、量纲统一、异常可解释)。
二、方法流程:从取数到入模的五步法
建议按以下顺序推进,避免反复返工:
- 明确预测对象与粒度:确定是按周、按月还是按日预测;是按集团合并、按法人还是按业务线。粒度决定后续所有取数逻辑。
- 多源取数与交叉验证:常见来源包括总账(GL)、应收应付明细、银行流水、资金系统、业务订单系统。至少用两个来源交叉核对关键科目。
- 时间序列整理:统一日期字段,补齐时间轴,处理跨期、预收预付、在途资金等特殊事项。
- 缺失值与异常值处理:先判断缺失机制,再选择填补或剔除策略;异常值需区分“错误数据”与“真实极端事件”。
- 口径统一与版本固化:形成数据字典和清洗规则版本,确保后续章节的预测结果可复现。
三、关键操作:缺失值、异常值与口径统一
缺失值处理要区分三类机制:完全随机缺失、随机缺失、非随机缺失。前者可用均值、中位数或插值;后者必须回到业务确认。对经营现金流而言,缺失往往意味着“没有发生”而非“数据丢失”,例如某月无融资活动,填零是合理的;但若某月银行流水缺失,填零会严重低估流入。
异常值处理常用方法包括:基于业务规则设定阈值、3σ 或 IQR 统计法、同比环比突变检测。识别后不要直接删除,应先标记并分类:录入错误则修正;一次性事件(如资产处置、大额退税)则单独建模或作为情景变量;系统性偏差则需调整口径。
口径统一是本章最容易出错的环节。常见差异包括:含税与不含税、总额法与净额法、权责发生制与收付实现制、内部交易抵消与否、汇率折算时点不同。建议建立一张“口径映射表”,逐项确认。
| 差异类型 | 常见表现 | 统一策略 |
|---|---|---|
| 含税口径 | 收入含税、成本不含税 | 统一为不含税,税额单列 |
| 确认基础 | 权责发生制与收付实现制混用 | 现金流预测统一为收付实现制 |
| 内部交易 | 集团合并未抵消内部收付 | 合并层面抵消,法人层面保留 |
| 汇率折算 | 期末汇率与平均汇率混用 | 按预测规则固定折算汇率 |
| 时间归属 | 跨期回款、预收预付 | 按实际收付日期归属 |
四、案例与场景:一次月末集中回款的清洗复盘
某制造企业连续三年在12月出现经营现金流入峰值。初步建模时,模型将12月流入权重设得极高。清洗阶段发现:该峰值来自经销商年末集中回款,而合同约定的信用期实际为次年1月。若按收付实现制,这笔流入应归属12月;但若用于预测未来现金流,则需区分“合同约定回款期”与“实际到账期”。团队最终将数据拆分为“合同应收日期”和“实际到账日期”两个字段,并分别建模,预测误差从18%降至7%。
五、误区与复盘
- 误区一:缺失值一律填零。对流量型科目可能合理,对余额型或流水型科目会严重失真。
- 误区二:异常值直接删除。删除可能丢失真实的一次性大额事件,应标记并单独处理。
- 误区三:口径统一只做一次。业务变化、系统升级、汇率调整都会引入新差异,需定期复核。
- 误区四:忽视时间轴对齐。不同系统日期格式、时区、截止时间不同,会导致同笔业务落在不同期间。
完成数据准备与清洗后,时间序列才具备进入季节性分解和情景建模的条件。下一阶段的工作,将建立在这份干净、可追溯、口径一致的数据底座之上。