模型违约概率到信用评分的转化

模型违约概率到信用评分的转化
定义坏好比
o d d s = p / ( 1 − p ) odds=p/(1-p) odds=p/(1p)
P是LR计算的违约概率(即坏人的概率),1-p即好人的概率。
评分卡设定的分值刻度可以通过将分值表示为比率对数的线性表达式
s c o r e s = A − B ∗ l n ⁡ ( p / ( 1 − p ) ) scores=A-B*ln⁡(p/(1-p)) scores=ABln(p/(1p))
注意:B前面是负号,坏好比越大,评分值越小,若是好坏比,B前面是正号。

A、B值通过将两个已知或假设的分值带入计算得到。通常情况下,需要设定两个假设:
(1)给某个特定的比率设定特定的预期分值
(2)确定比率翻番的分数(PDO)
假设比率为x的特定点的分值为s。则比率为2x的点的分值应该为s-PDO(若是好坏比率,比率是2x的点的分值是s+PDO)。代入式中,可以得到如下两个等式:
s = A − B ∗ l n x s=A-B*lnx s=ABlnx
s − P D O = A − B ∗ l n ⁡ ( 2 x ) s-PDO=A-B*ln⁡(2x) sPDO=ABln(2x)
求解:
B = P D O / l n 2 B=PDO/ln2 B=PDO/ln2

所以
s c o r e s = A − P D O / l n 2 ∗ l n ⁡ ( p / ( 1 − p ) ) scores=A-PDO/ln2*ln⁡(p/(1-p)) scores=APDO/ln2ln(p/(1p))
A可看做是基础分数,PDO是比率翻倍分数。
如果标准评分=500,标准ODDS=1:20,PDO=20,那么,一个500分的客户所对应的ODDS就是1:20,一个520分的客户所对应的ODDS就是1:40,同样,480分则对应的ODDS就是1:10。因此,只要知道模型的标准评分,标准ODDS以及PDO就可以迅速脑补该客户所得评分对应的ODDS,也就是他的风险。

逻辑回归的公式
p = 1 / ( 1 + e x p ( − ( w 0 + w 1 x ) ) ) p=1/(1+exp(-(w_0+w_1 x)) ) p=1/(1+exp((w0+w1x)))

w 0 + w 1 x = l n ⁡ ( p / ( 1 − p ) ) w_0+w_1 x=ln⁡(p/(1-p)) w0+w1x=ln(p/(1p))
所以在逻辑回归中
s c o r e s = A − P D O / l n 2 ∗ ( w 0 + w 1 x ) scores=A-PDO/ln2*(w_0+w_1 x) scores=APDO/ln2w0+w1x

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,构建逻辑回归模型预测企业违约概率的过程可以分为以下几个步骤: 1. 收集数据。收集包括企业基本信息、财务数据、信用记录、历史业绩等方面的数据。 2. 数据预处理。对收集到的数据进行清洗、缺失值处理、异常值处理、归一化等处理。 3. 特征工程。根据实际情况,选择合适的特征进行处理,比如将分类特征进行独热编码,对连续特征进行离散化等。 4. 划分数据集。将处理好的数据集划分为训练集和测试集。 5. 构建逻辑回归模型。使用 Python 的 Scikit-learn 库中的 LogisticRegression 类来构建逻辑回归模型。 6. 训练模型。使用训练集对模型进行训练。 7. 评估模型。使用测试集对模型进行评估,可以通过计算准确、召回、F1 值等指标来评估模型的性能。 8. 应用模型。使用训练好的模型进行违约概率预测。 下面是一个简单的 Python 代码示例,用于构建和训练逻辑回归模型: ```python import pandas as pd from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score, f1_score # 读取数据集 data = pd.read_csv('data.csv') # 数据预处理 # ... # 特征工程 # ... # 划分数据集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 构建逻辑回归模型 model = LogisticRegression() # 训练模型 model.fit(X_train, y_train) # 评估模型 y_pred = model.predict(X_test) accuracy = accuracy_score(y_test, y_pred) f1 = f1_score(y_test, y_pred) print('Accuracy:', accuracy) print('F1 score:', f1) # 应用模型进行违约概率预测 prob = model.predict_proba(X_new)[:, 1] ``` 其中,`X` 是特征矩阵,`y` 是标签向量,`X_new` 是新数据的特征矩阵,`prob` 是预测的违约概率

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值