当一家企业申请贷款时,我们会对他进行一个评级,那么企业的评级是怎样产生的呢?首先我们来看一下什么是企业的评级,如下表所示:
评级列表
从表中可以看出,企业的评级通常形式是AAA、AA、AA-等形式。那么是哪些因素决定了企业的评级呢?本文将简单阐述一个企业评级产生的过程。
评级含义
首先,我们需要理解评级的含义,例如上文的AAA、AA+、AA-代表了什么?直观的理解肯定是AAA最好,但更为专业的解释是什么呢?我们引用标准普尔来作更为专业的解释:
标准普尔
从上图我们可以看到,评级更多的是对偿还债务能力的一种度量,通俗的来说,就是这个企业是否会产生违约。转化为数学描述,即该企业违约的概率。这样评级其实就转化为了一个二分类问题,我们就可以使用Logistic回归、GBDT、随机森林等机器学习方法来处理。
因此,我们Y值很容易可以判断为“是否违约”,我们X特征变量则可以表示为该“企业的相关数据”。
数据准备
是否违约(Y值)
第一步我们需要确定我们的Y值,即是否违约。违约的定义可以参考《巴塞尔新资本协议》规定,同时需要考虑违约的时效性问题。比如用户在2018年违约了,但是在2019年偿还了,那么他只能算在2018年的违约样本中,如果用户在一年之内有多次违约,我们取最早的违约日期为违约日。因此,评级一般也是半年或者一年发起一次,遇到特殊情况,客户经理也可以手动发起评级。
企业相关数据(X特征变量)
财务报表
一般企业的相关数据最重要的当然是财务报表,它主要包括资产负债表、损益表、现金流量表。财务报表的一般数据处理包括指标计算、量纲统一、勾稽关系检查、会计恒等式检测、新旧准则转换计算。财务报表口径又分为合并、本部、汇总,时间周期可以有月度、年度,在数据匹配时也应制定相应的优先级,在保证数据准确性的同时,也尽可能的增加匹配率。
财务报表匹配上有一个意思的问题是时间匹配。例如用户在2019年12月31日违约,那财报我们应该选择哪个时间点的呢?太近太远都会失去建模的意义,通常业内的做法是好用户匹配12个月以前24个月以内能匹配到的最近财报,违约用户则匹配违约时间前6个月以前18个月以内的能匹配到的最近财报。如下图所示:
财报匹配
征信、工商、税法
为了更准确地对企业进行评级,除了财报之外,我们通常会通过购买等渠道,获取企业的征信、工商、税法数据。征信数据除了企业的征信,我们还会获取企业法人、实际控制人的征信数据。
工商、税法该类数据的主要问题是匹配度一般比较差,非常稀疏,通常不太适合应用在建模中,但我们可以在反欺诈、黑名单的第一道关卡中进行使用。
数据建模
数据准备完成后,就是数据建模过程。通常企业评级的数据建模主要有数据清洗、单变量分析、相关性分析、变量转换、穷举模型、模型确定这几个步骤,本文不再详细描述建模过程,感兴趣的同学可以自行查找资料,建模是比较常规的过程。其中比较有意思的是变量转换,无论是个人还是企业,我们一般都喜欢最后生成一个分数来描述这个特征或者这个主体,简单的方法可以根据四分位法来确定0-100分的划分区间,需要同时考虑该指标是越大越好还是越小越好。
需要注意的是企业评级一般在数据量较小的时候会加入人工专家判断。例如在变量选择和模型确定上,除了考虑模型选择指标还需要考虑模型的可解释性,模型可解释性在金融领域是非常重要的,也涉及一定的监管要求。
专家模型
由于企业授信一般额度特别大,但违约样本数据不足,业内很少有纯依靠机器学习的方式来进行评级,也要参考很多专家的意见,当我们在进行其他类似项目评级的时候,这种评级策略也给了我们很大的参考。试想,如果现在给你7个专家,你需要他们给你选出最重要的特征属性,你应该如何来汇总和综合他们的意见呢?这里我们使用层次分析法(AHP),方法的相关概念大家可以自行查找资料。我们会提供一种调查问卷的形式,将候选变量给专家们,让他们进行排序,生成一个表格如下:
判断矩阵
其中1-9代表重要性越来越低,通过专家们的选择,我们有了一张各专家判断的指标优先级,也可以看出指标三是非常受到专家们的认可的。那么我们如何综合这些专家的意见呢?首先我们要得到每一个专家每一个指标的权重,然后再求得所有专家的每一个指标的平均权重。
计算步骤如下:
- 我们需要量化各个指标重要性排序的具体两两比较关系:
假设a1、a2、a3、……、a9代表重要性排序后的9个指标,以最重要的a1为锚点,各个指标和a1的重要性比较关系可以用公式表示为:
其中n为指标数量,通过调整λ可以指定不同重要性的差值区间,这里为方便计算我们假设等于8。这样我们就得到了间隔不同重要性的量化比较,并且保持所有的重要性间隔关系相等,例如a1和a3的重要性间隔为2,a2和a4的重要性间隔也为2,他们的相互关系是相等的。最终如下表:
重要性差
-
以专家1的重要性排序为例,我们可以生成如下矩阵:
指标矩阵
上面需要注意的一点是相同重要性间隔相等分数以外,也要保持指标重要性的对称性。例如,a1相较a2为2,那么a2相较a1则为0.5(1 / 2)。以此类推,我们可以生成所有专家的判断矩阵。
-
当我们获取到所有专家的判断矩阵后,我们需要综合专家们的意见,由于数字更多是重要性比较的量化,因此在计算权重时,我们推荐使用几何平均数来计算每个专家的各个指标权重。几何平均数和算数平均数的区别,本文不再介绍相关概念,具体可查找相关资料,其计算步骤可概括为以下步骤:
1. 计算各个指标的几何平均数(n在该例子中位9):
几何平均数-
对各个指标进行归一化,得出各个指标的权重:
归一化
最终我们就得到了每一个专家的每一个指标的权重。
-
-
同样的方法计算全部专家,并对所有专家的权重进行算数平均后我们可以得到如下表格:
权重矩阵
通过以上方法,最终我们群策了专家的力量得到了每一个指标的权重,这样我们就可以将这些指标进行变量转换后得到相应分值,再乘以相应的权重,就得到了最终的分值。
一般我们会再做一个一致性检测,例如A比B重要,B比C重要,但是A却没有C重要,这是不符合常识的。本文由于使用了唯一的重要性,并做了一定的转换,因此是可以保证一致性的,这里不再描述一致性检测,大家可自行查阅资料。
专家模型和机器学习模型可以分别赋予一定权重来产生最终的分值,这个权重可以根据建模能力、数据质量来不断变化,最终产出一个稳定、准确的模型。
评级映射
通过上面的模型计算后,最终我们产出了一个企业的分数,到这个时候就离最终评级AAA、AA+等等只有一步之遥了。
比较粗放的方式,我们可以直接拉出所有企业分数排序,然后根据你最终要的评级等级数量(AAA、BB、CC等级数量)进行均分,依次从高到低给予一定评级。但这种均匀分割存在一定弊端,例如AAA级和AA+级的间隔就和BBB和BB+级的间隔相同,这显然是不符合常识的。理论上来说,特别好的客户是相对较少的,特别坏的客户也是相对较少的,大量客户应集中在中部。我们自然的想到我们需要的评级区间的分布,Beta分布正好合适。
Beta分布
确定使用Beta分布后,我们需要调整α,β参数,调整参数就需要很多经验、不断尝试以及业务要求和监管政策要求了。比如每个评级等级分布增幅幅度、每个评级等级分布的违约概率,最终产生的整体违约概率等等。通过使用python的scipy.stats包pdf函数,我们可以很轻松地画出这个曲线。然后使用scipy.stats包的cdf函数就可以得到均匀分布点在Beta分布上累计分布函数值。
以α = 5.1,β=5为例,Beta分布曲线为:
Beta曲线
对应的累计分布函数曲线为:
累计分布函数
最终,通过X轴上的均匀分布点,我们可以得到对应的累计分布函数点,如下表格:
区间映射
最终通过这个分布区间来分割已排序好的所有企业的分数,映射到相应评级,这样我们就产生了一个企业的评级。
当有新企业来申请授信时,提交相应的财报数据,银行对财报进行勾稽检查和其他质量检测,获取相应的征信、工商、税法,应用我们配置好的模型,我们就可以快速的得到一个对应评级。
结 语
本文概述了面对一般企业的评级方法,详细阐述了比较有趣的专家模型产生的过程。当然,企业的评级远远比本文描述的复杂,例如遇到金融机构、事业单位、学校、医院等数据量较少且违约样本几乎为零的情况,我们如何对他们进行评级。同时,企业的数据质量相较个人来说存在很多问题,在特征处理时将耗费大量时间。并且企业的授信额度相对较大,模型更多还是参考为主,背后还得依赖于优秀的授信审批部同事。
得到企业的评级只是第一步,后续我们可以根据相关准入政策确定准入评级,并根据评级给予企业不同的额度。同时,评级是有时效性的,需要定期重新评级,并对企业进行实时监控,当突发情况发生时,及时调整评级。
最后,当我们得到了企业评级,预估了企业违约概率,但不同的债项发生违约时,有的可能全部损失,有的可能部分损失,这个应该如何量化呢?将在后续的文章中和大家分享。
网友评论