因果模型五:因果模型在金融风控评分卡中的应用——因果正则化的稳定评分卡模型
我们调研因果模型的出发点在于要以一种新颖的因果视角去解决金融领域模型存在的问题,所以我们的落脚点也应该在如何应用因果的思想或方法,去提高评分卡模型的精度或者稳定度。这个领域的相关文献较少,近期调研到一篇由光大科技发表的因果正则化稳定评分卡模型的文章,和大家简单分享。
一、主要内容
本篇文章提出了一种新颖的评分卡模型——稳定评分卡模型SSCM(Stable Scoring Card Model),该模型和传统评分卡模型的最大区别在于:在损失函数中加入了因果正则项,具体而言它的损失函数由两部分构成,一是带权重的交叉熵损失,二是全局混淆因子平衡项(global confounder balance)。SSCM解决了传统模型要求数据独立同分布(实际场景中往往不可能满足)的问题。就效果而言,其在保证模型平均准确度的前提下,降低模型性能在各种不同样本分布下的准确率方差,从而保证模型的稳定性。
二、基本思想
传统逻辑回归评分卡模型在未知环境中很难做到稳定的预测效果,因为根据X,Y构建的联合概率密度函数分布在不同的样本上面是变化的。同时,因为缺乏先验知识,我们也不能仅仅根据训练样本就估计出分布是怎么变化的。
假设存在一个条件概率
P
(
y
∣
s
)
P(y|s)
P(y∣s),在每一个样本环境中都满足
P
r
(
Y
e
=
y
∣
S
e
=
s
,
V
e
=
v
)
=
P
r
(
Y
e
=
y
∣
S
e
=
s
)
=
P
(
y
∣
s
)
P_r(Y^e=y|S^e = s, V^e = v) = P_r(Y^e = y|S^e = s) = P(y|s)
Pr(Ye=y∣Se=s,Ve=v)=Pr(Ye=y∣Se=s)=P(y∣s)。在这种假设下,初始变量
X
=
{
S
,
V
}
X = \{S,V\}
X={S,V}就可以被分为两部分,因果变量S和噪音变量V(也叫混淆项)。上面这个公式说直白一点就是条件概率P在不同的样本环境下分布都是一样的,不变的,不管加不加噪音变量,P都一样。相应的,那问题的关键就变成了去学习出这个稳定的函数
P
(
y
∣
s
)
P(y|s)
P(y∣s),更具体一点就是去识别出哪些是因果变量S。到此,就完成了对实际问题的数学化和抽象化。
在因果推断的范式下,我们将每一个变量
X
i
X_i
Xi都看做处理变量(treatment),所有剩下的变量
X
−
i
=
X
/
X
i
X_-i = X / X_i
X−i=X/Xi都看做混淆变量(confounder)。然后我们就可以通过计算处理变量中的处理组(值为1的所有样本)和控制组(值为0的所有样本)之间的差值,来估计每一个处理变量
X
i
X_i
Xi对目标值y的因果贡献(这里有个问题 ,不是所有变量都只有0和1两个取值,那怎么区分出控制组和处理组呢?只需要首先把所有变量做独热编码就可以了)。回归到线性回归分类器上面,就像优化联合概率密度函数去寻找一组全局最优系数的思想一样。因果评分卡就是去联合地寻找针对所有变量的一组最优的因果系数,这样也就完成了因果评分卡分类器的构建。
三、目标函数及其优化
因果评分卡的目标函数融合了交叉熵损失和全局因果正则项,其具体格式如下:
其中,圆圈点乘的符号代表哈德蒙德点乘,点乘后得到一个矩阵,其中每个元素都是相应位置两个矩阵元素的乘积。n指n个样本,p指p个变量,其中
β
\beta
β和W是我们想要求出的两组最优系数。
怎么去求解这两组最优系数呢?可以采用固定一个,优化另一个的方案:先随机给定初始值,然后在每一轮迭代中,先固定W,用梯度下降法去优化
β
\beta
β,即等价于求解如下公式:
然后固定本轮优化好的最优
β
\beta
β,用梯度下降法寻找最优的W,即等价于求解如下公式(其中W用w圈乘w来替代,以保证为正):
四、数据处理过程
相比于传统评分卡的建模流程,因果评分卡建模过程中多了一步独热编码过程,其他基本一致。独热编码衍生出的变量会有相关性高的问题,为了避免这一问题,在选取混淆变量
X
−
j
X_-j
X−j的时候,只需要将所有同一原始变量衍生出的0-1编码变量都置为0即可,即
X
−
j
=
X
/
X
s
j
X_-j = X / X_{sj}
X−j=X/Xsj,其中Sj就是源自同一原始变量的所有0-1变量的index。
具体而言,因果正则逻辑回归SSCM的整个计算过程如下:
输入:正的权衡系数
λ
i
>
0
(
i
=
1
,
2
,
3
,
4
,
5
)
\lambda_i > 0 (i = 1,2,3,4,5)
λi>0(i=1,2,3,4,5),全部0-1值编码后的变量矩阵X,指示编码自同一原始变量的index集合Sj,目标值Y。
输出:因果系数
β
\beta
β和样本权重W
过程:
- 初始化 β \beta β和W
- 计算当前的目标函数值 J ( W , β ) J(W,\beta) J(W,β)
- 按照上述固定一个,优化另一个的方法优化 β \beta β和W,优化完后计算 J ( W , β ) J(W,\beta) J(W,β)
- 不断迭代优化,直至 J ( W , β ) J(W,\beta) J(W,β)收敛或达到最大迭代次数
- 返回系数 β \beta β和W
五、模型效果评估
5.1 人工合成数据效果测试
合成初始变量X = {C, V},其中C和V分别代表因果变量和噪音变量。C和V都从一个N(0,1)的正态分布中随机选取,取值上面进行二元化处理:大于0则取为1,否则取为0。同时,目标值Y由这样一个函数计算出来:
Y
=
f
(
C
)
+
N
(
0
,
1
)
Y = f(C)+N(0,1)
Y=f(C)+N(0,1),同样的方法将Y进行二元化。为了测试模型在有偏差样本上的的稳定性,需要随机塑造了一系列随环境变化的分布函数
P
(
Y
∣
V
)
P(Y|V)
P(Y∣V),具体就是通过设置一个偏差系数
γ
∈
(
0
,
1
)
\gamma \in (0, 1)
γ∈(0,1)来控制
P
(
Y
∣
V
)
P(Y|V)
P(Y∣V)的变化,对每一个样本,如果V=Y,则该样本被选择的概率为
γ
\gamma
γ,否则相应的概率则为
1
−
γ
1 - \gamma
1−γ,也就是
V
=
γ
∗
Y
+
(
1
−
γ
)
∗
(
1
−
Y
)
V = \gamma * Y + (1-\gamma)*(1-Y)
V=γ∗Y+(1−γ)∗(1−Y),这样,当
γ
\gamma
γ大于0.5的时候意味着Y和V正相关,等于0.5的时候相互独立,小于0.5则代表负相关。如此,通过变化
γ
\gamma
γ,一个未知的样本偏差就构造出来了。
这里构造的样本矩阵X为大小1000x20,即1000个样本,20个变量。分别对比了偏差系数
γ
\gamma
γ取值0.6,0.7,0.8时的模型效果(对应上图中左中右三个图)。图中红色柱状图为因果评分卡的auc,蓝色为传统评分卡。可以看到,当偏差越来越大时,传统评分卡在跨样本集上的效果衰减非常迅速,而因果评分卡在跨样本集上的稳定性有着显著的优势。
5.2 真实样本数据测试
在真实的零售信用场景中,积累足够的数据需要很长的时间,用来建模的样本往往是几个月前或者一两年前的数据,这自然避免不了跨样本集上未知样本选择偏差的问题。而这些数据刚好可以验证SSCM的稳定性表现。这里用来测试的数据选自一个全国金控集团的一条新的信贷业务线,三个月的数据中,前一个月用来做训练集,后两个月做测试集。训练集有3361个好样本和33个逾期样本,测试集有4965个好样本和49个坏样本。这里选入模型的变量有二十个,包括消费等级、净资产、贷款额度、水电气缴费情况,通讯费用等等。
模型效果如上图所示,上面两幅分别代表传统评分卡模型在训练和测试集上的效果;下面两幅代表SSCM在训练和测试集的效果。可以看到SSCM的稳定性和传统评分卡相比显著提升,传统评分卡在测试集上的KS值相较于训练集下降了8个点(61 vs 53);而SSCM的KS值在训练和测试集上几乎保持一致(0.59和0.58)。
为了进一步深入调查传统评分卡模型不稳定的原因,上图给出了训练集(former)和测试集(latter)上各变量IV值及排序,可以发现IV的排序性有很大的改变,说明未知样本选择偏差导致了传统评分卡模型在稳定性和泛化能力上的失效,而SSCM可以有效解决这个问题。
最后,文中难免有理解错误和说明不到位的地方,有兴趣的读者可以阅读文章原文。
Causal regularization for Stable Scoring Card Model