system: [SYSTEM]

user: 4. 实证分析 4.1. 数据来源 本文基于某机构的企业贷款违约数据集进行实证研究。整个数据预处理、建模对比、特征分析过程均在软件Python3.8上实现，使用的安装包为pandas、numpy、matplotlib、sklearn、xgboost、lightgbm等。 4.2. 数据描述 该数据集共包含8个变量，分别是：企业ID (脱敏)、当年是否产生逾期贷款、当年地税纳税总额、当年电量、当年国税纳税总额、当年增值税应纳总额、当年获得授信总额、当年已用授信总额。该数据集具体格式如表1所示。 Table 1 Basic information of variable 变量名称 类型 示例 企业ID int64 00010426 当年是否产生逾期贷款 int64 1 当年地税纳税总额 float 76，959.7 当年电量 float 20，758 当年国税纳税总额 float 32，400 当年增值税应纳总额 float 40，487.53 当年获得授信总额 float 45，000，000 当年已用授信总额 float 15，000，000 表1. 变量基本情况 Table 2 Statistical description of variable 变量名称 最大值 最小值 均值 标准差 中位数 地税纳税总额 2，040，000，000 −540 22，296，550.39 122，608，799.27 432，583.65 电量 45，000，000 0 783，581.21 2，701，843.58 176，223 国税纳税总额 12，800，000 −243，798.8 656，452.05 1，544，412.93 87，458.04 增值税应纳总额 19，100，000 0 372，694.25 1，537，349.98 8305.58 获得授信总额 3，590，000，000 0 119，289，179.91 330，324，069.82 16，500，000 已用授信总额 1，650，000，000 0 71，390，498.14 179，437，531.86 11，750，000 表2. 变量的统计描述 根据表2的统计性描述可知，数据集中包含的企业既有每年纳税金额过亿的大中型企业，也有经营规模较小的小微企业，还有经营不善导致无法及时缴纳税费的濒临破产的企业。这表明该数据集包含的企业类型广泛，能较好的反映某地区总体的企业经营状况。 4.3. 数据预处理 根据本文的研究内容选择“是否产生贷款逾期”为响应变量，其有三个分类：有贷款未逾期(负类，由0表示)、有贷款且逾期(正类，由1表示)和没有贷款信息。因为本文研究主题为企业贷款的违约风险，所以应选择有贷款行为的企业为研究对象，根据该要求选择数据集中“当年是否产生逾期贷款”变量不为空值的记录，将该变量为空值的记录进行删除，删除后数据集中剩余1215条相关记录。接着，观察原始数据集可以发现存在数据缺失的情况，因此对各个特征的数据缺失情况进行统计(结果如图1)，删除缺失值比例大于40%的特征，即删除当年电量、当年国税纳税总额和当年增值税应纳总额三个特征。然后对缺失值进行处理，先算出每条记录中含有缺失值的个数，再将每条记录中缺失值个数大于等于2个的记录删除，此时数据集中只有地税纳税总额中还有缺失值，我们用其均值进行填补。 图1. 各个特征的缺失值比例 经过预处理后的数据集还有3个特征，552条记录，其中有贷款且逾期的记录有534条，有贷款未逾期的记录有18条，显然这是一个非平衡数据集。因此，本文使用SMOTE上采样方法来增加负类样本数量，即随机复制已有的负类样本使负类样本总数达到534个，从而使数据集变为平衡数据集。 4.4. 建立模型 1) 数据集划分。按照7:3的比例将数据集依据随机原则划分为互斥的训练集和测试集，其中训练集有747条记录，测试集有321条记录。 2) 模型训练。将训练集分别代入四种机器学习模型进行训练，其中XGBoost模型和LightGBM模型需要调参。我们选择使用贝叶斯优化来寻找最优参数，因为该方法迭代次数少、耗时短，是一种非常实用的优化算法，并将ROC-AUC值(ROC曲线下面积)作为目标函数，该函数值越高表示模型分类效果越好。调参后发现，对于XGBoost模型，没有调参之前的效果更好，因此使用默认参数；对于LightGBM模型，调参后模型取得了更好的效果，因此使用获得的最优参数。 XGBoost模型的最优参数： Booster = gbtree， objective = binary:logistic， learning_rate = 0.3， max_depth = 6， min_child_weight = 1， n_estimators = 100， n_jobs = 16， reg_lambda = 1， subsample = 1. LightGBM模型的最优参数： bagging_fraction = 0.97， feature_fraction = 0.94， learning_rate = 0.03， min_data_in_leaf = 10， num_boost_round = 1500， num_leaves = 60， max_depth = 7， num_threads = 8， bagging_freq = 5， num_class = 2. 3) 模型预测。将测试数据代入训练好的模型得到相应的预测值，并根据评价指标对四个模型的预测效果进行评估。 4.5. 模型评估 本文根据混淆矩阵 [ 7 ] 的各项指标对四个模型的预测效果进行评估，结果如图2所示。 图2. 各模型评价指标对比。(a) 逻辑回归模型；(b) 随机森林模型；(c) XGBoost模型；(d) LightGBM模型 图2中，“accuracy”表示模型分类的准确率，即预测正确的样本占总样本的比例，四种模型的准确率分别为0.5452、0.8941、0.9003、0.8910，可以看出逻辑回归模型的准确率最低，XGBoost模型的准确率最高，但XGBoost与随机森林和LightGBM的准确率相差很小。“precision”表示精确率，即预测类型为正类(负类)的样本中实际类型也为正类(负类)的比例，“recall”表示召回率，即实际类型为正类(负类)的样本中预测类型也为正类(负类)的样本比例，而“f1-score”值同时考虑了模型的精确率和召回率，其值越接近于1表明模型的综合性能越好。观察正类样本(有贷款且逾期，用1.0表示)的f1-score值并将其从大到小排序的结果为0.9059 > 0.9006 > 0.8949 > 0.3364，这表明四种模型对正例的识别能力从强到弱分别为XGBoost、随机森林、LightGBM、逻辑回归，且前三种模型识别能力相近。总体而言，单一算法(逻辑回归模型)的分类效果并不理想，其各项指标都明显低于集成算法(随机森林、XGBoost和LightGBM)，这展现出集成算法所具有的强大的分类性能；从总体准确率和负类的f1-score值来看，三个集成算法在测试集上的预测效果相差不大，针对本次划分的测试集数据，XGBoost模型的预测效果略优于随机森林和LightGBM。 图3为四种模型的ROC曲线图，ROC曲线是辅助确定概率分割值的有效工具，它是反映Sensitivity (灵敏度)和Specificity (特异性)连续变量的综合指标，曲线越偏向于左上角，即曲线下方围成的面积(AUC值)越大，则表明模型的预测效果越好。可以看出，随机森林、XGBoost和LightGBM的ROC曲线明显更接近于坐标图的左上角，他们的AUC值分别为0.94、0.94、0.95，显著大于逻辑回归模型的AUC值0.74。这表明三个集成算法的预测性能要显著优于单一模型，该结果与之前其他评价指标得出的结论一致；但从AUC值来看，LightGBM模型的预测效果要略优于随机森林和XGBoost，这与之前的结论不同。 图3. 各模型的ROC曲线。(a) 逻辑回归模型；(b) 随机森林模型；(c) XGBoost模型；(d) LightGBM模型 为了进一步判断三个集成算法中哪个最优，同时考虑到之前的模型结果仅仅是针对一次数据集划分而来的，所以我们在整个数据集上使用以分层采样为基础的5折交叉验证进行实验，以便充分利用已有的数据集获取尽可能多的有效信息，并计算三种集成模型在交叉验证下的五次f1-score值均值和五次准确率均值，结果如表3所示。可以看出，在三个集成模型中LightGBM模型的f1-score值和准确率都最大，这表明LightGBM模型的预测性能要略优于其他两个模型，该模型在企业贷款违约风险预测问题上有更强的适用性。虽然针对本文的数据集三种模型的预测效果相差不大，但这主要是因为本文数据集特征纬度低且样本量小。在特征维数很高且样本量很大的情况下，LightGBM模型的不仅能极大的提升计算效率同时还能保证计算精度 [ 8 ]。 Table 3 The five-fold cross-validation mean of the three integrated model 随机森林 XGBoost LightGBM f1-score值 0.8873 0.8814 0.8932 准确率 0.8839 0.8783 0.8895 表3. 三种集成模型的五折交叉验证均值 4.6. 特征重要性 在选出最优模型后，本文接着使用GBDT模型来评估三个特性的重要性。主要使用Python软件中的plot_importance函数来获取相应数值，数值越大表明该特征越重要，结果如图4所示。 图4. 特征重要性 结果表明，三个特征的重要性由大到小依次为地税纳税总额、获得授信总额和已用授信总额，其中地税纳税总额和获得授信总额的重要性相差不大，都为0.4左右。分析该结果我们可以得到如下启示：相关金融机构在对企业的贷款申请进行审查时，除了关注该企业的各项财报、企业主个人征信等情况外，还可以重点关注该企业过去几年的纳税情况和曾经的授信情况。纳税情况可以间接反映该企业的经营状况、资产状况、主营方向、公司规模等信息，有助于从不同角度辅助分析一个企业的还贷能力和其真正需要的贷款金额。曾经的授信情况可以反映其他机构对该企业的信任程度以及该企业的还款意愿和诚信程度，有助于为相关金融机构确定是否发放贷款以及发放多少贷款提供重要参考。