文献 (Sun et al., 2020) 阅读总结与分享
核心:使用非均衡数据流进行动态财务、金融困境预警研究!
摘要:本文重点讨论了如何有效构建基于类不平衡数据流的动态金融困境预测模型。本文提出了两种基于合成少数人超采样技术(SMOTE)结合Adaboost支持向量机合集与时间加权(ADASVM-TW)的动态财务困境预测方法。一种是SMOTE与ADASVM-TW的简单集成模型,即在应用ADASVM-TW进行动态财务困境预测建模之前,利用SMOTE使每个数据批的类别均衡化。另一种是SMOTE ADASVM-TW的嵌入整合模型,它将SMOTE嵌入到ADASVM-TW的迭代中,并创造性地设计了一种新的样本加权机制。即在每一轮迭代中,不仅通过时间加权对大多数金融正常样本进行重新采样,而且在新的、困难的少数人样本周围生成更多的合成少数人样本,在旧的、容易的少数人样本周围生成更少的合成少数人样本,使训练数据集达到类平衡。实证实验是基于2628家中国上市公司的财务数据进行的。由于所提出的模型存在一定程度的随机性,在相同的条件下进行了50次 实验在同一计算环境下进行,以便对模型性能的实验结果进行统计学上的比较和检验。结果表明,简单整合模型和嵌入整合模型都能极大地提高对少数财务困境样本的识别能力,而嵌入整合模型更受青睐,因为它也显著地 优于简单整合模型
- 工作:(1)利用SMOTE对数据进行类别均衡化后,加入Adasvm-tw模型中进行财务困境预测。(2)将SMOTE嵌入到Adasvm-tw中,设计一种新的加权机制。(3)由于一定程度的随机性在拟议的模型中,50次的实验进行同样的计算环境下,以便模型性能的实验结果统计对比和测试
- 结论:结果表明,简单整合模型和嵌入整合模型都能极大地提高对少数财务困境样本的识别能力,而嵌入整合模型更受青睐,因为它也显著地 优于简单整合模型
综述:该研究在Adaboost-SVM模型的基础上使用SMOTE解决样本非均衡问题,使用time-weighting方法解决概念飘移的问题。最终结果显示,整合和嵌入模型具有极大的识别财务困境的能力,效果显著!
主要工作
1.前言
第一段:财务压力和风险问题概括 ——> 经济大环境背景 ——> 企业破产风险严峻,需要合理的预警模型 ——> FDP系统被广泛应用和研究,有助于支持科学的风险管理决策
第二段:FDP的研究存在两个方面:(1)静态的。(2)动态的 ——> 动态是主要方向,可以解决概念飘移的问题
第三段:此外,我们还面临数据的非均衡问题 ——> 研究者喜欢从总体上观察预测模型表现,和综合结果 ——> 但实际上面临样本非均衡带来的bias ——> 使用SMOTE方法 ——> 但是现有研究忽略如何更好的结合SMOTE模型!
例如10000个正样本,100个负样本
正样本预测正确个数:9999
负样本预测正确个数:10
总预测正确率:9999+10 / 10100 = 99.01%
但实际上,负向样本预测争取率只有10%!
第四段:对财务风险非均衡数据,概念飘移进行一下更加深入的解释
第五段:作者介绍自己的主要工作和突破点
突破点:几乎没有人考虑样本非均衡和动态FDP的问题!
2. 研究综述
- FDP 财务风险预警研究
- Class-Inbalanced 非均衡数据集处理研究
- Concept drift 概念飘移研究
3. 背景模型
ADASVM-TW模型
算法流程:
Input : initial training dataset D = { ( x i , y i , t i ) } , y i ∈ { 1 , − 1 } , t i ∈ { 0 , 1 , . . . , n − 1 } , ( i = 1 , 2 , . . . , m ) D = \{(x^i,y^i,t^i)\},y^i\in\{1,-1\},t^i\in\{0,1,...,n-1\},(i=1,2,...,m) D={(xi,yi,ti)},yi∈{1,−1},ti∈{0,1,...,n−1},(i=1,2,...,m) and the error rate threshold c.
(1) Initialize the sample weights w 1 i = 1 m , W 1 = { w 1 1 , w 1 2 , . . . , w 1 m } = { 1 m , . . , 1 m } w^i_1 = \frac{1}{m},W_1 = \{w^1_1,w^2_1,...,w_1^m\}= \{\frac{1}{m},..,\frac{1}{m}\} w1i=m1,W1={w11,w12,...,w1m}={m1,..,m1}
(2) For u = 1 , 2 , 3 , . . , U u = 1,2,3,..,U u=1,2,3,..,U
a) Select a training data subset D u D_u Du from D D D according to the sample weights W u W_u Wu
b) Train a base classifer S V M u SVM_u SVMu, also represented as f u ( x ) f_u(x) fu(x), on the dataset D u D_u Du
c) Validate S V M u SVM_u SVMu on the dataset D D D to calculate the classification error rate e u e_u eu
d) if e u < c e_u <c eu<c or e u > 0.5 e_u>0.5 eu>0.5,keep u u u unchanged and return to step a), otherwise continue to next step
e) Calculate the voting weight of S V M u SVM_u SVMu: α u = 0.5 I n [ ( 1 − e u ) / e u ] \alpha_u = 0.5 In [(1-e_u)/e_u] αu=0.5In[(1−eu)/eu]
f) Update the sample weights : w u + 1 ’ i = w u i e x p ( − α u l u i e x p ( λ t i l u i ) ) w^{’i}_{u+1} = w^i_{u}exp(-\alpha_ul^i_uexp(\lambda t^il^i_u)) wu+1’i=wuiexp(−αuluiexp(λtilui))
l u ’ i = { 1 i f f u ( x i ) = y i − 1 i f f u ( x i ) ≠ y i l^{’i}_u = \begin{cases}1 \ \ \ if \ \ \ f_u(x^i)=y^i \\ -1 \ \ \ if \ \ \ f_u(x^i)\ne y^i \end{cases} lu’i={1 if fu(xi)=yi−1 if fu(xi)=yig) Normalize the sample weights : w u + 1 i = w u + 1 i / ∑ i = 1 m w u + 1 ′ i w^i_{u+1} = w^i_{u+1}/\sum^m_{i=1}w^{'i}_{u+1} wu+1i=wu+1i/∑i=1mwu+1′i
End
Output : ADASVM-TW ensemble H ( x ) = s i g n ( ∑ u = 1 U ( α u f u ( x ) ) ) H(x) = sign(\sum^U_{u=1}(\alpha_uf_u(x))) H(x)=sign(∑u=1U(αufu(x)))
核心思想:给分类错误的样本更高的权重,给新的样本更高的权重!
过采样算法SMOTE
SMOTE示意图如下:
SMOTE算法的生成过程为:
- 对于少数类中每一个样本 x ,以欧式距离为标准计算它到少数类样本集中所有样本的距离,得到其 k 近邻。
- 根据不平衡样本比例设置一个采样比例,已确定采样倍率 N,对于每一个少数类样本x,从其k近邻中随机选择若干样本,假设选择的近邻为 x n e w x_{new} xnew
- 对于每一个随机选出的近邻 x n e w x_{new} xnew,分别于原样本按照如下的公式构建新的样本
x n e w = x + r a n d ( 0 , 1 ) ∗ ( x ˉ − x ) x_{new} = x+rand(0,1) * (\bar{x}-x) xnew=x+rand(0,1)∗(xˉ−x)
SMOTE的缺点:
从算法中,我们可以发现, SMOTE采样其实就是生成样本之间的一些样本。
但是因为思路简单,我们也很容易就可以发现SMOTE算法的一些缺点。
- 在近邻选择时,K值的决定一般较难,可以枚举然后根据实验效果来定;
- 算法无法克服非平衡数据集的数据分布问题,容易产生分布边缘化问题。如果正样本都分布在边缘,我们通过采样正样本来生成样本,那么这样新生成的样本将也会全部在边缘,且会越来越边缘化,从而模糊了正类样本和负类样本的边界,而且使边界变得越来越模糊。这种边界模糊性,虽然使数据集的平衡性得到了改善,但有时也会加大了分类算法进行分类的难度.
简单组合SMOTE 和 ADASVM-TW
即,SMOTE算法被用在开始的时候构建均衡训练数据集,具体流程图参考如下:
面临的挑战:
- 一般认为加入SMOTE会变得更好,但是线性的组合忽略了新旧样本之间的差异
- 此外,SMOTE在模型的迭代过程之外,对于困难和容易的样本有差异,导致样本训练的不一致
集成SMOTE和ADASVM-TW
核心目标:更多合成围绕新的,困难(预测准确率低的)的少数样本。更少的合成旧的,简单的少数样本。
核心工作:和前面在构建数据集的时候生成均衡样本,集成的方式是将SMOTE嵌入到training sample的构建。简而言之,就是在每一次训练的时候,都是一次SMOTE生成新样本的时刻!
参数说明:
-
初始训练集的少样本 和 多样本的个数为: S P , S N S_P,S_N SP,SN
-
P _ w u j P_{\_w_u^j} P_wuj 和 N _ w u j N_{\_w_u^j} N_wuj 分别表示第 j 个少样本 和 多样本在第 u 轮迭代中的标准化权重
-
SMOTE合成样本的数量为 S N − P = S N − S P S_{N-P} = S_N - S_P SN−P=SN−SP
-
SMOTE 参考公式见文章内部分
流程说明:
-
参数说明,j 为 第j个样本,u 为第u轮
-
在训练数据集中,作者划分出多,少两组样本
-
同时也进行样本权重的分布,划分出多,少样本不同的权重
- 对于少样本:
- 计算SMOTE的比例根据公司 : N u j N_u^j Nuj
- 根据比例生成合成样本 D_SMOTE
- 重新获得少样本的训练样本 D _ P u D\_P_u D_Pu
- 对于多样本:
- 从样本 D N D_N DN 中 按照权重 N _ w u j N_{\_w_u^j} N_wuj 的分布构建新的训练样本 D _ N u D\_N_u D_Nu
- 对于少样本:
-
组合成class-balanced样本 D = D _ P u + D _ N u D\_P_u + D\_N_u D_Pu+D_Nu
-
带入到模型中 ADASVM-TW
4. 实证实验
作者的实证实验设计非常好,从五个方面进行,直接将工作全面且完善的介绍清楚
(1)数据选择(2)预处理(3)特征选择(4)参数设定(5)实验和结果
数据选择
- 金融正常和不正常比例为1:5
- 相同行业
- 财务正常公司表现要好
- 市值,账面价值上下浮动30%
- 2002-2016样本 438 家financial distress,2190家正常的
- 55个金融指标,根据量化分析得到
- miss 数据 和 outlier数据
- 填补均值
- 剔除部分
- 剔除量纲,标准化处理
特征选择
-
初始化全部特征共55个
-
正太分布检验 和 均值比较
如果数据在正太分布的检验上不显著,尽量不要
使用的是 KS检验
-
逐步判别分析和collinearity检验
避免金融指标之间的共线性问题
TOL 分析 (statistics of tolerance)
VIF 分析 (variance inflation factor)
-
统计描述
描述两个部分:原始数据的统计,标准化后数据的统计
实验设计
动态滚动向前的:
在实验中,FDP模型是根据当前建模年份的样本公司的T-2数据建立的,同时用建模年份后一年出现的样本公司的T-2数据来测试模型。例如,当年度为2005年时,将2002年至2005年收集的样本公司的T-2数据作为训练集1,将2006年收集的样本公司的T-2数据作为测试集1,从而评估2005年构建的FDP模型的预测性能。
参考流程如下:
模型评估
-
TPrate: true positive rate or recall
T P r a t e ( r e c a l l ) = T P / ( T P + F N ) TPrate (recall) = TP/(TP + FN) TPrate(recall)=TP/(TP+FN) -
TNrate: true negative rate
T N r a t e = T N / ( T N + F P ) TNrate = TN/(TN + FP) TNrate=TN/(TN+FP) -
precision
p r e c i s i o n = T P / ( T P + F P ) precision = TP/(TP + FP) precision=TP/(TP+FP) -
F: the performace for classifier
F = ( 1 + β 2 ) ∗ r e c a l l ∗ p r e c i s i o n β 2 ∗ r e c a l l ∗ p r e c i s i o n F = \frac{(1+\beta^2)*recall*precision}{\beta^2*recall*precision} F=β2∗recall∗precision(1+β2)∗recall∗precision -
G
G = T P T P + F N ∗ T N T N + F P G = \sqrt{\frac{TP}{TP+FN}*\frac{TN}{TN+FP}} G=TP+FNTP∗TN+FPTN
参数设定
这里有两个参数需要设定,分别是 λ \lambda λ 和 c c c 在算法ADASVM-TW,S-SMOTE-ADASVM-TW,and E-SMOTE-ADASVM-TW。
-
确定 lambda 值
- 首先我们设定范围 [0.18, 0.72]
- 使用大部分数据2005-2015进行全面的验证分析
- 综合比较验证的各项指标结果,在哪个lambda下更好
-
阈值 c
- 参考Ni et al 的文章,该研究发现SVM模型的最高准确率为96%,因此作者设定c为 4%
实验结果和分析
实证结果方面看:
(1)三个模型,在五个指标下,2006-2016年的结果:
(2)50次重复实验中,每个模型,每个指标的结构平均趋势图,例如:
检验方面:
(1)对各模型在50次实验中获得的性能指标进行Shapiro-Wilk检验,结果表明,除S-SMOTE-ADASVM-TW的TPrate和E-SMOTE-ADASVM-TW的Acc、TNrate和G值外,大部分指标均遵循正态分布。
(2)为了进一步检验三个模型的性能是否存在显著差异,根据50次实验中获得的性能指标值,进行了配对样本T检验和非参数Wilcoxon检验。
综合各项结果来看:
与ADASVM-TW模型相比,S-SMOTE-ADASVM-TW模型以大幅牺牲Acc、TNrate和F值为代价,大幅提高了TPrate和G值;
E-SMOTE-ADASVM-TW模型以大幅牺牲Acc和TNrate为代价,大幅提高了TPrate、F值和G值。可能的原因是ADASVM-TW构建的FDP模型在没有进行类不平衡处理的情况下,严重偏向于大多数非金融困境样本,而S-SMOTE-ADASVM-TW或 E-SMOTE-ADASVM-TW可以通过生成新的合成财务困境样本在一定程度上缓解这种模型偏差。
此外,E-SMOTE-ADASVM-TW通过样本加权机制生成新的合成财务困境样本,这些样本更偏向于较新和较难的样本。
然而,S-SMOTE-ADASVM-TW在每个原始财务困境样本周围生成相同数量的新合成财务困境样本,当概念漂移时可能会产生更多的噪声样本。
因此,E-SMOTE-ADASVM-TW在有财务困境概念漂移的类不平衡DFDP中优于S-SMOTE-ADASVM-TW。
5. 总结
如何有效构建FDP模型一直是企业财务管理的一个重要研究课题。考虑财务困境概念漂移的影响,一些DFDP建模方法提出了动态构建FDP模型基于金融数据流。然而,他们几乎忽略类不平衡问题在DFDP建模的过程。本文试图考虑这个问题并提出两个class-imbalanced DFDP模型基于Adaboost-SVM合奏击打和时间加权相结合,即S-SMOTE-ADASVM-TW模型和E-SMOTE-ADASVM-TW模型。S-SMOTE-ADASVM-TW模型只适用于杀来平衡所有可用的数据之前批次ADASVM-TW算法用于构造Adaboost-SVM DFDP整体模型。E-SMOTE-ADASVM-TW模型嵌入击打成ADASVM-TW的迭代模型,把新老少数样本不同以及治疗困难和容易少数样本不同迭代的基分类器训练。进行实证实验是基于完全2628中国上市公司的样本数据,样本由438年的金融危机和2190年金融正常样本。实验结果表明,该ADASVM-TW模型没有击杀非常糟糕的表现意识到金融危机的少数类样本,SSMOTE-ADASVM-TW和E-SMOTE-ADASVM-TW在某种程度上可以解决这个问题。此外,E-SMOTE-ADASVM-TW模型明显优于S-SMOTE-ADASVM-TW模型和更喜欢class-imbalanced DFDP。
文献来源:
[1] Sun, J., Li, H., Fujita, H., Fu, B., & Ai, W. (2020). Class-imbalanced dynamic financial distress prediction based on Adaboost-SVM ensemble combined with SMOTE and time weighting. Information Fusion, 54, 128-144. http://doi.org/https://doi.org/10.1016/j.inffus.2019.07.006相关资料:
[1] 过采样:SMOTE方法