基于XGBoost算法的上市公司财务风险预警研究
Research on Early Warning of Listed Corporate Financial Risk Based on XGBoost Algorithm
DOI: 10.12677/fin.2025.152043, PDF, HTML, XML,    科研立项经费支持
作者: 朱顺泉:广州华商学院数字金融学院,广东 广州
关键词: XGBoost算法上市公司财务预警应用XGBoost Algorithm Listed Companies Financial Early Warning Application
摘要: 在当今的大数据和人工智能时代,机器学习在企业财务预警领域应用是热门的话题,而XGBoost算法是最重要的机器学习方法之一。论文在回顾上市公司财务预警相关研究的基础上,由于传统统计方法、神经网络法、决策树和GBDT算法在财务预警方面存在运行效率低、计算速度慢、学习效率低、缺乏交叉验证、过拟合、无自动筛选、预测精度低等方面的问题,提出基于机器学习的XGBoost算法建立了中国上市公司的财务预警模型。结果发现:XGBoost算法对中国上市公司的财务预警有较好的识别,具有广泛的适用性和推广价值。论文丰富了传统的公司财务预警方法,提供了公司财务预警的新思路。
Abstract: In today’s era of big data and artificial intelligence, the application of machine learning in the field of enterprise financial early warning is a hot topic, and the XGBoost algorithm is one of the most important machine learning methods. Based on a review of relevant research on financial distress prediction for listed companies, this paper proposes the establishment of a financial distress prediction model for Chinese listed companies using the XGBoost algorithm, which is rooted in machine learning. This proposal arises due to the shortcomings of traditional statistical methods, neural networks, decision trees, and the GBDT algorithm in financial distress prediction, such as low operational efficiency, slow computation speeds, poor learning efficiency, lack of cross-validation, overfitting, absence of automatic feature selection, and low prediction accuracy. The result shows that: XGBoost algorithm has a good identification of the financial warning of Chinese listed companies and has a wide applicability and promotion value. The paper enriches the traditional company financial warning method and provides the new idea of company financial warning.
文章引用:朱顺泉. 基于XGBoost算法的上市公司财务风险预警研究[J]. 金融, 2025, 15(2): 415-422. https://doi.org/10.12677/fin.2025.152043

1. 研究背景与意义

近年来,公司财务预警受到了学术界、金融财务实业界和政府部门的广泛关注。作为金融市场的一个重要领域,资本市场在我国发展了近二十年,股票、债券、基金、衍生品等各种投资方式已经逐渐被社会大众所接受,但资本市场的不规范现象十分严重,上市公司财务造假、上市圈钱、损害金融机构和股民利益的情况屡禁不止,上市公司因财务状况异常而被特别处理的现象屡见不鲜。因此,如何应用先进、科学的方法对上市公司进行财务预警,营造公平竞争的市场环境,规范和加强企业财务分类监管,关系到我国资本市场的健康发展。在大数据的背景下,传统的财务预警法如统计与BP神经网络等分类方法难以解决运行效率低、计算速度慢、学习效率低、缺乏交叉验证、容易产生过拟合、无自动筛选、预测精度低等方面的问题,对于复杂的资本市场则需要探索新的财务预警方法——基于XGBoost算法的财务预警方法来解决上述诸方面的问题,以提高财务预警的速度和质量。因此,本文的研究不但可以丰富传统的财务预警理论与方法,而且对广大的投资者、企业经营者、政府管理部门和资本市场的健康发展有着重要的意义,财务预警的质量将直接影响着风险防范与成本费用控制等,对金融监管部门、商业银行、投资银行、基金公司、保险公司等金融机构、上市公司的生存发展产生重要的影响。

2. 文献综述

国外对于上市公司财务预警的研究,大致经历了以下几类:(1) 定性分析法;(2) 统计分析法;(3) 神经网络法;(4) 基于市场价值的KMV方法。(1) 定性分析法,主要是5C要素分析法和LAPP原则,5C要素分析法主要从Character品格、Capacity能力、Capital资本、Collateral担保、Condition环境等5个方面来分析财务状况;LAPP原则主要从Liquidity流动、Activity活动、Profitability盈利、Potentialities潜力等4个方面分析财务状况。除此之外还有杜邦财务分析体系和沃尔比重分析法等,这些方法的缺点是:主观性较强,受人的主观影响大,为了克服定性分析能力差,缺乏整体概括、定量分析不足等问题,国外从20世纪60年代开始,普遍采用了统计分析法。(2) 统计分析法,Beaver (1966)以企业的29个财务指标建立指标体系,通过该指标体系分析企业违约状况,发现财务指标是影响企业违约的重要因素[1]。但是,统计法对数据要求严格,如:数据要服从多元正态分布、变量间不存在多重共线性、配对样本协方差矩阵应相同等等,而现实中的数据难以满足这样的要求。因此,后续学者采用Logistic等方法建立模型,Ohlson (1980)利用Logit回归模型预测企业违约概率,发现在样本数量比较多时,财务指标对预测具有一定的可信度[2]。(3) 神经网络法,20世纪80年代末和90年代初,随着信息技术的发展,神经网络方法引入了信用评级,并且它能解决非正态分布、非线性的信用分类问题,但它难以解决小样本数据、局部极小点、高维数、函数逼近与分类能力弱、学习速度慢等问题。(4) 市场价值KMV法,20世纪90年代后期出现了许多新的财务分类模型,最具代表性的有:KMV公司开发的KMV模型与JPMorgen银行1997年在VaR模型的基础上建立的CreditMetrics模型。但CreditMetrics模型有很多参数需要确定,如等级迁移矩阵、资产之间的相关系数、远期收益率等,这些参数来自长时期统计数据积累,目前中国大陆还少有类似的统计资料。我国学者对财务预警的研究,是从20世纪90年代中后期开始的。朱顺泉(2009)应用期权定价方法对上市公司财务分类问题进行了初步研究[3]。孙林(2022)基于一般均衡分析模型,论述发债企业经济类型、行业属性、业务开展情况等对债券违约的影响。然后基于2014~2020年我国上市公司财务数据构建三组面板数据模型,发现企业杠杆水平、多元化经营和行业差异等指标对企业债券违约率存在显著影响,高杠杆和多元化经营策略会不同程度削弱发债企业主营业务竞争力对债券违约的抑制效果[4]。在运用Logistic模型方面,程昊(2020)基于企业内外部风险影响因素,构建风险识别指标体系,使用Logistic模型识别债券违约现象,效果较好[5]。在Z-score模型运用方面,何鑫超(2022)通过紫光集团财务状况和Z值检测证明了紫光集团在发生违约前就具有很高的债券违约风险[6]。黄卿(2018)等人采用沪深300股指期货1分钟高频数据为研究对象,对比了SVM、XGBoost和神经网络模型的预测性能,研究结果表明,XGBoost算法在预测准确率上表现最为出色[7]。唐一峰(2021)以贷款发放时间、债务收入比、信贷周转余额、分期付款金额等因素作为评价指标,并利用AUC值作为评价指标进行对比分析,比较分析XGBoost和LightGBM算法在贷款违约预测中的效果。研究发现,在预测准确性方面,XGBoost算法略胜一筹[8]。黄颖和杨会杰(2021)聚焦于黄金价格的涨跌趋势预测,利用XGBoost算法进行特征优化,并与LSTM算法进行了对比[9]。王怡宁(2021)将高频数据作为研究对象,并得出结论:高频因子在XGBoost算法预测中展现出更高的准确度[10]

综上所述,对财务预警的研究,基本上都是经典的、定性分析、统计分析和神经网络方法来完成的,这些方法难以解决运行效率低、计算速度慢、学习效率低、缺乏交叉验证、过拟合、无自动筛选、预测精度低等方面的问题,对于复杂的金融市场则需要探索新的财务预警方法来解决这些问题。而基于统计学习理论的XGBoosts算法来建立财务预计建模,能够有效解决运行效率低、计算速度慢、学习效率低、缺乏交叉验证、过拟合、无自动筛选、预测精度低等方面的问题,因此,本文在继承和综合国内外现有研究成果的基础上,试图以Wind上市公司财务指标数据库为数据样本,将XGBoosts算法应用于上市公司的财务预警建模,并进行应用研究。

3. XGBoosts算法及优势分析

3.1. XGBoost算法

XGBoost是eXtreme Gradient Boosting的简称,即扩展梯度提升算法,是GBDT (Gradient Boosting Decision Tree)的拓展和改进,由学者陈天奇在2014年首次提出。基础理论是Gradient Boosting模型,XGBoost每一步迭代都产生一个弱预测模型,然后加权累加到总模型中,然后每一步弱预测模型生成的依据都是损失函数的负梯度方向,这样若干步以后就可以达到逼近损失函数局部最小值的目标。它的基学习器除了可以是决策树,也可以是线性分类器。这里主要以决策树为基学习器进行分析。

基本的决策树模型表达式为: y ^ i = k=1 k f k ( x i ) , f k U ,式中 U={ f( x )= w q( x ) }, f k 代表着不同的决策树,U则为所有的决策树集合,w为每一颗决策树对应的叶子权重,q为对应的树结构。目标函数包括两部分: obj= i=1 n l( y i , y ^ i ) + k=1 k Ω( f k ) ,式中,第一部分 l 是预测值 y ^ i 和目标真实值y之间的误差,第二部分是每颗决策树的复杂度的总和。该公式决策树模型中的目标函数无法用随机梯度下降GSD等传统方法优化,所以采用boosting方式训练,即每一次都在保留原模型上添加一个新函数 f t ( x i ) 。选择在每一轮加入新函数是为了尽可能地让目标函数最大程度的减小。通过 f t 可以优化这个目标函数,当误差函数 l 是平方误差时,可以直接改写目标函数;若是非平方误差的其他行数,则可以用泰勒展开获得近似的目标函数,移除常数项后,和是平方误差时的目标函数统一,即: L ˜ ( t )= i=1 n [ g i f t ( x i )+1/ 2 h i f t 2 ( x i ) ] +Ω( f t )

3.2. XGBoost算法优势分析

和传统的统计方法、神经网络法、决策树和GBDT算法等相比,当数据量比较大时,计算速度会很慢,XGBoost改进了算法,并且调用CPU进行并行的多线程计算,引入了正则化项,在提高了计算速度的同时也可以提升精度。比较而言,XGBoost有如下的优点:(1) 并行多线程计算:我们知道,传统决策树最耗时的步骤是对特征值进行排序。虽然Boosting算法都是顺序处理的,但XGBoost在迭代之前,先存为block结构进行预排序,然后在之后的每次迭代中重复使用该结构,降低了模型的计算总量,XGBoost的并行处理相比GBDT模型大大提高了运算能力。(2) 开放性:用户可以在使用XGBoost模型时自行定义优化标准和目标,减少了使用模型时受到的限制。(3) 缺失值处理:当样本存在缺失值时,XGBoost能自动学习分裂方向,同时在未来处理缺失值时可应用该处理方法。(4) 提高学习效率:XGBoost在每次迭代之后,会为叶子结点分配学习速率,减少每棵树的影响,降低每棵树在模型中的权重,为后面深度算法学习提供更好的空间。(5) 正则化:在GBDT模型中,没有正则化,导致模型的过拟合度偏高,而XGBoost模型在处理时会引入正则项,提升算法结果的正则化,减少了算法的过拟合现象。(6) 交叉验证:方便选择最好的参数,比如你发现30棵树预测已经很好了,不用进一步学习残差了,那么停止建树;(7) 列抽样:XGBoost借鉴随机森林的做法,支持列抽样,这样不仅能防止过拟合,还能降低计算。

4. 变量选择与建模样本

在WIND财务分析指标中,从盈利能力(30)、收益质量(5)、资本结构(17)、偿债能力(31)、营运能力(13)、现金流量(11)六个维度方面选取了107个财务指标变量。在使用传统的逻辑回归方法构建财务预警模型时,如果自变量较多,不需将全部的自变量加入到分析模型中进行拟合训练,可以先对自变量集合进行筛选,挑选一些合适的自变量放入模型。一般通过以下几个因素进行筛选:变量的预测能力、变量的鲁棒性(即变量健壮性Robust,数值长时间保持相对稳定)、变量的简单性(易于获得和使用)、变量的易理解性等。XGBoost算法具有自动筛选自变量的功能,只需把自变量放进模型里,会自动选出有用的自变量。通过使用XGBoost算法的训练结果发现:XGBoost算法里使用了大于5次的特征有这些指标:主营业务比率、留存收益占总资产比率、EBITDA占营业总收入比率、净资产收益率(加权)、CRGS占营业收入比重、长期总策适合率、净资产收益率(扣除/平均)、营运资本占总资产比率、资本固定化比率、NOCF占非流动负债比率、销售毛利率、有形净值债务率等,说明这些特征重要性比较高(注:这里EBITDA是息、税、折旧及摊销前利润,NOCF是经营活动产生的现金流量净额,CRGS是销售商品提供劳务收到的现金)。

将WIND财经数据库中未被ST的股票共2028家、经筛选过后的ST股票共127家,总计2155个样本随机打乱,然后按照7:3的比例划为训练集和测试集,其中训练集1508个,测试集647个。

如果将已经实际发生财务困境的年度定义为T年,那么ST公司的T-3的财务信息作为研究的样本,即若2018年被ST的公司,则选择2015年的财务信息数据作为X数据。非ST公司选择2015年的财务数据作为X数据。Y的定义,ST为1,非ST为0。

5. XGBoost模型的迭代与优化参数

通过不断迭代和优化,最终得到一个效果比较好和稳定的XGBoost模型,该模型的具体参数如下:

model = XGBClassifier (learning_rate = 0.05, n_estimators=42, max_depth = 3, min_child_weight = 1, gamma = 0, subsample = 0.6, colsample_bytree = 0.9, objective = 'binary: logistic', nthread = 4, scale_pos_weight = 1)

model.fit (train. iloc [:, 1:], train ['y'], eval_metric = "auc", eval_set = eval_set, verbose = True)

learning_rate:学习率,控制每次迭代更新权重时的步长,默认0.3。值越小,训练越慢。典型值为0.01~0.2;

n_estimators:总共迭代的次数,即决策树的个数,论文用了42棵决策树;

max_depth:树的深度,值越大,越容易过拟合;值越小,越容易欠拟合。这个参数的取值最好在3~10之间。本文选取值为3;

min_child_weight:叶子节点最小权重,值越大,越容易欠拟合;值越小,越容易过拟合(值较大时,避免模型学习到局部的特殊样本)。本文选了一个比较小的值1,因为这是一个极不平衡的分类问题。因此,某些叶子节点下的值会比较小;

gamma:惩罚项中叶子结点个数前的参数,起始值也可以选其它比较小的值,本文选0;

subsample:0.6,随机选择60%样本建立决策树;

colsample_bytree:0.9,随机选择90%特征建立决策树;

objective:'binary: logistic',定义学习任务及相应的学习目标,本文选取的目标函数二分类的逻辑回归问题,输出为概率;

nthread:这个参数用来进行多线程控制,应当输入系统的核数,如果希望使用cpu全部的核,就不要输入这个参数,算法会自动检测;

scale_pos_weight:在各类别样本十分不平衡时,把这个参数设定为一个正值,可以使算法更快收敛;

其它参数均使用默认参数。

6. 基于XGBoost模型的上市公司财务预警结论

6.1. AUC评价角度的研究结论

机器学习实践中分类器常用的评价指标就是AUC,AUC值的含义是:如果一个分类器能输出得分score,调整分类器的阈值,把对应的点画在图上,连成的这条线就是roc,曲线下的面积就是AUC。

首先AUC值是一个概率值,当随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的score值将这个正样本排在负样本前面的概率就是AUC值。当AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好地分类。

计算出训练集和测试集按逻辑回归以及XGBoost模型分别的AUC值,结果如表1

Table 1. AUC values of the training and test sets of T-3 data via logistic regression and XGBoost

1. T-3数据训练集和测试集经由逻辑回归和XGBoost的AUC值

AUC

逻辑回归

XGBoost

train

0.888

0.958

test

0.899

0.94

表1可以看出:(1) XGBoost的AUC值即便在结果较差的测试集也高达94%,这说明利用XGBoost模型进行预警可以取得很好的效果;(2) XGBoost模型的AUC无论是训练样本还是测试样本,都远远大于逻辑回归模型的AUC值;(3) XGBoost的训练和测试样本的AUC相差不大,说明模型很稳定,没有过拟合情况。

6.2. 精确率和召回率评价角度的研究结论

通过混淆矩阵计算出来的不仅是AUC,还有精确率和召回率等可用来评判模型的好坏。我们定义:TP:样本为正,预测结果为正;FP:样本为负,预测结果为正;TN:样本为负,预测结果为负;FN:样本为正,预测结果为负。则精确率(precision):TP/(TP + FP),正确预测为正占全部预测为正的比例;召回率(recall):TP/(TP + FN),正确预测为正占全部正样本的比例。

当评价ST时,精确率(precision)表示在预测为ST的样本中,真正是ST的样本所占的比例。召回率(recall)表示所有真正是ST的样本中,预测为ST所占的比例。

当评价非ST时,精确率(precision)表示在预测为非ST的样本中,真正是非ST的样本所占的比例。召回率(recall)表示所有真正是非ST的样本中,预测为非ST所占的比例。

以预测概率0.4为阈值,超过0.4预测为ST公司,其他的预测为非ST公司。

逻辑回归和XGBoost的精确率与召回率的结果分别如表2表3所示。

Table 2. Accuracy and recall of logistic regression results for T-3 data

2. T-3数据逻辑回归结果的精确率和召回率

预测真实

非ST

ST

recall

非ST

2016

30

0.99

ST

84

43

0.34

precision

0.96

0.59

Table 3. Accuracy and recall of the XGBoost model results for the T-3 data

3. T-3数据XGBoost模型结果的精确率和召回率

预测真实

非ST

ST

recall

非ST

2016

12

0.99

ST

69

58

0.46

precision

0.97

0.83

表2表3可见:(1) 从模型的评价指标来看,XGBoost模型对于样本数据在AUC、精确率、召回率三个评价指标都要优越于逻辑回归的结果,模型预测的结果也更为精确;(2) XGBoost模型预测ST的精确率0.83远大于逻辑回归的精确率0.59;(3) XGBoost模型预测ST的召回率0.46远大于逻辑回归的召回率0.34。

6.3. 数据时间维度对于结果影响的研究结论

从逻辑上,越接近企业财务异常年度,企业经营往往已经开始出现问题,数据通常越糟糕,也越能反映企业的经营状况趋于恶化,而偏离企业出现问题的年份越久远,企业往往还没意识到经营状况或者外部坏境的恶化,预警指标也不能显著揭露风险,所以可以理解T-3的数据预测显著性要好于T-4或者更早的数据。

以T-4数据为例,其分别采用逻辑回归模型和XGBoost模型结果的评价指标情况如表4~6

Table 4. AUC values for the T-4 data using logistic regression and XGBoost-model results

4. T-4数据用逻辑回归和XGBoost模型结果的AUC值

AUC

逻辑回归

XGBoost

train

0.822

0.915

test

0.789

0.864

Table 5. Accuracy and recall of logistic regression results for T-4 data

5. T-4数据逻辑回归结果的精确率和召回率

预测真实

非ST

ST

recall

非ST

2018

10

0.995

ST

100

27

0.21

precision

0.95

0.73

Table 6. Accuracy and recall of the XGBoost model results for the T-4 data

6. T-4数据XGBoost模型结果的精确率和召回率

预测真实

非ST

ST

recall

非ST

2014

14

0.99

ST

79

48

0.38

precision

0.96

0.77

从上面的数据分析结果来看,在AUC、精确率和召回率三个评价指标方面,T-4的数据的有效性和显著性要远落后于T-3数据,T-4数据相比T-3数据预测结果不足以推断企业T年的财务风险状况,继而也无法去可靠地分析企业T年被出现财务危机的可能性。

基金项目

本研究为广东省重点建设学科科研能力提升项目(项目编号2024ZDJS113);广州华商学院应用型示范专业–金融科技专业建设项目HS2024SFZY08;广州华商学院金融科技专业核心课程教研室建设项目HS2024ZLGC43等阶段性成果。

参考文献

[1] Beaver, W.H. (1966) Financial Ratios as Predictors of Failure. Journal of Accounting Research, 4, 71-111.
https://doi.org/10.2307/2490171
[2] Ohlson, J.A. (1980) Financial Ratios and the Probabilistic Prediction of Bankruptcy. Journal of Accounting Research, 18, 109-131.
https://doi.org/10.2307/2490395
[3] 朱顺泉. 基于期权定价理论的上市公司信用分类建模及应用研究[J]. 统计与信息论坛, 2009, 24(7): 23-38.
[4] 孙林, 孙健. 上市公司债券违约的影响因素分析——基于企业财务杠杆和多元化经营的研究[J]. 上海金融, 2022(11): 2-11
[5] 程昊, 朱芳草, 等. 我国债券违约风险评估模型的构建与应用[J]. 开发性金融研究, 2020(6): 76-89.
[6] 何鑫超. 企业债券违约成因及风险防范[D]: [硕士学位论文]. 昆明: 云南财经大学, 2022
[7] 黄卿, 谢合亮. 机器学习方法在股指期货预测中的应用研究-基于BP神经网络、SVM和XGBoost的比较分析[J]. 数学的实践与认识, 2018, 48(8): 297-307
[8] 唐一峰. 基于XGBoost算法和LightGBM算法的贷款违约预测模型研究[J]. 现代计算机, 2021, 27(32): 33-37
[9] 黄颖, 杨会杰. 基于XGBoost和LSTM模型的金融时间序列预测[J]. 科技和产业, 2021, 21(8): 158-162
[10] 王怡宁. 基于XGBoost的高频交易选股研究[D]: [硕士学位论文]. 上海: 东华大学, 2021.