欢迎光临散文网 会员登陆 & 注册

几个预测模型评价指标的缺点及注意问题

2023-02-23 09:32 作者:郑老师妙趣横生统计学  | 我要投稿

最近审稿,看到关于预测建模的文章越来越多,模型构建过程有时在文章中体现不明显,然而评价指标的使用却是一目了然。不少文章尽管也列出了一些评价指标,却不一定合适。因此特撰此文,以期为临床医师提供一些参考。预测模型评价指标很多,医学中比较常用的是灵敏度(sensitivity)、特异度(specificity)、准确度(accuracy)等,机器学习领域中常喜欢用精准率(precision)、召回率(recall)、F1 score等术语。这是非常实用的几个指标。本文主要介绍这几个简单指标的使用场景及缺点(ROC、NRI等相对复杂的指标以后再说),希望大家使用时谨慎。最后简单介绍一个好像在医学中很少使用但很有效的指标MCC。
这几个指标的概念都非常容易理解,尽管绝大多数文章或书中都有说明,但这里还是先列出这个随处可见的混淆矩阵表格,方便大家对照着看。

在上面的表格中,准确度很容易定义,就是正确预测的人占总人数的比例,也就是(TP+TN)/N。这个指标很受欢迎,因为非常符合我们的直观印象。然而它在非平衡数据中会有很大偏倚,很容易造成盲目乐观。所谓非平衡数据,也就是结局中某一类占比太低,如构建胃癌发生的预测模型,胃癌占比很低,大多数人是非胃癌,这种就是非平衡数据。

举个例子,假定夏季的100天中有5天会有特大暴雨(相当于只有5%的阳性率),我在这100天中每天预测没有特大暴雨,最后算一下我的预测准确度怎么样,95/100=95%,听起来我好像也可以呼风唤雨了,而实际上我对观天象一窍不通。回到专业上来,如果某一预测结局阳性占比非常低,这时候使用准确度要十分谨慎,不要被表面看起来很高的值所迷惑。

召回率=TP/(TP+FN),也就是医学中的灵敏度;精准率=TP/(TP+FP),也就是医学中的阳性预测值。这两个指标分别从各自角度评价了模型的预测效果,召回率以实际的阳性人数为分母,精准率以预测的阳性人数为分母,对比一下不难理解它们各自的侧重。而且这两个经常会出现矛盾,有可能一个高而另一个低。这在非平衡数据中体现很明显。


例如上面这一表格,阳性率为5%(50/1000),典型的非平衡数据。召回率(灵敏度)为40/50=0.8,看起来不错,然而精准率(阳性预测值)仅为40/80=0.5。也就是说,你用这个模型预测了80例阳性,尽管这里面包含了80%的真正患者,但真正是阳性的仅有40人,也就是说,假阳性太高了。这要是癌症预测的话,另外40人估计也被吓个半死。F1 score是精准率和召回率的调和平均:

F1 score一开始就是考虑到这两个指标的矛盾问题,所以把二者进行了调和,也就是说,一个模型不能只召回率(灵敏度)高而精准率(阳性预测值)对,或者反过来。这么一调和,保证了从两个方面都得高才算是一个好的预测模型。

事实上,F1确实也实现这一初衷,在上面表格中,F1值为0.62,说明尽管灵敏度不错,但总体而言仍算不上很好。

事实上,F score有一个更广义的公式,可以体现对召回率(灵敏度)或精准率(阳性预测值)的侧重。公式如下:

式中的beta值反映了召回率(灵敏度)对精准率(阳性预测值)的重要程度。例如,在某疾病的预测中,我更侧重灵敏度,认为灵敏度的重要性是阳性预测值的2倍,那我就可以把beta值设为2。我们常用的F1就是把beta设为1,也就是认为二者同等重要,但实际中往往我们会有所侧重。

尽管F1实际中很常用,也很好用,但它也有一个缺陷,那就是它主要侧重阳性预测,因为召回率(灵敏度)和精准率(阳性预测值)这两个指标主要就是侧重阳性预测(看看公式就明白了)。所以如果同时考虑到阴性预测的时候,F1有时也会产生很大偏倚。例如下面数据:


详情请点击下方:

https://mp.weixin.qq.com/s?__biz=MzAwOTYyMDY3OQ==&mid=2650404044&idx=2&sn=9017e65211658b780cd67ccfa49b701a&chksm=83518964b426007271a66a101a9cd00cfaa920d3951bdc9cfec450ac1b4e0de7e173cbb4d3c3&token=866936691&lang=zh_CN#rd

关注“医学论文与统计分析”,获取更多精彩内容!   


几个预测模型评价指标的缺点及注意问题的评论 (共 条)

分享到微博请遵守国家法律