之前的数据做训练,观察点之后的数据做验证。”
他顿了顿:
“这叫‘样本外测试’。如果观察点之后的表现和观察期内一致,那这个假设才值得信。”
小林在本子上飞快地记着。
小吴忽然举手:
“周老师,那如果我们跑了很多因子,发现其中几个表现特别好——这算不算数据窥探?”
周寻看着她:
“算。而且是很典型的一种。”
他走到白板前,画了一个新图:
因子A 因子B 因子C 因子D 因子E
回测1 好 差 好 差 差
回测2 差 好 好 差 好
回测3 好 差 差 好 好
“如果你测了一百个因子,然后挑出表现最好的五个——这五个,大概率是运气。因为在随机数据里,总会有一批因子表现特别好,哪怕它们毫无意义。”
他看着小吴:
“这叫‘多重测试偏差’。测的因子越多,偶然发现好结果的概率越大。所以,我们必须用‘样本外测试’来验证——选出来的因子,必须在没见过的数据上重新跑一遍,才能证明它不是运气。”
小吴点头。
陈默听着这些,忽然想起什么。
“周寻,”他问,“你说的这些,在学术界有标准做法吗?”
周寻点头:
“有。一般会把历史数据分成三部分:训练集、验证集、测试集。”
他走到白板前,画了一个新图:
```
历史数据
├── 训练集 (60%): 用来开发策略、调整参数
├── 验证集 (20%): 用来验证策略稳定性、防止过拟合
└── 测试集 (20%): 只在最后用一次,评估真实表现
```
“训练集可以反复用,不断优化。验证集可以偶尔用,检查策略是否过拟合。测试集——只能跑一次,跑完就不能再改。这个结果,才是真正有说服力的。”
他看着陈默:
“我们现在的数据只有五年,分三段的话,每段太短了。但至少,我们可以留出最后一年做‘样本外测试’。”
陈默想了想:
“那就从2009年1月到现在,作为样本外。2005到2008年,作为样本内。所有因子开发,只
本章未完,请点击下一页继续阅读!