摘要:近年来,城投公司由于债务规模增长较快,导致地方政府性债务的系统性风险开始积聚。因此,财务预警对于城投公司具有重要的意义。本文以人工神经网络中的BP神经网络作为主要工具,构建出一个适合我国城投公司且具有实用价值的财务预警模型。同时,模型对总体样本预测的正确率为78.15%,说明模型的整体预测效果比较理想,可以为城投公司管理人员提供一种合理有效的解决方案。
关键词:人工智能;BP神经网络;城投公司;财务预警
一、BP神经网络概述
BP神经网络,全称误差反向传播的前馈型神经网络(ErrorBackpropagationNeuralNetwork,是目前应用最广泛、发展最成熟的人工神经网络。BP神经网络最重要的特点是采用误差反向传播算法进行学习。模型通过正反两个方向进行信息传递,其中,数据的传播路径是正向的,即从输入层经过隐含层到输出层,但训练结果与目标的误差是反向传播的,即输出层反向经过隐含层到输入层。随着学习的不断深入,可以实现不断减少输出误差的目的。
二、财务预警体系的构建
(一)预警指标的选择和优化
本文根据城投公司的经营特点和财务特色,从偿债能力、盈利能力、资产营运能力、发展能力四个评价维度选择了25个财务指标。将全国范围内650家城投公司2019年度的25个财务指标数据导入SPSS进行KMO和巴特利特球形检验,得到KMO值为0.637、巴特利特球形检验的Sig值为0,符合因子分析的条件进一步的,将上述财务指标数据进行主成分分析后,确定了预警体系评价指标的主成分数量为9个。随后,通过三轮因子分析,可以确定9个主成分的构成方法(见表1),实现了企业的偿债能力、盈利能力、营运能力、发展能力四个评价维度的全覆盖,具有一定的科学性、合理性。
(二)样本与预测周期
本文分析采用的数据样本为全国范围内随机筛选出的650家城投公司2019年和2018年的各项财务指标数据。财务风险预警属于信用风险评价的一个分支,信用风险评价一般注重于短期的评估,通过以一年为评估的时间段。同时,由于城投公司短期流动资金规模和按年付息压力的存在,以短期一年的跨度来界定预测周期较为合理。因此,本文的预测周期为1年。
三、财务预警模型的设计
(一)网络拓扑结构设计
1.输入层节点数输入层神经元节点数的确定方法相对较为简单,一般采用样本的属性个数作为节点数。由于本文的研究对象为650家城投公司的9个具有代表性的主成分,因此本次建模输入层节点数为9。2.输出层节点数输出层神经元节点数取决于输出数据的定义属性或标签。根据作者从业中的实际经验来看,一般公司管理者对公司是否出现财务风险的判断分为两种,一种为正常,意味着公司经营稳健,短期内不会发生显著的财务风险,暂时不需要采取相应的措施;另一种为预警,意味着公司的各项财务指标出现了明显的恶化或发生了风险事件,比如公司自身的财务数据发生的重大变动、被评级公司下调信用评级、被证监会等监管机构提示暂停上市交易的警告或者发布了相关负面新闻等,当然,有些事件可能最终对公司不会造成实质性的影响,但是从公司管理者的角度来说,有必要对相关事件高度重视,深入分析事件发生的原因,以便于采取进一步的行动来控制财务风险,避免出现财务风险。因此,本文建模输出层节点数为2,对应“正常”、“预警”两种情况。输出层除了需要确定节点数,还需要将期望输出结果录入模型,以便于模型将实际输出与期望输出的误差进行前向反馈从而提高模型预测的准确率。作者将输出为正常的样本输出值定义为0,将输出为预警的样本输出值定义为1。由于财务预警模型是针对未来的预警,而样本是城投公司2018年度和2019年度的主成分,因此,输出值应采用次年度(即2019年度和2020年度)是否发生财务预警事项来进行分类。财务预警事项一般分为内部因素和外部因素,内部因素一般通过各类财务指标反映。通过上文确定的9个主成分F1~F9,根据各成分中组成部分的各项财务指标代表的经济意义可以分析出,F1、F2、F8、F9与财务风险呈负相关,即数值越低,财务风险越大,经济学上的意义为流动资产覆盖负债的水平、投资盈利能力、利润对利息费用的覆盖程度、资产营运能力越低,财务风险越高;F3、F5、F6与财务风险呈正相关,即数值越高,财务风险越大,经济学上的意义为负债与资产的比重、间接费用对利润的侵蚀程度、投资支出的现金流量越大,财务风险越高;F4、F7比较特殊,如果值为负数,表示业务发展呈现负增长或者现金不足以支付到期债务,这些都是财务风险的潜在表现。外部因素一般通过信用评级机构等外部机构的信息反映。比如评级机构下调公司的信用评级等级将或评级展望调整为负面、跟踪评级报告因故延期揭露、监管机构发布了暂停上市的风险提示公告、公司被司法机关列入失信被执行人名单,这些负面事件的出现都反映了公司发生风险隐患的可能性大幅提高。本文采用内部因素和外部因素相结合的方法来判断公司是否会出现财务风险,只要出现内部因素或外部因素任何一种因素即认定次年会出现财务风险,其中内部因素的判断依据为:F4、F7同时小于0且F1、F2、F3、F5、F6、F8、F9中同时有5个及以上数值排名在50%以下;外部因素的判断依据为:次年评级下调或评级展望为负面、跟踪评级报告因故延期揭露、被监管机构发布暂停上市的风险提示公告、被司法机关列入失信被执行人名单四种情况出现任何一种情形。具体分类标准见表2。3.隐含层层数对于一般简单的数据集,通常采用一或两层隐含层;对于涉及时间序列或计算机视觉的复杂数据集,则需要额外增加隐含层数。因此,本文模型的隐含层层数设为1。4.隐含层节点数根据确定隐含层神经元节点数的经验公式(其中为输入层节点数):Nh=log2Ni可以确定,Nh的取值为4,因此,输入层节点数确定为4。5.传递函数传递函数是BP网络的重要组成部分,实践中通常采用Sigmoid函数或线性函数作为传递函数。Log-Sigmoid函数(简称logsig函数)的输入值可取整个实数集,输出值在0和1之间。Log-Sigmoid函数公式定义为:线性函数则比较简单,输出值与输入值相等,函数图像是一条直线。由于本次财务预警模型的期望输出结果为0或1,因此,选择Sigmoid函数将输出结果映射在-1到1的区间内比较合适。经过作者的多次实践,隐含层的传递函数选择logsig函数,输出层的传递函数选择tansig函数,可以尽可能实现准确的期望输出。6.训练函数BP神经网络的训练函数比较丰富,常用的有trainbgf(BFGS拟牛顿法)、traingdm(带动量的最速梯度下降算法)、trainlm(Levenberg-Marquardt算法的变梯度反向传播算法)、trainscg(采用量化共轭梯度算法的变梯度反向传播算法)等。由于Levenberg-Marquardt算法收敛速度最快,均方误差也较小,因此,trainlm函数的使用最为广泛。本文模型的训练函数也选择trainlm函数。7.其他参数BP神经网络各种参数的设定没有固定的规则可循,只能参照专家意见或个人经验。经过多次实践,本文模型各项参数设定的值见表3。
(二)数据训练与测试
由于隐含层和输出层的传递函数均为Sigmoid函数,取值为-1到1的区间内,Matlab软件采集到的样本所包含的9个特征值(具体为9个与财务指标相关的主成分)的各数据单位存在不一致,如果直接把样本输入模型,过大或者过小的极端值很可能会导致Sigmoid函数进入平坦区,全部趋近于-1或者1,最终造成隐含层和输出层的输出全部趋向相同的值,因此,需要对所有样本的输入数据进行归一化处理。另外,由于期望输出值为0或1,因此,样本的输出数据无须进行归一化处理。Matlab软件内置的神经网络工具箱使用最大最小法进行数据归一化,通过Matlab软件提供的最新版本的归一化函数mapminmax对数据进行归一化后,减少了BP神经网络的运行时间,同时网络更容易收敛到正确的最优解。函数公式定义如下:其中:Inputi为输入的任一样本值,Inputmax为输入样本中的最大值,Inputmin为输入样本中的最小值。Matlab软件在R2007b版本之后对神经网络工具箱进行了更新,将BP神经网络的调用函数由过去的newff函数更换成了feedforwardnet函数,newff函数虽然仍可以调用,但是已经不被Matlab官方所推荐,feedforwardnet函数调用格式如下:net=feedforwardnet(hiddenSizes,trainFcn)其中,hiddenSizes为隐含层节点数,默认值为10,trainFcn为训练函数,默认值为trainlm。BP神经网络的算法决定网络运行时第一次迭代使用的连接权值是随机生成的,造成模型的运行结果具有随机性和不可重现性,为了避免极端的随机值造成模型的输出结果出现偏差,可以通过循环语句进行模型的重复多次运行,统计出平均正确率。得力于现代计算机的极高的运行速度和计算效率,作者将模型的重复运行次数设定为30次。实现的代码见附录。值得注意的是,由于BP神经网络的输出值是传递函数区间内的实数集中的任一实数,因此,需要将实际输出结果量化为期望的输出结果0或1,作者以0.5为界,小于0.5的输出值归类为0,大于0.5的输出值归类为1,以便于统计模型输出的正确率。
四、模型验证分析
(一)正确率矩阵
由于BP神经网络的算法决定网络运行时第一次迭代使用的连接权值是随机生成的,造成模型的运行结果具有随机性和不可重现性,作者将建立的财务预警模型重复运行30次的输出结果作了整理。通过图1和表4可以看出,模型重复运行30次的正确率均处于较高的水平,最高正确率为77.85%,最低正确率为71.85%,平均正确率为75.24%。为了进一步验证模型的错判程度,作者手工检验了测试样本中被模型错判比例,表5反映了模型实际输出的正确率统计情况。从表中可以看出,650个测试样本中,期望输出的0(即无财务风险)的样本数为380个,其中,有337个模型判断正确,43个判断错误,正确率为88.68%;期望输出的1(即出现财务预警)的样本数为270个,其中,有171个模型判断正确,99个判断错误,正确率为63.33%;模型对总体样本预测的正确率为78.15%,说明模型的整体预测效果比较理想。
(二)数学表达式
通过上文建立的模型重复运行30次后的平均正确率来看,该模型的输出能够达到预期的结果。但是,为了输出更精确的结果,有必要选择保存正确率较高时的机器学习网络模型来进行模型的分析和后续的预测。作者在对训练样本和测试样本反复的学习测试中,得到的最高正确率为82.46%,将本次模型的算法导出后保存为单独的网络文件,供以后的预测工作使用。以下分析均以本次建模为基础。图2为财务预警模型的最终网络结构图,可以看出输入层神经元节点数为9个,隐含层为1层,神经元节点数为4个,传递函数为logsig,输出层神经元节点数为1个,传递函数为tansig。连接权值系数为w,阈值项为b。令w12为第1层(输入层)到第2层(隐含层)的权值,b2为第2层(隐含层)的阈值,w23为第2层(隐含层)到第3层(输出层)的权值,b3为第3层(输出层)的阈值,根据模型的网络结构(图2)以及连接权值系数w和阈值项b的输出值,可以进一步得到模型的表达式。
五、结论
通过分析财务预警模型的表达式可以得出,F7、F8两个主成分对模型的结果影响的权重值最高,其次为F1、F3两个主成分权重值较高,F2、F4、F5、F6、F9五个主成分的权重值相对较低。F7、F8是已获利息倍数和现金到期债务比,分别反映了公司偿还债务利息和到期本金的能力,该项被BP神经网络模型赋予了最高的权重,F1、F3反映了公司的短期偿债能力和长期偿债能力,该项被BP神经网络模型赋予了较高的权重,从经济学的角度考虑,偿还债务利息和到期本金的能力考察了公司即时偿付债务的能力,短期偿债能力和长期偿债能力考察了公司潜在偿付债务的能力。综上所述,模型的赋值在经济学具有一定的价值和意义。
参考文献:
[1]张晓萍,胡安琴.国内外财务风险预警模型实证研究文献综述[J].中国证券期货,2013(03):109+111.
[2]刘骅,卢亚娟.地方政府融资平台债务风险预警模型与实证研究[J].经济学动态,2014(08):63-69.
[3]李晓璐.基于BP神经网络的企业财务管理风险预测实证分析[J].菏泽学院学报,2020,42(05):52-57.
作者:程寅骁 单位:浙江湖州交通集团
返回财务论文列表