1. 财务造假识别研究现状
财务造假识别是一个世界性的难点和热点问题。目前,财务造假识别方法多以经验法和线性模型为基础,如Beneish的M-score方法 [1]、Altman的Z-score方法 [2] 以及基于舞弊三角理论 [3] 的一些方法。此外,少量的研究者也在新领域对财务造假识别开展探索性研究。Qin [4] 构建了向量机和逻辑回归模型,提高了财务造假识别模型的泛化和解释能力;Zheng [5] 等将优化LVQ神经网络模型应用于财务造假识别,通过实证研究验证了模型相较于传统模型具有精准度优势。
2. boosting决策树模型研究现状
以boosting决策树模型 [6] 为基础的GBT方法,在很多分类和回归挑战中都被认为是最先进、有效的。XGBoost [7] 和CatBoost [8] 作为GBT的改进方法,在各个领域表现优异。Paleczek [9] 等使用XGBoost方法进行糖尿病检测,结果与其他常用算法相比,XGBoost表现出最高的性能和召回率;Thongsuwan [10] 等用XGBoost方法改进CNN深度学习网络,构建了一个新的深度学习模型,简化了网络训练时误差反向传播过程并很好地处理了多数据集分类问题。针对CatBoost,很多学者对其进行探索性研究,比如将其应用于大气PM2.5的预报 [11]、新能源车满意度影响分析 [12] 等,都取得了不错的成效。
3. 方法的选择
由上述分析可知,决策树模型以其高效能、高精度的特性受到研究者广泛的青睐。结合boosting决策树模型的优势,本文将XGBoost方法和CatBoost方法应用于财务造假识别,通过对比分析,探索更有效、准确的财务造假识别方法。
4. boosting决策树模型
4.1. XGBoost模型
XGBoost模型由Chen [7] 等提出,是对GBT (Gradient Boosting Tree)方法的优化。GBT模型结构图如图1所示,给定原始数据集
,其中
为特征指标数据,
为标签数据。将
输入约定的弱学习器(决策树)中,得到输出
,计算误差
。对于减少误差L,GBT采用梯度下降的方式,训练弱学习器
以拟合L负梯度,将
作为增量迭代,直至
减小至限定的范围。训练后的弱学习器
,经过加权组合得到强学习器
,其中
为加权系数。XGBoost模型对GBT的优化主要体现在两个方面:1) XGBoost模型在处理误差L上采用二阶泰勒展式,同时为了防止过拟合,对误差L进行了正则化处理。2) XGBoost模型在弱学习器训练方面考虑了决策树的复杂度,不同于ID3、CART等决策树分裂叶子节点的方式,提出使用Gain增益作为分裂决策树节点的依据。XGBoost模型相较于GBT模型,提高了泛化能力及稳定性。
4.2. CatBoost模型
CatBoost模型最早由Yandex公司提出,是继XGBoost之后一类新型boosting方法。CatBoost主要改进了GBT中存在的预测偏移问题 [8]。GBT在每次训练弱学习器过程中,由于使用的是同一个的数据集,对误差L负梯度的估计并非是无偏估计,因此CatBoost提出Ordered boosting排序算法,在训练数据前,打乱数据排列同时交叉训练弱学习器,以得到误差L负梯度的无偏估计,减少弱学习器拟合的偏差,提高模型的泛化能力。
5. 财务造假识别
本文的模型主要针对美国上市公司财务造假案例进行识别分析。
5.1. 财务数据集来源
本文的训练样本来源于Bao [13] 等在github上公布的数据。该数据中财务欺诈样本来源于AAER数据库,由加州大学伯克利分校编制管理,相应的财务指标数据来源于COMPUSTAT基本年度数据库。数据文件“uscecchini28.csv”中包含1990~2014年美国上市公司财务造假标签数据和财务指标数据,总计146,045条记录数据。其中,造假标签数据“misstate”由布尔型变量(0, 1)描述,财务指标由28个基本财务指标和14个财务比率构成,具体见表1。

Table 1. Composition of financial indicators
表1. 财务指标构成
5.2. 识别模型的训练
依据Bao [13] 对数据集的拆分,考虑2008年后美国政策和经济形势发生变化,本文选取1990~2002年的数据作为模型训练样本集,2003~2008年的数据作为测试集,用训练样本集训练财务造假识别模型。数据训练环境为kaggle云平台,python3.6环境及一些公开源包,如sklearn、matplotlib等。
5.2.1. XGBoost模型训练
考虑到模型的超参数对训练效果的影响,在模型参与大规模训练前,本文选用sklearn包中的组件GridSearchCV进行参数选择。GridSearcgCV是调参利器,只需给定参数范围和小样本数据集,就可对模型在小规模数据集上执行K折验证和参数的网格搜索,找到优质的参数。针对XGBoost,本文随机选取训练样本集中4000条数据作为GridSearchCV的调参样本,执行n = 5的K折交叉验证,对给定范围的参数值打分,最终得到范围内最优参数,见表2。

Table 2. Optimal hyper parameter of XGBoost
表2. XGBoost最优超参数
将表GridSearchCV搜索的最优参数设定为XGBoost模型的训练超参数,然后以1992~2002年的上市公司的42个财务指标特征作为模型输入变量,造假标签“misstate”数据作为模型输出,进行模型训练。
5.2.2. CatBoost模型训练
同样,在CatBoost模型训练前也需要对超参数进行调优。选取4000条数据作为调参样本,执行n = 5的K折交叉验证和打分,得到CatBoost模型的最优超参数,见表3。确定的超参数作为CatBoost模型的训练超参数,然后输入样本进行训练。

Table 3. Optimal hyper parameter of CatBoost
表3. CatBoost最优超参数
5.3. 结果分析
经训练后的模型,在测试集中检验财务造假识别能力。本文首先从效率和精度上,对模型训练的结果分析。表4中模型训练时间显示了XGBoost和CatBoost的模型训练耗时,XGboost用时明显低于CatBoost,因此在训练效率上XGboost模型优于CatBoost模型。同时准确度表现模型在测试集中对财务造假企业的识别能力,在所有的测试集中,经训练的CatBoost模型能够识别约76.5%的财务造假企业,而XGBoost模型能识别出约72.6%的财务造假企业,XGBoost模型的准确率略低于CatBoost模型。

Table 4. Efficiency and accuracy of the model
表4. 模型的效率和精度
其次,对于财务造假识别这一二分类问题,AUC-ROC曲线能够很好地描绘模型的性能,ROC对应的AUC值越高,分类模型做出正确判定的可能性越大,犯错误的概率越小。由图2可知,XGBoost模型AUC为0.61,CatBoost模型AUC为0.63,CatBoost模型性能略强于XGBoost。
综合上述分析,CatBoost模型除了在训练耗时上略长之外,在对财务造假样本的识别方面,准确度和性能上都较优于XGBoost模型。
6. 结束语
针对财务造假识别,本文使用XGBoost和CatBoost这两类boosting方法对比分析。以Yang Bao等整理公布的1990~2014年美国上市公司财务造假数据为基础,划分训练集和测试集,作为两类boosting方法模型的数据源。
在对数据源进行大规模训练前,本文首先随机采样少量数据,运用GridSearchCV预训练模型,对采样数据进行K折交叉验证和网格化参数寻优,找出两类boosting模型的最优初始超参数。然后设定XGBoost和CatBoost模型的初始参数为上述最优超参数,进行大规模训练及测试。结果表明,对于美国上市公司的财务造假识别,两类boosting方法均有良好表现,但CatBoost方法从识别准确度和性能上略优于XGBoost模型。
此外,本文也有一些局限。考虑到政策和经济形势的变化,本文选择了1990~2008年的财务造假数据作为数据源,对于2008之后的数据,两类boosting方法的表现还需进一步研究。在两类模型的超参数选择方面,本文使用随机采样的方式,通过预训练模型进行超参数寻优,有一定的不确定性,仍有一定的优化空间。