交叉验证常见的统计陷阱
交叉验证是一种把样本分批轮换用于训练与检验的稳健性方法。其基本做法是:将数据划分为若干份,轮流以其中一部分作为检验集、其余作为训练集,重复多次后汇总结果。它的初衷是减少单次划分带来的偶然性,让评估结果更接近模型在未知数据上的表现。然而,这一方法并非万能,若使用不当,反而会制造出看似可靠、实则失真的结论。普通投资者在理解量化策略或统计模型时,有必要了解其中几个常见的统计陷阱。
(1)样本偏差。交叉验证假设样本能够代表整体,但若数据本身有偏,轮换再多次也无济于事。例如,若样本只覆盖某一段特定市场环境,那么无论怎样分批,检验集都来自同一环境,模型在该环境内表现良好,并不意味着换一个环境仍然如此。避免方法是尽量让样本覆盖多种市场状态,并在划分时保持各类状态的比例大致均衡;同时应清楚说明样本的来源与局限,而不是把结果直接外推到全部历史。
(2)时间窗口问题。标准交叉验证常默认样本之间相互独立,但金融数据往往存在时间上的自相关。若随机打乱时间顺序再分批,训练集里可能包含检验集之后的信息,形成“未来信息泄露”。这会让评估结果偏乐观,因为模型在检验时“见过”未来。避免方法是采用按时间顺序的划分方式,例如滚动窗口或扩展窗口:始终用较早的数据训练、较晚的数据检验,并让训练与检验之间留出一段间隔,以减少信息渗漏。具体间隔长度没有统一标准,通常以官方规则或研究设计为准。
(3)幸存者问题。当样本只包含当前仍存在的对象时,那些已经消失或退出的对象被系统性排除,结果就会偏向于“活下来”的部分。在金融数据中,若只使用今天仍在交易的标的构成历史样本,早期已退市或已终止的标的便不在其中,统计结果可能高估整体表现。避免方法是尽可能纳入历史全样本,包括后来退出的对象;若数据受限,应在结论中明确说明这一局限,而不是把基于幸存样本的统计当作全貌。
除上述三点外,还有两类常见误区值得留意。其一是重复使用同一检验集进行多次调参,使检验集实际上参与了模型选择,导致其不再“未知”,评估结果随之虚高。其二是忽略样本量过小带来的波动,分批后每一份的样本更少,结果对个别数据点更敏感。避免方法是把调参限定在训练集内部,并保留一份从未参与任何选择的最终检验集;同时报告结果的波动范围,而非只给一个平均值。
对普通投资者而言,看到基于交叉验证的统计结论时,可以多问几句:样本覆盖了哪些时期与对象,划分是否按时间顺序,是否包含已退出的样本,检验集是否被反复使用。交叉验证只是一种方法论工具,它能帮助识别不稳健的结论,但不能替代对数据来源与假设的审视。理解这些陷阱,有助于更审慎地看待各类统计与回测结果。