如上图所示,黑点代表实际的数据。从散点图来看,X和Y之间是非线性关系。模型1寻找到的是线性关系,显然预测的偏差(Bias)很大。模型3复杂度就太高了,预测偏差虽然很小,但是对服从同分布的其他情形的预测误差会很大。比如右侧被圈中的点1和点2,假设他们是服从正态分布的两个点。建模样本中包含的是点1,但是要预测的样本中很可能包含的是点2。所以复杂的模型3给出的预测的误差反而大。
如果我们采用模型验证的方法是从一个数据集中拆出训练和验证样本,那可以认为他们是独立同分布的。因此可以通过对比模型在训练和验证数据集上预测偏差。如果模型在训练集上的bias很低,而在验证数据集上的bias很高,那就说明模型过拟合了。但是检验模型过拟合更有效的方法是样本外验证。也就是说从新获取一些数据,检验模型的表现是否是稳定的。
有人会问,bias和Var之前有关系吗?给定被解释变量和如模特征的情况下,两者之间没有关系,因为bias是由建模人员控制的,模型可以做的很复杂,也可以做的一般复杂。而var完全是由不可控因素决定的。当然,建模人员可以深度挖掘特征变量。不过寻找特征的方向对了,不如找的是因果关系指标,那就会同时降低bias和Var;但是如果方向找错了,比如全是动量指标,bias虽然降低了,但是Var可能并不变。我们可以遵循一个原则,那就是Var越大,bias可以取的越中庸一点,而不是越低越好。这个方面如果哪位看到有学者做出了明确的公式,欢迎与大家分享啊。
刚才我们讨论了理想状态下的建模情况,即训练集中Y和预测集中的Y是同分布的。而实际情况是两个Y之间很可能不是同分布的,也就是关系模式会发生变化。比如预测未来股票收益吧。需要预测的是股票的未来收益,而建模用的样本是过去的。在建模时,就要考虑什么样的模式是稳定的,而什么模式是会变化的。一般我们认为一个企业的背景和基本面信息对未来收益的影响是比较稳定的,而股票价格趋势由于受到不同投资者资深的认知能力、风险承受能力和投资偏好的影响,模式就不是那么稳定。

入模的X包含了企业*、高管和基本面信息。但是只使用这些信息难以保障模型的预测精度,所以需要加上动量指标(Yt-i),即被预测变量的滞后项。在使用动量指标,是要很小心的,因为这类指标与Y之间的关系既不是线性,也不是模式稳定的。如上图中右侧所示。收益率本身既存在趋势发展阶段,有存在均值反转阶段。股票价格的变化从时间轴上来看,是两种力较量的结果。趋势发展的理论代表是“羊群效应“,他们认为有一些人有信息优势,先投资,而无信息优势的人会跟投,造成了投资趋势。而均值回转的代表理论是”价值投资“,也就是说被高估和低估的资产价格终究会回归其价值。两者之间的关系虽然复杂,如果模式是稳定的,那模型做复杂了,把关系找出来,那也没问题。但是要命的是这个模式会经常发生变化。比如前一段时间,连股市庄家都会赔几个亿,感叹”人心难测“(其实是模式不稳定)。那用模型抓模式的变化,有多难,大家心里应该有数了吧。对于动量指标,长期投资的人不太重视,而越是短期投资的人,越是关注。对于我们建模的人,也要把持好对这类变量入模型的度,千万不能使用所谓的”让数据说话“的托辞,忽视对其作用效果的研究、分析和跟踪。
最后以一个最近接触的项目做示例讲解吧。这是一个客户回流的数据挖掘项目。甲方希望对所有客户做活跃度提升。当时甲方要求是每个月底预测未来一个月的客户回流情况。这个时候我们可否按照下面的取数窗口设置进行取数、建模呢?

答案是否定的,因为能否在月底出模型,在下个月营销要看实际的IT和数据支持情况。能做到这样高效率实施模型的甲方并不多。所以实际上是采用以下的方式取数据的。由于不知道营销是在模型给出名单后的下个月马上营销,还是会有一个间隔期,因此我们在取响应指标时,采用了未来两个月作为表现期窗口。而营销也确实是在模型名单下发后隔了将近一个月才做的。

由于存在实际反应(Y实际)和建模反应(Y训练)的差异,此处就不仅是所谓抽样的Var造成的了,而是在定义和度量上就存在差异。而且这个差异不是在建模时可以控制的,只有在未来模型优化时才可以调整。因此在入模变量和模型预测复杂度的掌握上也要做到火候把握的要合适。这里面最重要的是动量指标的入模。所谓客户回流,就是看未来客户是否会再次发生交易。不同类型的交易频次是不同的,也就是说交易周期不同,那动量指标(比如历史上这个业务交易的RFM)能反映的模式也是一个混杂的效应。在这里也是只能把道理和注意重点提一下,具体的做法还是要深入的分析后才能下结论。
综上,即使是预测类模型,也不是越准越好,要看建模的领域、对真实数据的可获取性。当然,还要看模型运用时的策略制定,这个以后有机会再谈。最后,看客们品味一下以下三个说法:1、我们的模型做的很准,但是业务不稳定,和我门没关系;2、我们的流失预警模型做的效果非常好(其实是预测的准),但是客户经理不给力;2、我们的建模团队和策略团队各司其职,建模团队主要负责把模型作准。
数据资管出品
作者:研究猿
,