1. 引言
自从2014年我国债券市场发生第一起债券违约,在随后的几年里,我国债券市场违约状况频发,相对于2014年以前债券市场的刚性兑付的情况,债券违约情况的出现是一个市场健康发展应有的状况。截至目前,我国债券市场陆续出现了超过了上百支违约样本。对债券市场违约风险进行研究是很有必要的[1]-[3]。
公司债券发生违约是受到宏观经济、企业经营状况、行业水平等多方面影响。然而,宏观经济受经济周期影响,行业水平受到当时的宏观政策等方面影响。这些部分影响会长期影响所有企业的平均水平。在相对稳定的宏观经济下,企业自身经营状况才是对债券违约起决定性的作用。公司经营情况反应在每年的公司财务指标上,通过对公司的一些财务指标的研究,如流动比率、速动比率、财务杠杆等指标的变化,能进一步发现公司的财务状况,进一步分析公司违约债券的可能性。通过分析各个因素的作用,这对投资者提前预警,以及企业在经营中生产调整有一定的指导意义。
2. 相关研究
自从债券市场出现违约之后,出现大量学者对其违约预测进行研究。Jin-Chuan Dua等人提出一种前向强度模型,分析几个常用因素与公司特有属性对违约预测的重要性[4]。张荀杨(2017)对因变量划分,即以违约情况划分为不同类别,以多元回归的方式构建多元逻辑回归模型进行实证研究[5]。王秋龙(2018)通过选取12个指标2个非财务变量构建两个时间点模型,利用logit回归建模得到越靠近违约时间点,流动现金等因素与企业违约有较高的相关性,越靠前时间点资产结构影响更大[6]。魏国健(2018)通过市场违约数据,结合KMV (Kohn-Merchant-Vasicek, KMV)模型和logit模型构建混合模型进行实证分析,结果显示混合模型与logit模型一样具有较高的准确性,能较好地识别违约风险[7]。关然(2019)通过吸收Z-score模型财务指标,KMV模型的违约距离等,利用logit模型构建出更适用的公司违约风险量化模型[8]。曹昱(2019)通过构建BP-KMV模型对上市民营企业数据进行实证分析,通过因子分析法降低变量维度提高模型准确性[9]。上述研究考虑逻辑回归并引入KMV模型结果。
随着研究深入,对于预测问题更多关注准确性。因此,最近研究会在基础逻辑回归模型下引入集成学习、深度学习等。吴育辉等选取财务指标与非财务指标,搭建了基于机器学习算法SMOTETomek-GWO-XGBoost的债券违约风险预警模型。其有较高的准确性、召回率等[10]。陈湘州等将逻辑回归、随机森林等算法融合,提出了LR-RF-XGBoost债券违约预警模型对违约进行预警研究[11]。Chenxiang Zhang等发现引入卷积神经网络模型对企业违约预测中的表现相较于随机森林等效果更佳[12]。
然而上述研究中,针对债券违约问题,一方面是利用传统经济理论,通过引入KMV模型,结合逻辑回归模型对债券进行违约预测,其具有较强的解释性。但是现实中可能并非完全满足模型假设条件。另一方面从机器学习出发,通过引入集成学习如XGBOOST模型、深度学习模型对违约进行预测,在不考虑经济意义条件下,该方法更适用。
对于目前债券市场而言,违约样本毕竟少数。从周期的财务指标分析公司,所涉及维度较高。相对于其他二分类模型而言,SVM有着较大的优势。本文采用SVM (Support Vector Machine, SVM)支持向量机模型进行研究,选择150家公司作为研究对象,选用数据是公司一年四个季度财务数据。由于数据存在高相关性因此采用LDA方法进行降维。构建LDA-SVM模型进行建模研究,并与多个二分类模型效果进行比较。
3. 模型建立与评估方法
3.1. LDA-SVM模型
SVM是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器。相对于其他二分类算法模型对比,如二分类线性模型逻辑回归,以及神经网络模型,SVM有明确的几何解释,通过定义边界二分类最大化边界间隔有助于直观理解分类决策同时具有较强的泛化能力。相较于xgboost等决策树类模型,支持向量机能够处理相对于样本量维度数据略高的数据,避免决策树表现不稳定的情况。此外,在处理非平衡数据方面,SVM可以调整权重值等应对,而逻辑回归、决策树等对非平衡数据处理的表现较差。本文以公司财务指标分析公司各项抵御风险能力所涉及的指标数量较多,即使是本文所选择财务指标共计15个,同时时间跨度4个季度,变量维度共计60个,而样本量为150个样本,同时因为违约企业与非违约企业样本数存在不平衡性。因此,采用SVM模型作为核心预测模型。
对于SVM有如下相关理论。
假设一个特征空间上的训练数据集(线性可分):
(1)
其中,
,
,
,
为第i个特征向量,
为类标记,当为正例是值为1,反之则为−1。
设存在数据集T和超平面
,定义超平面关于样本点
的几何间隔为:
(2)
超平面关于所有样本点的几何间隔的最小值为:
(3)
因此,SVM模型求解可以变成线性优化问题,即能够满足下面方程组的最优解就是最优线性分类器模型参数。
(4)
对于公司多周期财务指标除了同一时期不同指标之间存在相关性之外,其相近周期相同指标之间也存在强相关性,若只依靠SVM模型核函数映射划分难以寻找合适的映射空间。因此可以考虑先将数据进行映射降维,提升划分的准确性,再利用SVM模型进行预测。相较于传统的PCA降维方式,这里选用线性判别分析(LDA, Linear Discriminant Analysis)方式,其更加适用分类问题。LDA目标是找到一个新的特征空间,使得在这个空间中,不同类别的数据点尽可能地分开,同时同一类别的数据点尽可能地聚集在一起。其基本原理如下:
假设数据集
,定义
为第j类样本个数,
为第j类样本的集合,而
为第j类样本的均值向量,定义
为第j类样本的协方差矩阵。则
(5)
(6)
定义类内散度矩阵
为:
(7)
定义类间散度矩阵
为:
(8)
对于二分类任务,需要将数据投射到直线上,令投射直线向量为
,则对于任意样本
,其直线
的投影为
,对于两类别中心点
,在直线
的投影为
。使得映射后不同类别的数据的类别中心之间的距离
尽可能大,同时在同一类别中的样本点尽可能的近,即
尽可能小。因此最优化目标为:
(9)
该优化目标实质上是一个瑞利商,根据瑞利商的性质得到最优的投射直线
。
因此LDA-SVM模型是将LDA降维方法与SVM相结合而成。其中LDA按照之前理论进行降维,再经过SVM模型得到预测结果。
3.2. 模型评估方法
债券违约与否是一个二分类问题,因此可以通过混淆矩阵观察模型的效果。其中混淆矩阵结构如下表1所示。
Table 1. Confusion matrix example table
表1. 混淆矩阵例表
|
预测为正类 |
预测为负类 |
实际为正类 |
TP |
FN |
实际为负类 |
FP |
TN |
根据混淆矩阵可以计算准确率(Accuracy)、F1-score指标评价模型的好坏。其中计算方式如下:
(10)
(11)
其中,Precision与Recall计算方式如下:
(12)
(13)
同时,通过混淆矩阵衍生出来的假正率(FPR)、召回率(TPR)两个指标进一步绘制ROC曲线()。通过计算AUC面积(曲线右下部分围成面积)评价模型分类效果的好坏。其中FPR、TPR的计算公式如下:
(14)
(15)
4. 实验分析
4.1. 数据来源与数据处理
本文选用数据是150家发行公司债的公司,其中涉及违约债券34家,非违约债券116家,涉及行业不固定。存在样本量的不平衡性。这是符合债券市场现状的,打破刚性兑付的债券市场上,非违约企业仍然占据大多数。选取相关指标根据公司盈利能力、偿债能力、成长能力等方面考虑共计15个指标,具体变量如下表2所示。选取时间距离发生违约时间点一年的财务数据,最终变量合计60个维度。因此,样本数据特征是具有不平衡性、以及维度较高的特点,但这是符合债券市场现状,总体违约量少,各项评价指标数目较多。
Table 2. Indicators-variable
表2. 指标–变量
指标 |
变量名 |
违约与否 |
Y |
营业总收入(同比增长率) |
II |
总负债(同比增长率) |
ADI |
净利润(同比增长率) |
NPI |
销售毛利率 |
GM |
净资产收益率ROE (平均) |
ROE |
资产负债率 |
ALR |
流动负债/负债合计 |
AL2L |
流动比率 |
CR |
速动比率 |
QR |
应收账款周转率 |
ATR |
应付账款周转率 |
APR |
带息债务 |
IBD |
净利润(TTM) |
NP |
营业总收入(TTM) |
II.1 |
营业总成本(TTM) |
AC |
在数据集划分方面,本文将150个样本数据按照8:2比例随机划分为训练集与测试集。因为违约样本为34条,同时为了保证每个集合中都包含违约样本,因此采用分层抽样的方式进行划分,即违约样本中随机等可能抽取27个样本与非违约样本中等可能随机抽取93个样本共同组成训练集,其余样本为测试集。
4.2. 实验与分析
将训练集样本带入模型中进行训练,同时将训练完成的模型通过测试集验证。其结果如下表3所示。
Table 3. Experimental results confusion matrix
表3. 实验结果混淆矩阵
|
预测不违约 |
预测违约 |
实际不违约 |
23 |
1 |
实际违约 |
2 |
4 |
通过混淆矩阵计算出模型的准确率为90%,f1得分为90%。得到ROC曲线如下图1所示:
Figure 1. The ROC curves of LDA-SVM
图1. LDA-SVM模型ROC曲线
从图1中可以看到模型效果显著,AUC面积为0.99,说明模型预测效果好。
接着与二分类常规模型进行对比,以准确率作为评价指标。其结果如下表4所示。
Table 4. Individual model results
表4. 各个模型结果
模型 |
准确率acc |
k近邻 |
0.6 |
决策树 |
0.73 |
svm |
0.73 |
logistic |
0.64 |
随机森林 |
0.76 |
自增强算法 |
0.76 |
Lightboost |
0.78 |
Xgboost |
0.8 |
LDA-SVM |
0.9 |
ROC曲线如下图2、图3所示:
Figure 2. ROC curves of partial models (1)
图2. 部分模型ROC曲线(一)
Figure 3. ROC curves of partial models (2)
图3. 部分模型ROC曲线(二)
从表4中可知,常规分类模型如k近邻等对违约预测效果不佳,准确率在0.8以下。其次是集成学习算法例如xgboost算法对预测效果有明显提高但是也只是达到0.8。通过对比,本文提出的LDA-SVM模型效果显著。能更有效预测债券违约风险。
5. 结论与展望
本文以债券市场中150家公司作为研究对象,选取企业盈利能力、偿债能力、成长能力相关财务指标作为对公司债券是否违约的潜在因素分析。通过选取一年共四个季度的数据进行分析。考虑各个变量之间存在相关性问题,为提高预测精度,提出了LDA-SVM模型对债券是否违约进行建模分析。实验结果表明,该模型能显著地预测债券违约情况。同时再比较多个二分类模型,结果表明本文所提出模型效果显著,准确率达到90%,能更精确对债券违约与否做出判别。
本文是根据一年期数据分析未来债券违约。未来对债券违约的研究,还需要考虑债券市场的走向,债券价格从一定程度上反应背后的企业经营情况。考虑引入经典的KMV模型,虽然存在公司是非上市公司,难以通过KMV模型得到违约距离,但可以进一步分析上市公司的违约风险。