vlambda博客
学习文章列表

回归分析 | 预测精度达到多少才算好?

回归分析


Author:熊大

From:狗熊会

     

所有学习过线性回归的童鞋都会知道这么一个概念,叫做:判决系数。英文称之为R.Squared。R.Squared是一个非常有用的,关于线性回归模型拟合优度的量,能够很直观滴告诉我们这个模型的预测精度大概会怎样。

从理论上讲,判决系数内样本)是一个介乎0%和100%之间的数字。其中0%表示彻底线性无关,而100%表示确定的线性关系。假设变量个数不是很多,而样本量相对很大的情况下,判决系数越大,模型的预测精度就会越好。因此,一般而言,我们希望判决系数越大越好。

但是,对于实际数据分析而言,这个判决系数到底多大才算足够大?才有实际意义的?大家看,这是不是一个困扰各位很久的问题?其实这个问题不仅仅存在于判决系数。任何关乎预测精度(或者拟合优度)的度量(例如:01回归中的AUC)都面临相同的问题。给定一个预测模型,给定一个关于预测精度的测量,到底多准才有实际意义?

诚实地说,这是一个非常挑战的问题。王老师也没有特别完美的答案。但是,可以跟大家分享一下自己的看法。我的看法可能也有很多值得商榷的地方,请大家多多批评指正。在同大家的思想碰撞中,熊大也可以改进自己的看法,提高统计学素养。

简单滴说,我有两种不同的判断标准。我认为,预测精度(例如:R.Squared),满足了其中任何一种标准,那么:我认为这个模型的精度是有实际意义的(不见得完美哈)。

判断标准1:业务需求。

第一种判断标准特别的简单,就是:业务需求。简单滴说,在一个商业实践环境下,一个模型的预测精度,如果可以满足业务的最基本需求,那么这个精度就是有意义的。什么叫做:满足业务的最基本需求?看几个具体的例子。

1

案例1:量化投资。


假设您有一个奇妙的模型,可以预测股票上升或者下降的趋势。请问多准才是有意义的?答案特别简单:赚钱。如果您的模型能够让我的投资赚钱,不赔钱,这就老好了。至于赚多少,这是然后考虑的事情。所以,赚钱就是业务目标。根据模型预测结果,形成投资策略,然后对其收益率进行测算。Guess what?要达到这个目标,似乎很容易。只要您的外样本的R.Squared是正的(说白了只要有一点点预测能力),并严格执行一套成熟的投资策略,从长期而言,就可以保证您不赔钱。但是,悲催的是,资本市场是近似有效的。这使得几乎没有任何模型,能够在特别长的时间周期内,持续有效地产生预测能力。所以,对于量化投资而言,如果要达到赚钱的业务目的,只要有一点点的预测精度就好。例如:外样本的R.Squared有1%就足够了!但是,要实现这一点点预测精度,非常不容易!大多数,我们认为奇思妙想的投资策略,在长时间周期的,外样本的测试中,表现出来的R.Squared都是负数。伤心啊!不信?不信你试试,如果能做出来,狗熊会精品案例马上收录,毫不犹豫!这就是业务判断的标准!

2

案例2:互联网征信。


现在消费金融特别火,而消费金融的关键就是互联网征信。互联网征信是什么?就是要判断一个人赖账的可能性(例如:概率),并通过这个可能性决定是否给一个人放贷,以及放贷利率。

有没有可能一个征信模型,能够预测做到100%的准确?不可能,也不需要。真正需要的是:对一个申请者,是好人还是坏蛋的判断精度,能够支撑我的信贷业务,不亏钱,这就老牛了!如果还可以实现超过预期的收益,这就完美了!

但是,这个模型得多准才能达到这个要求呢?假设根据模型对每个申请者打分,然后挑出得分最高的100人,放贷。借给每个人100元。然后,希望将来每个人还给我110元(即100元本金+10元利息)。如果模型精度可以保证,这100个人里,预期1个坏蛋。那么,预期收益就是99个好人,一共990元利息收入。而一个坏蛋跑路了,100元本金收入没了。不考虑其他各种损失。那么,我的收益是990-100=890元。考虑到总共本金1万,那么收益率是8.9%,还是非常不错的(比银行活期好多了,呵呵)。这说明,该预测精度可以达到业务(消费金融信贷)的最基本要求。相反,如果预测精度是预期10个坏蛋。那么,收益就是90个好人,一共900元。但是,10个坏蛋跑路,损失1000元。因此,最后综合损失900-1000=-100元。考虑到本金1万元,最后收益率是-1%。这就很糟糕。在这种业务背景下,90%的预测精度是不可以接受的,99%就可以。这就是业务判断的标准!

3

案例3:保险。


请大家思考一下汽车保险。假设每个司机每年保费100元。再假设市场上每100个司机会出10个坏蛋,会给保险公司带来800元的损失。您都不需要预测,只要把市场全部吃下来,然后每100人,就有100*100-10*800=2000的收益。这种情况下,对预测精度要求不高。但是要求整个市场环境比较好,也就是说:(1)保费比较高;(2)坏蛋比较少。但是,如果这个市场上每100个司机就有50个坏蛋的时候,故事就全变了。如果这个时候,您还不假思索,全市场通吃,那么您的收益就是:100*100-50*800=-3万!赔死了!这个时候,您恐怕应该考虑做优质客户,也就是出险理赔概率小的客户。为此,您会非常需要一个预测模型的帮助。如果这个时候,预测模型能够帮助您把50个坏蛋中的40个识别出来,并排除在普通保险产品之外(可以给他们更加苛刻严格的保险产品),那么保险公司就又可以盈利了。这就是业务判断的标准!

判断标准2:对比标杆。

大家可以看到,业务需求应该说是一个最低标准。如果一个模型的预测精度都满足不了业务需求,可以说是:一无是处。但是,一个模型满足了业务需求了,就一定是了不起的模型了嘛?这也不一定。

以征信为例,整一个不亏钱的模型得分没啥了不起。找一个大银行,把它们家的打分标准,不动脑筋抄一遍,常常也能满足这个要求。我把这个叫做【简单方案】。【简单方案】似乎也可以让业务开展起来,而且不亏钱。这没啥了不起吧!所以,在这种情况下,模型的精度要多准才算准?答:至少要超过【简单方案】这个对比标杆。如果超不过,模型仍然没有意义。这个可以理解吗?在这种情况下,要你的模型作甚?用简单方案不就可以了。相反,如果模型预测精度如果超过了【简单方案】,此时有意义的可能性就大多了。为什么?因为,模型的对比标杆是,一个已经被业务接受的标准。而模型做得更好,自然就更可能被业务接受。而被业务接受就是一个模型有意义的最终体现。

所以,王老师在对企业的合作咨询过程中,特别注意一点,就是:如何评估未来模型的效果?有没有一个良好定义的对比标杆。如果有,最好,我们努力超越他。如果没有,那么这样的合作研究要慎之又慎。因为,很可能最后没法评估模型效果,会让合作伙伴非常失望。

那么,理解了对比标杆的重要性后,很自然的一个问题是:对比标杆应该如何确立呢?答:有至少这么两种确立方法。

1

标杆1:当前状况。


在做新的模型研究前,能否先对现状做一个准确描述?例如,咱们目前的,正在采用的预测模型,其预测精度如何?如果经过我们的努力,新的预测精度能够超越现状,这是一个实在的进步,哪怕这个结果距离最终满意仍需努力。

2

标杆2:竞争对手。


这里讲的竞争对手比较广义。可以是市场的一个平均水平,可以是直接竞争对手,还可以是行业龙头,甚至可以是一种处在竞争地位的技术方案。如果我们的模型可以帮助企业做得比竞争对手更好,那么这个模型的预测精度,应该是有意义的。


这就是熊大经常使用的两个重要标杆,非常有用,屡试不爽。所以,例如,一个线性回归模型的判决系数,要多大才算有意义?第一,比当前方案的预测精度好;第二,比竞争对手好。

有经验的朋友一定会说:王老师,很多时候,我们的客户,第一,没有当前方案;第二,也不了解竞争对手。这个咋整?如果这种情况发生了,我们回到最低标准:业务需求。否则,谁也说不清楚,模型预测的精度,到底多好才算真的好。