APP下载

基于改进FOA算法的上市公司Z-Score模型财务预警①

2018-11-14康彩红王秋萍肖燕婷

计算机系统应用 2018年11期
关键词:果蝇步长预警

康彩红,王秋萍,肖燕婷

(西安理工大学 理学院,西安 710054)

近年来,在经济全球化的大背景下,上市公司所处的经营环境瞬息万变,使得不少公司正面临着越来越激烈的市场竞争.因此,上市公司的财务危机管控和及时监测就显得尤为重要,不仅能有效准确评估上市公司的财务状况和及时预测其存在的财务风险,而且可有效帮助上市公司提前预防危机的发生,增强上市公司化解危机的主动性,对保护广大投资者和债权人的利益、维护上市公司健康发展和提高公司科学化管理具有重要的现实意义.财务预警模型包括单变量财务预警模型、条件概率预测模型和多变量财务预警模型等[1,2].随着智能优化算法的研究发展,研究者开始将财务预警模型和智能优化算法相结合,通过优化模型参数来修正模型,从而达到理想的预测效果[3,4].

2011年6月台湾学者Wen-Tsao Pan博士受果蝇觅食行为的启发提出了果蝇优化算法(Fruit fly Optimization Algorithm,FOA)[5,6],然后用FOA来优化多变量预测模型中的传统Z-Score财务预警模型的参数,虽然优化参数后的预测结果比传统Z-Score财务预警模型好,但因FOA算法易陷入局部最优、稳定性不强等缺陷,使得预测结果并不理想.

鉴于此,本文对基本FOA算法进行改进,对果蝇寻优步长进行自适应调控,采用步长缩进的控制策略来避免算法陷入局部最优及提高稳定性等,提出了基于个体差异的自适应步长果蝇优化算法(Self-Adaptive Fruit fly Optimization Algorithm based on the individual differences,SA-FOA),然后用于对Z-Score模型参数的优化,进而提出基于改进FOA算法的上市公司的ZScore模型.用修正后的模型分析20家上市公司的财务风险状况[5],结果表明将改进FOA算法应用于优化Z-Score财务预警模型的参数效果比较显著.

1 Z-Score模型简介

为了有效检验和规避风险,使公司能够在损失之前及时采取应对措施以及损失达到最小,保证上市公司的可持续发展,美国纽约大学教授爱德华·奥特曼(Edward Altman)提出Z-Score财务预警模型[7].根据Altman教授长期的实证研究,选取企业的获利能力、偿还能力、流动性、周转能力和财务杠杆这5个财务指标作为分析变量,并给这5个指标变量乘以不同权重,建立Z-Score财务预警模型式(1),通过Z-Score模型可分析出上市公司的风险概况[8].

式 (1)中,Z为 Z-Score,X1、X2、X3、X4和X5分别代表Altman教授提出的5个不同的财务指标变量.其中,这5个Z值模型的指标变量解释见表1.

表1 Z值模型变量解释

Altman教授的Z-Score临界值见表2.

表2 临界值的说明

2 果蝇优化算法

2.1 基本果蝇优化算法(FOA)

FOA算法是一种向最优个体不断靠近来实现解空间寻优的新方法.果蝇觅食的基本原理: ① 嗅觉搜索阶段: 由嗅觉分辨食物气味的来源,并朝这个方向飞去;② 视觉定位阶段: 当逼近食物位置附近后,利用敏锐的视觉来准确判断食物源以及其它同伴聚集的准确位置,最后飞向食物源.FOA步骤如下[6]:

2)对果蝇个体通过嗅觉寻找食物的方向与距离进行赋值:

3)因无法得知食物源的具体位置,故需先估计与原点之间的距离然后再计算味道浓度判定值Si:

4)将式(4)中计算出的味道浓度判定值Si代入味道浓度判断函数(Fitness function),此时就可以求得果蝇个体的味道浓度值(即适应值):

5)找出果蝇种群中味道浓度最低的一个(求最小值):

7) 重复执行步骤2)~ 5),并与前一代最佳味道浓度值作对比,是否优于前一代最佳味道浓度值,且当前迭代数是否小于最大迭代数若是,则执行步骤6); 否则,结束算法.

2.2 基于FOA的改进果蝇优化算法

当使用基本FOA算法求解各种优化问题时,在其步骤2)的迭代过程中,由于给予每个果蝇个体搜寻食物的方向与距离这一参数赋予的值是随机的,而影响它的唯一一个因素就是在搜索中采用的固定步长,再加上算法个体之间的信息交互能力较弱,从而一定程度上限制了算法的搜索寻优能力.由此可知,迭代过程中并未考虑每个果蝇个体当前所处位置优劣的差异性,如果采用固定的搜索迭代步长,则限制了果蝇群体的搜索能力,将会致使果蝇个体中迭代步长较小的个体收敛缓慢,造成算法早熟而陷入局部极值; 而搜索迭代步长较大的个体则又容易引起迭代后期强烈的振荡以及局部寻优能力的降低.因此为了得到较理想的优化效果,在文献[9–13]的基础上,本文提出了采用基于个体差异的自适应步长果蝇优化算法(Self-Adaptive Fruit fly Optimization Algorithm based on the individual differences,SA-FOA).

SA-FOA算法下步长值主要通过两部分来实现调控,见式 (8).首先衰减部分,这部分根据当前迭代次数变化形成一个指数衰减量; 其次根据每个果蝇个体当前所处位置的差异性,将前一代果蝇个体位置的味道浓度值和前一代群体最优值同时考虑进去,这样可使迭代步长值随着果蝇个体当前所处的位置需求进而来实现搜索步长的自适应更新,通过这两部分的调控关系可使果蝇个体根据自身所处位置情况来选择不同的步长.由式 (8)可知,该方式下搜索步长值总体是呈递减趋势,且位置较差的果蝇个体能获得相对更长的搜索步长值,使得果蝇群体兼具较强的全局勘探和局部开发能力,从而增强整个算法的搜索寻优能力.

对果蝇个体通过嗅觉觅食的随机方向与距离公式更新如下:

这样,通过上述改进便可使算法在迭代初期保持一个较大的搜索步长,果蝇个体可以在大范围内进行粗搜索,从而更快搜索到全局最优的范围; 而算法到了迭代后期,随着群体移动步长自适应地减小,算法便具有更强的局部搜索能力与更快的收敛速度.

2.3 模拟验证

为验证SA-FOA算法的寻优效果,以Schaffer函数为例做模拟分析,如式(11):

Schaffer函数的特点是在定义域内存在一个全局最小值点和无限个局部极小值点.在MATLAB中分别用SA-FOA、PSO和FOA算法测得其曲线收敛如图1所示.由图1可看出,SA-FOA算法的收敛效果优于PSO和FOA算法,寻优效果较好.

图1 Schaffer函数适应度进化曲线

3 基于SA-FOA算法优化Z-Score模型

本文利用SA-FOA算法良好的寻优能力,将ZScore模型参数与SA-FOA算法中食物的味道浓度值建立一定关系,通过模仿果蝇觅食行为,对模型参数进行优化选择.在保持5个原变量不变的情况下,将随机生成的SA-FOA优化参数代入式 (12) 中.以预测值与目标值的均方根误差(Root Mean Squared Error,RMSE)最小为目标,优化后模型的参数分别记为T1、T2、T3、T4和T5.SA-FOA算法优化Z-Score模型的参数时,以RMSE为适应度函数如式 (13):

SA-FOA优化Z-Score模型的流程如图2所示.

图2 SA-FOA优化Z-Score模型流程图

4 实证分析

4.1 实验原理

采用SA-FOA算法和FOA算法优化Z-Score模型参数的实验原理就是: 首先,将5群果蝇群体进行初始化,分别指派给参数T1、T2、T3、T4和T5; 然后,给它们每个群体设定有20只果蝇,并且将随机初始化果蝇群体的位置区间设置为[0,1],进行迭代时,将果蝇搜寻食物的随机方向和距离区间设置为[–1,1]; 最后,通过100次迭代搜寻得到最佳模型的优化参数T1、T2、T3、T4和T5,这样会使优化后的Z-Score财务预警模型所得到的结果逐渐趋近于目标值Y.

本文以20家上市公司的财务数据作为研究分析对象,它的财务指标数据见表3.其中,X1、X2、X3、X4和X5分别表示不同的财务指标变量,Y则表示上市公司的财务状况(0代表危机公司; 1代表正常公司).

测试实验环境为内存8.00 GB,机器主频3.60 GHz,操作系统为Windows7,用Matlab编程在Matlab R2014a实现.

4.2 Z-Score模型的仿真实验

根据传统Z-Score模型对表3中的20家企业进行财务预警仿真实验.测得这20家上市公司的ZScore值的测试数据结果见表4,并将表4结果与表3中的目标值Y进行对比,发现通过传统的Z-Score财务预警模型来预测上市公司的财务状况时,有第3、7、8、9、10、12和第17家上市公司的财务状况的预测值不正确,其预测准确率为65%.

4.2.1 仿真实验与结果分析

根据表4的预测结果,我们发现传统Z-Score财务预警模型对上市公司的财务危机预警能力并不高,存在不足.因此,传统的Z-Score模型在预测财务危机预警时,其判定能力有进一步优化和改善的空间.

4.2.2 FOA优化Z-Score模型参数的仿真实验

采用基本FOA算法对表3中的20家企业进行财务预警仿真实验.算法的参数设置: 果群规模最大迭代数为了便于分析对比,本文采用参考文献[6]中的方法设置FOA算法优化Z-Score模型的判定临界值,在FOA算法优化模型参数中0.5对应2.675,若预测结果高于0.5(亦即高于2.675)为正常公司,反之则状况不佳.FOA算法优化后的Z-Score值的测试数据结果见表5,并将表5结果与表3中的目标值Y进行对比,发现通过FOA算法优化Z-Score模型参数来预测上市公司的财务状况时,第3、7、8、9、10和12家上市公司的财务状况的预测值不正确,其预测准确率为70%.

表3 20家上市公司财务数据

表4 20家上市公司的Z-Score值

4.2.3 SA-FOA优化Z-Score模型参数的仿真实验

采用SA-FOA算法对表3中的20家企业进行财务预警仿真实验.算法的参数设置: 果群规模sizepop=20,最大迭代数初始步长C0=0.2,衰减常量τ=0.005,正常量=2,判定临界值对比标准同上.用SA-FOA算法优化Z-Score模型参数来预测上市公司的财务状况时,从表6可看出,有第、、和家上市公司的财务状况的预测值不正确,其预测准确率为80%.

根据表5的预测结果,我们发现用基本FOA算法优化Z-Score模型参数进行财务预警时,准确率虽有所改变,但因FOA算法易陷入局部最优及稳定性不强的问题,使预测效果还有待提高.

表5 20家上市公司的FOA优化Z-Score值

由表7RMSE分析可知,SA-FOA算法优化ZScore获得的RMSE较小,表明其预测效果较好.

表6 20家上市公司的SA-FOA优化Z-Score值

表7 两种算法优化下的RMSE值对比结果

从图3基本FOA算法优化Z-Score模型参数和SA-FOA算法优化Z-Score模型参数的RMSE寻优收敛图可知,随着迭代次数的增加,SA-FOA算法优化ZScore模型参数的能力优于FOA算法优化Z-Score模型参数的能力,收敛时对应的迭代次数明显小于基本FOA算法优化Z-Score模型所对应的数值,且速度较快.

图3 RMSE收敛图

综合以上对比分析结果,表明了采用SA-FOA算法优化后的Z-Score财务预警模型的准确性和高效性.经SA-FOA算法优化Z-Score模型参数,当其适应度达到最小值时,其优化后的Z-Score模型参数T1、T2、T3、T4和T5分别为: 0.3275、0.2907、0.3180、0.2206和0.2337.

5 结论

为了提高传统Z-Score财务预警模型的预警能力,本文提出了一种基于改进FOA算法的上市公司的ZScore财务预警模型.通过对基本FOA算法的移动步长进行改进,并将其与传统的Z-Score财务预警模型相结合,用于对Z-Score模型参数的优化和完善.经仿真实验表明优化后的财务预警模型具有较好的预测效果.

猜你喜欢

果蝇步长预警
果蝇遇到危险时会心跳加速
预警型智能包装在食品安全中的应用和设计
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
超级秀场 大风预警
2021年大樱桃园果蝇的发生与防控
一种改进的变步长LMS自适应滤波算法
小果蝇助力治疗孤独症
一种非线性变步长LMS自适应滤波算法
果蝇杂交实验教学的改进策略
预警个啥