在金融领域,尤其是贷款审批过程中,模型验证是确保模型准确性和适用性的关键步骤。这包括对模型概念的合理性、持续适用性进行测试,并识别潜在的风险和限制。这些测试必须对现有生产模型构成有效的挑战,以促进其改进和风险缓解。本文将详细介绍如何对预测贷款申请可能性的逻辑回归模型进行验证。
目标是验证一个逻辑回归模型,该模型用于预测申请人申请贷款的可能性。贷款公司通过分析贷款申请人的财务历史来进行工作。以下是模型验证框架中所进行的测试:
数据检查 - 包括因变量和自变量的缺失值和异常值检查。
模型变量 - 包括信息价值(IV)、线性关系和方差膨胀因子(VIF)。
模型拟合 - 包括AUROC、Gini系数、KS统计量以及增益和提升图。
模型测试 - 敏感性分析。
系数稳定性 - 包括符号稳定性和系数稳定性。
将完整数据集分为训练数据(占总数据的60%)和测试数据(占总数据的40%)。模型在训练数据上开发,并在测试数据上进行验证。
观察到响应(Y=1)和无响应(Y=0)在完整数据、训练数据和测试数据中的分布非常相似。
# 响应 (Y=1) 表示申请人申请了贷款
# 无响应 (Y=0) 表示申请人没有申请贷款
信息价值(IV)用于捕捉变量的解释能力。随着变量解释能力的增强,IV值增加。观察到所有变量的IV值均小于0.1,表明在训练数据集中具有较低的解释能力。
线性关系检查包括将数值变量分为10个区间,并计算每个区间的变量均值和对应的对数几率。
# 线性关系检查的数值变量包括年龄、申请金额、风险评分和外部质量评分
方差膨胀因子(VIF)用于指示独立变量之间的多重共线性。观察到训练数据集中的VIF值均小于2,表明没有多重共线性。
接收者操作特征曲线下面积(AUROC)用于衡量模型的预测能力。AUROC值等于0.50表示没有预测能力,而AUROC值等于1.00表示完美的预测能力。
# sklearn.metrics.auc(x, y)
基尼系数(Gini)是从AUROC派生出来的。Gini值为0.0表示没有预测能力,而Gini值为1.0表示完美的预测能力。
KS统计量用于衡量累积事件百分比和累积非事件百分比之间的分离度。
# scipy.stats.ks_2samp
增益和提升图是数据可视化工具,用于比较分类器捕捉响应率的能力。
# 发现1(输入数据) - 观察到训练数据集中存在异常值。验证团队建议在开发模型之前处理异常值。
# 发现2(输入数据) - 观察到申请金额和外部质量评分是非线性的。验证团队建议测试转换以获得线性关系。
# 发现3(模型拟合) - 观察到AUROC低,Gini低和KS低,表明模型无法分离事件和非事件。验证团队建议使用额外的变量来提高模型拟合度。