摘 要:财务困境预警是通过监测和分析企业的财务状况,及时发现潜在的财务风险,从而为决策者提供及时的警示,以便采取预防或缓解措施,避免或减轻可能的经济损失。本文构建了一种基于卷积神经网络的深度学习网络,将来自上市公司的资产负债表、利润表、现金流量表和股票交易等不同来源的411个指标进行深度融合与压缩,用于财务困境预警。与5种经典机器学习算法在准确率、精准率、召回率、特异度和f1得分等五个评估指标的对比结果显示出本文提出的财务困境预警模型有明显的优势。
关键词:财务困境;卷积神经网络;多源异构数据
一、引言
21世纪是市场经济飞速发展的一个时期,中国经济保持快速增长的态势,各上市公司间的竞争也越发激烈。上市公司的正常运转,无论是对企业、投资者还是政府而言都极其重要。如何准确地对上市公司财务困境进行预警,在风险来临之前进行提示,从而便于上市公司采取有效措施,避免企业出现财务风险,成为上市公司的经营者、投资者和管理者最为关心的课题之一。
自FitzPatrick(1932)首次研究财务困境预测模型以来[1],上市公司财务困境预警一直都是一个热门的研究领域。下面从问题界定、影响因素和模型三个方面对国内外相关研究进行综述。
财务困境的界定。在国内外相关研究中,与“财务困境”类似概念还有“财务危机”“财务失败”“财务恶化”和“财务风险”,它们的基本内容相似,只是表达程度与侧重点有所区别。国外学者一般将企业破产作为企业陷入财务困境的标志[1~2]。因为我国的上市公司到目前为止还没有出现过破产的案例,国内学者在研究财务困境问题时,大都将上市公司因财务状况异常而被宣布为ST作为财务困境的标志[3~4],也有学者将财务困境划分为不同的发展阶段来进行研究[5]。
财务困境预警指标的选择。在研究企业财务困境问题时,大部分研究都基于财务报表来选择预警指标。如:Beaver选取现金流/总负债指标作为预警指标[6];Altman,Haldeman和Narayanan选取净资产收益率、利润稳定性、利息保障倍数、留存收益/总资产、流动比率、普通股收益/总资本建立ZETA模型取得了良好的预测效果[7];OhlSon选取总资产/物价指数、负债比率、营运资金/总资产、流动比率、总资产报酬率、营业现金流量/总资产结合三个虚拟变量(负债、税后净利和净收入变动)构建Logistic模型[8];周首华基于Z模型,考虑现金流量指标,构建了F模型[9];王自强选择了反映企业盈利能力、偿债能力、成长能力、扩张能力以及运营能力的11个指标构建了综合评价指标体系,取得了较为理想的预测效果[10];方匡南选取了偿债能力、成长能力、分红能力、收益质量、现金流量、盈利能力、营运能力、资本结构等共8组90个指标构建了SGL-SVM模型来进行预测研究[11];宋宇利用反映偿债能力、企业规模、盈利能力、经营能力、非财务因素以及宏观环境的38个指标构建了Cox回归模型[12]。也有学者认为非财务因素,如公司治理结构、股权结构、宏观经济因素等,对企业财务状况也存在显著影响,因此在相关研究中纳入了内部经营管理、董事会结构、股权集中度、经济增长、信贷、利率、汇率、经济周期等因素分析企业财务困境问题[13~15]。
财务困境预警模型。如前所述,关于财务困境模型的研究已取得了丰硕的成果。从最简单的单变量判别模型到多元判别模型[1]、多元回归模型[2,16]、Logistic回归[17~18],到贝叶斯决策模型、生存分析[19~20]等,再到机器学习与人工智能模型如神经网络[21~22]、支持向量机[23]、遗传算法、专家系统等。
综上所述,国内外学者从20世纪30年代开始,在指标选取、样本选择和模型构建等方面,对企业财务困境问题进行了较为系统的研究,取得了大量的研究成果。同时也存在一些问题,主要表现在:第一,变量选择不够全面、缺乏客观依据。第二,对数据的时序特征重视不足。现有的大部分研究在构建模型时只是使用了截面数据,忽略了时间序列方面的特征。第三,数据来源较为单一。现有的财务困境研究大都基于企业财务报表这一单一数据来源进行分析研究。第四,卷积神经网络(CNN)、循环神经网络(RNN)、长短期记忆网络(LSTM)等在金融数据分析中有成功应用的方法[24],在财务困境分析中还不多见。
二、财务危机预警模型
本文开发的基于二维卷积神经网络的财务困境预警模型结构如图1所示。综合利用上市公司的资产负债表、利润表、现金流量表、股票交易数据等多种来源数据。对每一来源的数据不做人工筛选,而是利用滑动窗口和二维化技术,形成多个通道的三维数组。利用卷积神经网络里的特点,对输入不同子网络的三维数组进行信息融合与特征提取,最终利用分类器网络预测输出预警状态。
(一)数据预处理
在数据预处理阶段主要是进行滑动窗口数据的标准化变换与二维化变换。股票交易数据和财务报表数据都具有时间序列的特性,即有一定的序列相关性。通常可以设置一个滑动窗口宽度w,在t时刻选择[Xt=xt-w+1,xt-w+2,...,xt]作为时刻的输入特征。选取合适的滑动时间窗口后,将数据在窗口内进行标准化处理,以消除不同变量量纲的影响。本文选择最大最小标准化,计算公式如下:
这里[ε]是事先确定的常数(例如取1),是为了避免在滑动窗口内,最大值与最小值相同,导致分母为零的情形。
进行二维化变换的目的是形成三维数组,以充分利用二维卷积神经网络的信息融合与压缩能力。假设t时刻数据来源1的指标经过标准化处理后为[Xtk,k=1,2,...,N1]。此时,初始化一个[n1×n1]零矩阵[Mt1],这里[n1-12<N1≤n21],按照一定的次序(比如随机次序)将[Xtk]填入[Mt1],就完成了数据的二维化变换。若来源1的滑动窗口宽度为[w1],则[Mt-w+11,...,Mt1]就是图1中维度为的[w1×n1×n1]三维数组。
在t时刻,对每一来源的数据,独立进行上述滑动窗口内的标准化和二维化变换,就完成了t时刻的数据预处理。
(二)卷积神经网络
二维卷积神经网络(CNN)是一种专门用于处理图像数据的深度学习模型。一个典型的卷积神经网络通常由多个卷积层组成。单个卷积层依次通常由卷积函数、激活函数、池化函数依次构成。卷积函数通过卷积核在图像上的卷积运算来提取图像的局部特征。通过控制卷积核的大小和参数,可以起到特征融合与压缩的功能。激活函数通常在卷积函数之后,通过应用非线性激活函数(如ReLU),可以提高模型的表达能力。池化函数主要用于减少特征图的维度,从而减少计算量并提高模型的抽象表达能力,同时在一定程度上消除指标间共线性的影响[25]。另外还可以在卷积函数之后使用BatchNorm正则化等函数,归一化输入特征的分布,从而加快训练过程并提高模型稳定性。
用于分类问题的卷积神经网络最后一层是分类器网络,各个子网络提取的特征会被展平拼接后传递到一个或多个全连接层,用于生成最终的预测结果。
三、财务危机预警模型实证研究
本文从不同来源获取到实证数据,对数据进行预处理后,采用2种不同的卷积神经网络模型设置对上市公司财务危机进行预测,同时使用5种经典机器学习模型进行对比分析,采用预测的准确率、精准率、召回率、特异度和f1得分等评价指标来对所有模型的预测结果进行了对比。
(一)研究样本与数据的选取
1. 数据来源与选择标准
本文数据来源于锐思金融数据库,以1990—2020年沪深A股的上市公司作为研究对象,将上市公司发生财务问题被ST(Special Treatment),即被特别处理作为公司发生财务危机的标志,由于上市公司一旦经历过首次被ST后,其再次发生财务危机或被*ST的概率会增大,因此本文只选用自公司上市以来,首次被ST的上市公司作为财务危机样本。
一家上市公司被判定为ST主要有以下这几个方面:
(1)上市公司连续两个会计年度的财务净利润是负值;(2)上市公司在一个会计年度中每股净资产要低于股票面值,这种情况下无需连续两年;(3)注册会计师对上市公司当年一个会计年度的报告出具无法表示或否定意见的审计报告;(4)上市公司被中国证监会或交易所判断为财务异常。
2. 配对样本的选择
通过对锐思数据库中上市公司数据进行筛选,自1990年开始共有208个上市公司经历过首次被ST,借鉴同类文献通常的做法,本文选用1:3的比例进行正常上市公司的配对。
在选择配对上市公司时,本文遵循以下标准:
(1)为了排除市场经济环境的影响,配对上市公司与发生财务危机的上市公司要属于同一年份;(2)为了能获得配对上市公司三年的数据,配对上市公司需满足已上市三年以上时间,且财务报表与股票数据没有大量缺失值;(3)为了避免行业对上市公司的影响,配对上市公司与发生财务危机的上市公司所属行业需相同;(4)为了增加样本的可比性,配对上市公司与发生财务危机的上市公司资产规模需相同或相近;(5)当以上两个条件无法同时满足时,则配对上市公司从与发生财务危机的上市公司的其他相近行业中选择资产规模相同或相近的上市公司。
3. 特征指标的选取
资产负债表表示各会计期末公司的资产、负债和业主权益的状况,遵守了会计平衡原则,即资产=负债+所有者权益,其指标可以反映公司整体的经营状况,是财务报表中的核心内容。资产负债表可以分为资产、负债、所有者权益这三个方面。在资产负债表中本文共选取了155个指标。
利润表表示各会计期末公司的收入、费用和利润的状况,其指标可以反映公司经营资金流动的状况,称之为资本市场表。从利润表中,可以看出资产负债表的资产和负债结构的好坏。利润表指标可以分为营业总收入、营业支出、营业利润、利润总额、净利润、其他综合收益等几个方面。在利润表中本文共选取了99个指标。
现金流量表表示各会计期末公司的现金变动情况,其指标主要体现的是资产负债表中的各类别指标对公司现金流动的影响,通过分析可以知晓公司在短时间内有无充足的资金去应对支出,评价公司的短期生存能力,揭示内在发展问题。现金流量表指标可以分为经营活动产生的现金流量、投资活动产生的现金流量和筹资活动产生的现金流量等几个方面。在现金流量表中本文共选取了112个指标。
在股票交易数据中本文共选取了收盘价、成交量、流通股周换手率、流通股平均日换手率、每股营业利润和每股营业收入等45个指标。
4. 数据预处理
数据预处理主要包括缺失值异常值的处理、训练样本不平衡的处理以及滑动窗口数据变换。
(1)样本缺失值异常值的处理。对于缺失值,一般可以用所在列的“平均值”“中位数”“众数”进行填补,也可以对缺失数据进行整行删除。但由于本文是以深度学习算法进行建模,是在大数据的基础上进行建模,如果样本量过少,会造成模型精度的降低,所以对于缺失值,本文没有进行删除,而是以样本均值对缺失值进行填补。
(2)训练样本不平衡的处理。使用python中的imblearn模块,利用其over_sampling子模块中的SMOTE类完成算法,实现对不平衡样本的处理。算法中,k_neighbors参数是选择的近邻个数,默认的个数为5个,m_neighbors参数是从近邻样本中挑选的随机样本个数,默认的个数为10个。
(3)滑动窗口宽度设置。由于股票交易数据、资产负债表、利润表、现金流量表的变量特征数分别为45、155、99、112,因此t时刻的数据,按照不同来源转化为[7×7,13×13,10×10,11×11] 的格式。通过对股票数据和财务报表不同滑动时间窗口组合的尝试,本文选取模型效果最优的组合为:股票数据的滑动时间窗口宽度为12,即三个月;财务报表的滑动时间窗口宽度为8,即两年。因此每一子网络输入的数据分别为[12×7×7,8×13×13,8×10×10,8×11×11]的三维数组。
5. 网络结构与训练参数设定
本文构造的财务预警网络模型结构参数见表1所示,子网络1-3的输入分别是三个财务表的滑动窗口数据,采用相同的网络结构参数;子网络4的输入是股票交易的滑动窗口数据,第一层的输入通道数与其他子网络不同。分类器网络是三层的全连接网络。
(二)评估指标
本研究使用准确率(Accuracy)、精确率(Precision)、召回率(Recall)、特异度(Specificity)和[f1]分数来评估对比不同模型的性能表现,计算公式如下:
这里,TP(True Positive)表示模型将正类别的样本正确预测为正类别的样本数量,FP(False Positive)表示模型将负类别的样本错误预测为正类别的样本数量,TN(True Negative)表示模型将负类别的样本正确预测为负类别的样本数量,FN(False Negative)表示模型将正类别的样本错误预测为负类别的样本数量。
(三)模型训练与结果分析
1. 模型训练参数设置
在实证中,为了对比股票交易数据在预警模型中的作用,本文采用两种不同的输入数据来源设置,用CNN1表示只使用财务报表数据的预警模型,CNN2表示同时输入财务报表数据和股票交易数据的模型。在模型训练时,模型优化方式设置为Adam方法,学习率设置为0.0002,batch_size设为32,epochs设为200。
逻辑回归模型使用L2惩罚,参数C设置为0.01;支持向量机模型参数C设置为0.8,gamma设置为0.001;决策树模型max_depth设置为4,max_leaf_nodes设置为500;随机森林模型n_estimators设置为100,max_depth设置为2;AdaBoost模型n_estimators设置为60,learning_rate设置为0.1。
2. 结果分析
考虑到我国上市公司中,正常公司的数量要远远大于被ST的公司数量,巨大的样本差异会使分类样本数据非平衡化。针对不平衡数据,本文使用两种不同的处理思路进行了实证分析。
首先,使用各个模型自带的权重平衡参数设置,不对数据做额外平衡处理。机器学习模型设置参数class_weight='balanced',CNN1和CNN2模型损失函数的weight参数。从表2的预测结果对比可以看出,使用股票交易指标可以大幅度提高预警模型的准确率、精确率、召回率、特异度和f1得分。在所有模型的比较中,除了精确率指标外,CNN2都是表现最优的模型(AdaBoost模型全部预测为没有发生财务困境,直接淘汰)。
其次,使用处理不平衡数据集的常用方法SMOTE算法。使用python中的imblearn模块,利用其over_sampling子模块中的SMOTE类完成算法。在此算法中,k_neighbors参数是选择的近邻个数,默认的个数为5个,m_neighbors参数是从近邻样本中挑选的随机样本个数,默认的个数为10个。从表3所示的对比结果可以看出,使用SMOTE算法平衡处理后的数据,对传统机器学习模型进行训练,均能大幅度提升模型的各个评估指标表现。在所有模型中表现最好的是支持向量机。
综合对比两种不同场景下的测试结果,可以看出使用原始数据训练的CNN2模型具有最高的召回率和f1分数,同时准确率、特异度与表3的最优算法相差不大。考虑到SMOTE算法有可能引入额外噪声信息,综合来看,在进行上市公司财务困境预警时应当优先使用CNN2模型。
四、总结
针对上市公司财务困境预警,本文提出了一种数据预处理方法和二维卷积神经网络结构。对不同来源的数据指标,通过滑动窗口内的标准化和二维化变换进行预处理,之后输入不同的二维卷积子网络完成特征提取和压缩融合,最终使用分类器网络输出预测结果。实证结果显示出股票交易指标对财务困境预警有明显的辅助作用,同时本文提出的财务困境预警模型对比传统机器学习算法具有明显的优势。
参考文献:
[1] FITZPATRICK P J. A Comparison of the Ratios of Successful Industrial Enterprises with those of Failed Firms[J].Certified Public Accountant, 1932,2(2):589-731.
[2] ALTMAN E I. Financial Ratios,Discriminant Analysis and the Prediction of Corporate Bankruptcy[J].Journal of Finance,1968,23(4):589-609.
[3] 李万福,林东杰,林斌.内部控制能有效规避财务困境吗?[J].财经研究,2012,38(1):124-134.
[4] 戚家勇,蔡永斌.房地产上市公司财务风险评价研究[J].财会通讯,2018(26):114-118.
[5] 吕长江,赵岩.上市公司财务状况分类研究[J].会计研究,2004(11):53-61+97.
[6] BEAVER W H.Financial Ratios as Predictors of Failure[J].Empirical Research in Accounting: Selected Studies,1967,1(1):71-111.
[7] ALTMAN E I,HALDEMAN R,NARAYANAN P.Zrta Analysis: a New Model to Identify Bankruptcy Risk of Corporations[J].Journal of Banking & Finance,1977.
[8] OHLSON J A.Financial Ratios and the Probabilistic Prediction of Bankruptcy[J].Journal of Accounting Research,1980,18(1):109-131.
[9] 周首华,王平,杨济华.论财务危机的预警分析——F分数模式[J].会计研究,1996(8):8-11.
[10] 王自强,陈旭,范贻昌.基于可拓方法的ST公司财务危机预警模型研究[J].数学的实践与认识,2006(8):44-51.
[11] 方匡南,杨阳.SGL-SVM方法研究及其在财务困境预测中的应用[J].统计研究,2018,35(8):104-115.
[12] 宋宇,李鸿禧,秦学志.基于Cox回归的中小企业财务预警模型及实证[J].管理现代化,2019,39(1):108-110.
[13] 姜秀华,孙铮.治理弱化与财务危机: 一个预测模型[J].南开管理评论,2001(5):19-25.
[14] 王克敏,罗艳梅.中国上市公司对外担保与财务困境研究[J].吉林大学社会科学学报,2006(5):106-113.
[15] 黄晓波,王慧.从公司治理视角看农业上市公司财务风险[J].财会月刊,2017(2):47-54.
[16] 陈静.上市公司财务恶化预测的实证分析[J].会计研究,1999(4):32-39.
[17] 鲜文铎,向锐.基于混合Logit模型的财务困境预测研究[J].数量经济技术经济研究,2007(9):68-76.
[18] 梁琪,石宁,过新伟.基于随机效应logistic模型的中小企业财务失败预警研究[J].管理工程学报,2014,28(3):126-134.
[19] LANE W R,LOONEY S W,WANSLEY J W.An Application of the Cox Proportional Hazards Model to Bank Failure[J].Journal of Banking & Finance,1986,10(4):511-531.
[20] 陆志明,姜丽莉,何建敏.基于生存分析模型的企业财务困境预测[J].统计与决策,2007(21):174-176.
[21] 杨淑娥,黄礼.基于BP神经网络的上市公司财务预警模型[J].系统工程理论与实践,2005(1):12-18+26.
[22] 庞清乐,刘新允.基于蚁群神经网络的财务危机预警方法[J].数理统计与管理,2011,30(3):554-561.
[23] 朱发根,傅毓维,刘拓.基于非线性SVM的上市公司财务危机预警模型研究[J].统计与信息论坛,2009,24(6):49-53.
[24] 麻斯亮,魏福义.人工智能技术在金融领域的应用: 主要难点与对策建议[J].南方金融,2018(3):78-84.
[25] 袁铭阳,周长胜,黄宏博,等.卷积神经网络池化方法综述[J].Software Engineering and Applications,2020(9):360.
基金项目:国家社会科学基金项目资助“基于人工智能与多源异构数据的上市公司财务困境预警研究”(19BTJ030)
作者简介:张志刚(1975— ),男,河北保定人,湖北经济学院教授,博士,研究方向为机器学习、深度学习、应用统计;张耀峰(1979— ),男,河北承德人,湖北经济学院教授,博士,研究方向为大数据技术及应用、社会计算。