弈倍弈见 | 从简单预测到机器学习
来源: 弈倍投资 发布时间:  2019-03-09

对无论是最简单的一元回归还是复杂的机器学习而言,搞清楚是什么在对交易结果起作用是至关重要的,模型本身只是工具,并不是印钞机。

——德维恩(弈倍研究员)


预测本身就是一件非常难的事情,从R2就可以看出来,尤其是在开发人员不知道因子池的基础上,更是闭门造车。笔者曾做过一个项目,大致内容是:

“使用BP神经网在tick级数据的基础上预测下一个或后几个tick的走势,并作出相应的交易决策”。

可惜该项目最终被搁浅,做出的效果极差,被同行说“不如用简单回归来得有效”。所以业界将预测分为两派,一派是推崇简单回归,解释度高且逻辑清晰;一派是人工智能,从数学模型的角度去刻画数据模式。在笔者看来,没有孰是孰非,只有理解与不理解的分别。

传统的预测便是选定因子池,采用简单的一元回归或多元回归来对未来收益进行预测,但实际上,很多回归预测的效果都不好,原因在于一次预测的解释度并不会很高,自然预测的y的值也就不会那么准确了。以期货为例,行业对收益率的解释度达到19%左右,如果将动量因子加入到回归模型,调整的R2可以达到20%。也就是说,诸如行业内比较有效的动量因子对方程的解释度的贡献也才1%不到,如果将所有大类因子同时进行回归(排除共线性的干扰),调整的R2也才30%多,这意味着有将近60%的收益率并没有被解释清楚。这么看来,单次回归预测可能做对了方向,但将预测次数取极限时,准确率可想而知。所以说,仅凭一次预测就能达到预期目的的,如果不是用到未来数据,恐怕是不行的。

回归难道没有用武之地?非也。笔者曾经思考过,单次预测虽然的确不能获得较高的预测效率(这里不仅仅是指简单回归,包括Lasso或者Logistic也是一样),但它的确具备预测的能力,这里用alpha来表示,也就是说,单次回归会贡献极小的alpha,那么如果能够进行无数次、相关性弱且能略微贡献alpha的回归,那么依据大数定律,是否能得到稍微靠谱一点的预测呢?当然,如果前提假设没有被采用,无论怎么做预测都是徒劳的。

说完了简单回归,那么说说机器学习。笔者在求学期间深受机器学习的影响,考虑到它在工业领域的广泛应用,这倒是可以理解。但似乎对应用于金融领域的论调,许多人倒是持反对意见。以SVM为例,SVM本身就是在通过构建核函数,在高维空间对样本进行非线性切割,这在以“可理解性”为核心的交易领域起了冲突,所以更多的是受到排挤。在笔者看来,机器学习本身和回归并无多大区别,关键是模型的输入和输出更为重要,也即大家所说的“garbage in or out”的问题,不能把责任都怪罪于模型本身。比如,在做二分类问题时,因子池内的因子逻辑不清楚,一股脑儿地输入模型并期望有良好的预测,即使是样本内预测准确,结果做样本外测试的时候却表现大相径庭,结果认为模型过度拟合了噪音。这是不对的,如果连起码的数据层的处理都不清楚,那么最后便无需继续了。除此之外,当了解了数据和模型后,对结果的分析也是相当重要的。简单的看赚钱没赚钱并不会有太大帮助,此时可能需要做一些样本外测试,或者对不同市场的回测分析比较,或者对参数敏感性做定量测试等等,这都是有必要的,而不是仅仅相信模型真的会给出天衣无缝的预测信号,不论是用简单回归还是用机器学习,这一步都是必不可少的。

换言之,在笔者看来,模型本身的效用并不会高于使用者带来的效用。模型是被用的,而不是占据主导,不是说用了模型和没用模型就会产生巨大偏差。所以从这点上来说,工具本身没有太大差异(注:不是说模型都一样,比如SVM擅长做小样本预测而神经网更适合大数据)。

另外,模型对于所有人来说都是初始化的工具,但到每个人的手上时便会显得不一样。借用知乎上一位同行的话说,与其改变X,不如改变Y。笔者深受启发,并在研究工作中定义了Y的模式,从而使得机器学习因子的表现很抢眼。考虑到严谨的问题,笔者也测试过不同的Y定义和原始值定义的测试结果之间的对比,发现差异显著。所以从这里可以看出,如果仅仅是停留在看得起或看不起模型的层面上,而不是深入思考研究中的每个细节,是无法做出优秀的策略的。