机器学习算法在房地产企业财务风险预警中的性能比较
2023-10-10周传华周子涵夏徐东周东东
周传华, 周子涵, 夏徐东, 周东东
(1.安徽工业大学 管理科学与工程学院, 安徽 马鞍山 243002; 2.中国科学技术大学 计算机科学与技术学院, 合肥 230026)
房地产行业作为国家支柱性产业维系着经济社会的稳定运作,同时也是典型的风险、投资、回报都相对较高的资本密集型行业[1]。房地产行业的发展过程具有资本投入大、投资回收期长、资产流动性弱、受宏观政策影响显著等特点[2]。近两年在新冠肺炎疫情的影响下,收入水平下降,消费者购买欲望降低,房地产企业受到严重影响。这大大加剧了房地产公司的资金压力,由于债务不能及时偿还,公司的资金链有断裂的风险。现金流压力的增大,进一步损害房地产公司的安全。由于巨大的融资成本和管理层约束能力的缺乏,公司的长期债务问题将干扰企业的正常经营。预警系统可以帮助企业尽快发现财务隐患,做出合理的应对决策,避免经营危机,确保企业的顺利运营。
目前,学者们对财务预警的研究多采用建立模型的方法[3]。Kinay[4]利用156家工业企业的财务比率创建了一个有序的逻辑回归模型,以预测公司出现财务问题的可能性。通过计算Altman的Z-score,创建了一个可用于企业财务预警系统且预测率高的建模方法。Kasgari等[5]证明财务困境预测模型是解释金融系统可能存在问题的一个有效工具。他比较了逻辑回归模型和人工神经网络,来分析在德黑兰证券交易所上市的制造业公司的财务困境,结果显示,在这个样本中人工神经网络的预测准确率高于逻辑回归模型。Santoso和Wibowo[6]为了分析印度尼西亚工业企业的财务状况,创建了一个结合支持向量机(support vector machine,SVM)和比较线性判别分析(linear discriminant analysis,LDA)的早期预警模型。他们发现,基于混合的Stepwise-SVM在拟合度、稳定性和泛化性方面优于其他模型。Saji[7]表示Z-score模型在预测股市方面更有优势,他重点研究了2006—2015年印度房地产行业企业财务困境的相关业绩数据,并研究其对预测股价的分析价值。
吴世农和卢贤义[8]选择了140家上市公司作为研究样本,其中70家财务状况良好,70家处于财务困境。他们选择了6个能够准确反映公司发展能力的财务指标,并得出结论:Logistic模型的预测效果最好,误差率最低。杨保安等[9]在研究人工神经网络对财务评估应用的影响时,表明人工神经网络比其他财务预警方法有更高的预测正确率。孔宁宁和魏韶巍[10]通过实验证明了主成分分析法和逻辑回归模型相结合的预警模型能够显著提高预测精度。刘玉敏等[11]改进了预测财务风险的非财务指标,在结合企业财务指标数据的基础上建立粒子群优化算法(particle swarm optimization,PSO)-SVM模型,形成了一个新的预警指标体系。比较和分析结果表明,与现有的预警模型相比,PSO-SVM模型可能会显著提高预测精度,证明了这种改进算法模型的有效性。尹萧萧[12]利用主成分分析(principal component analysis,PCA)和偏最小二乘法(partial least squares,PLS)降维处理衡量财务状况的指标,并建立PCA-Logistic预警模型和PLS-Logistic财务预警模型。以146家上市公司为研究对象,结果显示,改进后的模型预测准确率远高于单一模型,并且PLS-Logistic模型在预测财务危机方面最为有效。
在对已有文献研究和分析的基础上,本文中提出了基于AdaBoost-SVM的房地产企业财务风险预警方法。近年来,大多学者用支持向量机来进行财务预警,支持向量机对解决小样本、局部极小点这一系列问题有一定的针对性。支持向量机的最佳参数组合通过交叉验证的方法来确定[13],再进行多分类概率输出,这会使实验结果准确率有一定提高,但会出现在不同数据集上的结果波动较大的情况,即使用交叉验证得到的支持向量机模型诊断结果不够稳定。而通过遗传算法改进支持向量机,并寻找参数的极值点[14],虽然问题诊断的精度相对较好,但是也因为遗传算法很容易进入“早熟”的状态,而使得预测结果达不到最完美的状态。将AdaBoost用来改善分类能力[15],是一种相对有效、简易的学习策略,将不同的分类器运用到AdaBoost并用来预测。AdaBoost的弱分类器采用粒子群算法选择最优的极限学习机[16],分析得出不同样本的失败率,然后将调整后的权重赋予样本,并进一步迭代训练,最终产生强分类器。支持向量机分类器的权重利用误差和加权投票的方法进行改变和重新组合[17],能提高一定准确率。将SVM和AdaBoost结合在一起,发挥各自优势应用在房地产企业的财务风险预警研究中,在保证达到较好分类效果的同时,可以对各类样本进行精准识别,从而提高财务风险预警的精准性和鲁棒性[18]。
1 机器学习算法
1.1 支持向量机
支持向量机是广义的线性分类器,利用监督学习对样本数据进行二元分类,即在最优超平面上对数据样本进行分类,以获得全局最优解。这样做的好处是使系统结构更加明确和清晰。支持向量机的3个基本元素即间隔、对偶和核方法[19],决定了结构风险、维度空间的可分离性和支持向量机模型的应用。支持向量机在结构风险最小的假设下训练,通过自动选择具有强分类功能的支持向量,构建具有极大异质间隔的分类器,可以实现对训练样本的局部影响并具有良好的泛化功能。
在样本数量少、变量维度大、非线性相关的情况下,支持向量机可以产生良好的结果。若初始训练集为{(x1,y1),(x2,y2),…,(xn,yn)},xi∈Rn,y∈{-1,1},在有两种分类间隔最大的不同样本的假设下,超平面被线性分类。该超平面被确定为最优超平面,与该超平面存在距离的样本位置是支持向量。通过处理不能被平面分离的数据,将低维数据移到高维空间,并在新的分类平面中得出数据。再通过对偶转换可以得出分类函数,以及最优分类面的解,其类型如式(1)、式(2)所示,点积计算(高维空间)φ(xi)φ(xj)被核函数计算(低维空间)K(xi,xj)=φ(xi)φ(xj)所替换,过程中运算得到简化处理,同时实现了核函数。
(1)
(2)
1.2 AdaBoost算法
AdaBoost是一种精度提升算法[20],利用改变数据信息分布方式来对基分类器迭代。它通过比较训练集对总体划分的准确性,同时结合对各个样本之间的划分是否准确,来判断各个样本对分类贡献的权值,前次迭代中正确识别样本的权重被降低,但错误分类样本的权重被提高。随后的训练分类器迭代使用带有修正权重的更新数据集,最后的决策分类器是通过完全融合加权分类器形成的[21]。
AdaBoost算法是不断改进Boosting算法的一种迭代方法[22]。其算法流程如下:①将训练集样本的权重分配Di初始化,N为训练样本的数量,开始时给每个训练样本分配ωi=1/N;②进行迭代,为后续迭代的基分类器选择一个分类误差低的弱分类器Ht,用它作为弱分类器,然后计算基分类器在训练集上的分类误差et,估计该弱分类器在最终分类器中所占据的权重,更新训练样本的权重分布;③加大分类误差率et较低的弱分类器的权重,使其在迭代中更重要,减小误差率et较高的弱分类器的权重,再根据不同权重更新的结果,将通过训练形成的各个弱分类器合并形成强分类器。
2 财务预警模型构建
AdaBoost集成学习的基本宗旨是采用迭代策略,通过迭代学习提高模型的预测性能。每一轮学习过程中能够得到一个学习模型的实例以及该模型的预测误差,然后根据预测误差调整学习模型的权重,并且为预测错误的样本更新权重,生成新的训练样本,预测错误的样本在新样本集合的权重上更大。通过生成一系列的样本以及机器学习模型,不断降低整体的预测错误率,最终提升模型的预测性能。在AdaBoost-SVM算法中,将基于高斯核函数的SVM当作基分类器,再运用网格搜索法[23]优化参数。设计流程如下:①随机从训练样本集D中选择m个训练子集;②训练子集由Di(i=1,2,…,m)得出多个基分类器SVMi;③通过加权投票法和多数投票法结合得到强分类器。
AdaBoost-SVM具体流程描述如下。
输入:训练集D={(x1,y1),(x2,y2),…,(xm,ym)};基分类器核函数RBFSVM,训练循环次数为T。
步骤1:随机选择其中N个样本,每个样本按照权重进行平均分布,训练集权值分布Dt(i)=1/N。循环次数t=1。
步骤2:选择参数。通过使用网格搜索技术和十折交叉验证方法,发现基分类器建模的最优参数(C,σ)。
步骤3:训练基分类器。
步骤3.1:Fort=1,2,…,T。
步骤3.2:通过具有权值分布D1(i)的训练集得到第t次弱学习器Ht=L(D,Dt)。
步骤3.3:待训练结束后,根据式(3)计算基分类器Ht的训练误差εt。
(3)
步骤3.4:如果0≤εt≤0.5,根据式(4)计算权重值αt,根据式(5)计算模型组合中的权重。
(4)
(5)
t++:跳转至步骤3.2继续执行。
ELSE:跳转至步骤4,结束循环。
步骤4:构建基分类器线性组合。联合训练中的各个弱分类器Ht(x),进行联合预测,并得到最终的强分类器H(x),如式(6)所示。
(6)
3 实验部署与计算分析
3.1 数据集
选择国泰安CSMAR数据库中的证监会2012年行业分类,定位房地产行业,获得144家房地产上市企业,剔除不完整数据和2016年后上市的企业,选择60家企业作为总数据样本。基于房地产企业的特殊性以及对行业数据完整性和可用性的考虑,再根据2005—2021年的财务状况,最终将样本分为37家财务健康企业和23家财务风险企业。
匹配样本的选择标准是:处于房地产行业、年初的总资产规模相似、并且具有相同的会计年度。通过筛选,尽量减少重复的匹配公司,并按比例匹配样本,选择50家财务状况良好的公司作为匹配样本公司。然而,由于样本量小,出现一家财务状况良好的公司被纳入多个匹配样本的情况。最后总共有75家企业被纳入样本,其中包括25家正在经历财务危机的企业和50家财务状况健康的企业。
指定深沪证券交易所对房地产上市企业给予特殊处理的年度为T年,然后选择T-1和T-2年度危机样本公司和相应样本公司的数据。根据实际样本数量,选择16家财务危机公司和32家财务正常公司作为模型建立样本,选择9家财务危机公司和18家财务正常公司作为模型测试样本。利用T-1和T-2时刻的数据对T年的财务状况进行预测和分析,并利用测试样本对模型的正确性进行评估。
3.2 指标体系的构建
显著性检验这一数学检验是事先对整体数据的分布情况进行有根据的猜测,并利用研究样本的数据确定该猜测是否准确。通过这种方法,可以确定研究样本中的数据分布形式与对整个数据形成假设之间的差异是偶然的结果,还是由于假设与实际情况不一致所造成。由于一个极小概率的情况在现实环境中极不可能发生,所以选择接受或拒绝所提出的假设。统计推断在满足整体数据分布状态不明确的情况时,经常通过显著性检验来根据研究样本推导整体数据分布的特征。
除了增加组织和分析数据的工作量外,选择过多的预警指标会难以及时了解企业当前面临的危机。如果预警指标之间有较强关联性,也会对测试结果产生影响。本文根据房地产企业财务风险预警指标的选择准则,选取了38个财务风险预警指标。然后对这38个指标进行筛选,用有代表性的指标反映房地产企业的财务风险。
对T-2和T-1时间的数据进行K-S(Kolmogorov-Smirnov,柯尔莫可洛夫-斯米洛夫)正态性检验,使用参数和非参数检验对38个预警指标进行进一步筛选。对符合正态分布形式的指标进行T检验,对不符合的指标进行U检验。使用SPSS Statistics 26对这一部分进行正态分布检验。
根据上述检验的结果,为T-1年选择16个指标,为T-2年选择14个指标。确定房地产上市公司财务风险预警指标变系,见表1。
3.3 仿真实验与结果分析
上述数据预处理与指标体系构建为算法模型提供输入。为验证算法的有效性,采用Logistic、SVM、BP神经网络(back propagation neural network,误差反向传播神经网络)和AdaBoost算法进行对比分析。
如果单个SVM分类器的惩罚系数C过高,训练模型对整体误差的要求就会比较严格,容易导致过拟合的情况;反之,如果惩罚系数C过低,训练模型对整体误差的要求就会比较宽松,这时建立的模型的泛化能力就相对较差。当惩罚系数的值在合适的范围内时,SVM的性能主要取决于核参数的值。核参数的值越大,较大的值会导致较少的支持向量,分类精度就越低,反之会产生较高的分类精度。
为了让SVM达到AdaBoost弱分类器的分类性能要求,需要改变两个参数,即核参数σ和惩罚系数C,以防止弱分类器的错误强相关。在多轮循环的过程中使用确定的核参数σ,同时使惩罚系数C不变,直至分类的正确率低于阈值。在后面的循环中,只需要改变核参数σ的值来提高后续循环中使用分类器的分类精度,就可以实现SVM作为AdaBoost算法弱分类器对AdaBoost算法准确度的提升。
将Logistic模型、SVM模型、BP神经网络模型、AdaBoost模型以及AdaBoost-SVM模型5种预测模型对样本数据进行预测分析,其结果见表2。
表2 5种预警模型预测结果对比
基于房地产企业的数据样本,从表2数据可以得出,平均预测准确率排序由高到低:AdaBoost-SVM为91.48%,AdaBoost为90.58%,Logistic为88.34%,BP神经网络为87.89%,SVM为87.44%。平均预测准确率相对较高的是AdaBoost-SVM模型,SVM模型的平均预测准确率相对较低。结果表明,在预测财务风险时,AdaBoost-SVM在准确性方面优于单一模型。
在本研究中,第一类错误是错误地将一个企业标记为有财务风险,而事实上并不存在财务风险。当模型犯第一类错误时,意味着在这种情况下不存在财务风险,但预警模型的提示对企业造成损失可能性相对较小,不易导致更严重的运营问题,同时也可以提高企业的警觉性。其排序由低到高:AdaBoost-SVM为8.52%,AdaBoost为8.96%,Logistic为11.21%,BP神经网络为12.11%,SVM为12.55%。Perror1最低的是AdaBoost-SVM模型,最高的是SVM模型。
在本研究中,第二类错误指的是在公司实际存在财务风险时,模型将其错误地归类为没有财务风险。如果在预警模型中出现这样的错误,说明该公司处于财务危险之中,而模型错误归类将对公司未来的正常经营产生不利影响。其排序由低到高:AdaBoost-SVM、BP神经网络、SVM为0%,Logistic为0.45%,AdaBoost为0.46%。结果显示,AdaBoost-SVM模型的Perror1和Perror2相较于其他4种模型更低,说明该算法适用性更好。
基于AdaBoost-SVM的房地产企业财务风险预警模型对测试集的总体平均预测准确率达到了91.48%,并且犯第一、第二类错误的概率相对更低,这表明,利用T-1和T-2的数据建立的AdaBoost-SVM财务风险预警模型可以准确预测房地产企业的财务风险。
实验结果表明,本研究提出的AdaBoost-SVM具有较好的分类效果,可以显著提高财务风险预警的准确性,在房地产上市公司的财务预警中具有较好的应用效果。
4 结论
针对众多影响因素选取财务指标,构建房地产上市公司财务预警指标体系。收集了60家房地产上市公司2005—2021年的有效财务数据,设计了基于AdaBoost-SVM的房地产企业财务风险预警模型,实现了基于AdaBoost-SVM的房地产企业财务风险预警。实验结果表明,构建的AdaBoost-SVM模型能够有效预警房地产企业财务风险,有效分析房地产企业的发展趋势,AdaBoost-SVM算法相较于传统算法的预警准确性能和容错率有一定提升。