一、logistic
logit变换:y → 分组取P → log(p/(1-p)) ;
logistic回归: log(p/(1-p)) = β0 + β1x1 + β2x2 + ... + βnxn;
二、逻辑回归(y为分类变量)分析步骤
- 图形:条形图;
- 卡方:
- logistic回归:β → or(
); Zβ → garma; R2 → 伪R2;
- 修正x:工具变量(大)、哑变量(小)、woe分箱(大);
- 应用
如何看数据:
行:看大小(小:60~3000行、质量高、问卷; 大:10万行以上、质量低、数据库);
列:测量级别、角色(y、x判定);
y的判定:
- 有预测误差;
- 拿到这个指标的成本是否很高(收入:电商拿到成本很高,金融拿到成本很低; 国内信用:芝麻得分);
- 抽象的指标:金融:信用; 管理:绩效; 心理学:幸福感; 医院:发病风险率; 电商:客户流失率;
- 整合型指标:违约非抽象指标,但可以整合为信用指标;
- 业务危机:问题就是y,从运营报告找;
- boss;
1、图形
图形构建器 → 条形图 → 简单条形图 → 组 → 分组 → 将x放入横坐标,y放入堆积;
国际顶级银行违约率控制在2%以内;
国内顶级银行违约率控制在10%以内;
互联网金融违约率控制在20%~40%;
---------------------------------------------------------------------------------------------------------------------------------
编辑 → 选项
2、卡方
分析 → 描述统计 → 交叉表
期望就是不相关;
当俩个事件同时发生的概率等于各自概率相乘,表示俩个事件不相关;
3、建logistic回归
大数据连续型变量尽量要分组;
spss没有garma输出,需要自己计算;
4、修正x
4.1、工具变量
计算 → 计算变量 → 如果 →
用定义的x与实际变量建相关,找出相关性较高的变量,即为要找的变量。
工具变量的步骤:
- 判断问题所在(二分类:可以定义3个x(0预测为1,1预测为0,预测错误),多分类多个组合):那个问题更重要;
- 建立工具变量(if ... then):一般一个只建一个x,解决一个问题;
- 将工具x放入模型,看指标(伪R2)是否被改善;
- 将工具x接到需要找数据的大数据后;(性能问题)
- 建工具x与变量的相关:最好>0.8以上,找到xj;
- 将找到的变量xj接到小数据后面;
- 将xj加入自变量,重新建模;
数据对接:
数据 → 复制数据集
数据 → 合并文件 → 添加变量
4.2、分箱woe
分箱:连续变量 → 分类变量 用在大数据中;
最优变换:分类变量 → 连续变量 用在小数据中;
分箱的优点:通俗、速度、避免过拟合、加强监督woe、避免强异常、保密;
woe用来评价分组是否合理,及如何调整,判断变量与y相关性;
分组:
转换 → 可视分箱 →
* 可视分箱.
*employ.
RECODE employ (MISSING=COPY) (LO THRU 1=1) (LO THRU 4=2) (LO THRU 6=3) (LO THRU 8=4) (LO THRU
12=5) (LO THRU 17=6) (LO THRU HI=7) (ELSE=SYSMIS) INTO 工作时间分组.
VARIABLE LABELS 工作时间分组 'Years with current employer (分箱化)'.
FORMATS 工作时间分组 (F5.0).
VALUE LABELS 工作时间分组 1 '' 2 '' 3 '' 4 '' 5 '' 6 '' 7 ''.
VARIABLE LEVEL 工作时间分组 (ORDINAL).
*address.
RECODE address (MISSING=COPY) (LO THRU 1=1) (LO THRU 2=2) (LO THRU 4=3) (LO THRU 6=4) (LO THRU
7=5) (LO THRU 10=6) (LO THRU 13=7) (LO THRU 17=8) (LO THRU HI=9) (ELSE=SYSMIS) INTO 居住时间分组.
VARIABLE LABELS 居住时间分组 'Years at current address (分箱化)'.
FORMATS 居住时间分组 (F5.0).
VALUE LABELS 居住时间分组 1 '' 2 '' 3 '' 4 '' 5 '' 6 '' 7 '' 8 '' 9 ''.
VARIABLE LEVEL 居住时间分组 (ORDINAL).
*income.
RECODE income (MISSING=COPY) (LO THRU 22.8=1) (LO THRU 30=2) (LO THRU 40.3=3) (LO THRU 62.05=4)
(LO THRU HI=5) (ELSE=SYSMIS) INTO 收入分组.
VARIABLE LABELS 收入分组 'Household income in thousands (分箱化)'.
FORMATS 收入分组 (F5.0).
VALUE LABELS 收入分组 1 '' 2 '' 3 '' 4 '' 5 ''.
VARIABLE LEVEL 收入分组 (ORDINAL).
*debtinc.
RECODE debtinc (MISSING=COPY) (LO THRU 3.04=1) (LO THRU 4.675=2) (LO THRU 6.31=3) (LO THRU 7.8=4)
(LO THRU 9.59=5) (LO THRU 11.61=6) (LO THRU 14.46=7) (LO THRU 18.62=8) (LO THRU HI=9) (ELSE=SYSMIS)
INTO 贷款收入比分组.
VARIABLE LABELS 贷款收入比分组 'Debt to income ratio (x100) (分箱化)'.
FORMATS 贷款收入比分组 (F5.0).
VALUE LABELS 贷款收入比分组 1 '' 2 '' 3 '' 4 '' 5 '' 6 '' 7 '' 8 '' 9 ''.
VARIABLE LEVEL 贷款收入比分组 (ORDINAL).
*creddebt.
RECODE creddebt (MISSING=COPY) (LO THRU 0.2688=1) (LO THRU 0.54487876=2) (LO THRU 0.90620424=3)
(LO THRU 1.4342041=4) (LO THRU 2.58739299=5) (LO THRU HI=6) (ELSE=SYSMIS) INTO 信用卡分组.
VARIABLE LABELS 信用卡分组 'Credit card debt in thousands (分箱化)'.
FORMATS 信用卡分组 (F5.0).
VALUE LABELS 信用卡分组 1 '' 2 '' 3 '' 4 '' 5 '' 6 ''.
VARIABLE LEVEL 信用卡分组 (ORDINAL).
*othdebt.
RECODE othdebt (MISSING=COPY) (LO THRU 0.74850048=1) (LO THRU 1.27342103=2) (LO THRU 1.96120368=3)
(LO THRU 3.01172788=4) (LO THRU 4.97349762=5) (LO THRU HI=6) (ELSE=SYSMIS) INTO 其他贷款分组.
VARIABLE LABELS 其他贷款分组 'Other debt in thousands (分箱化)'.
FORMATS 其他贷款分组 (F5.0).
VALUE LABELS 其他贷款分组 1 '' 2 '' 3 '' 4 '' 5 '' 6 ''.
VARIABLE LEVEL 其他贷款分组 (ORDINAL).
EXECUTE.
分组结果解读: ![](https://i-blog.csdnimg.cn/blog_migrate/2de1167152dacff150ff86542c089323.png)
用spss手工求解woe和IV:
分析 → 表 → 定制表
把概率比、概率差的结果表转化为数据集:
- OMS → 打开
- 运行定制表
- OMS → 关闭
实用程序 → OMS控制面板
→ 重新运行定制表 →
→ 产生一张新的数据集
数据 → 汇总
数据拆分:
数据 → 拆分文件
前期一般多分组,后期合并比拆分更容易;
woe优点:
- 处理缺失值
- 优化分组
- 加强监督(分组后IV值变大变小)
- 非线性直线化
一键操作:编辑 → 选项 → 文件位置
金融行业选择:银行(申请√ → 第1;行为√ → 第2;催收×);电商金融系统(消费贷√ → 第1;现金贷:申请 → 第2 / 行为 → 第3)
4.3、哑变量
名义变量没有顺序,需转换;
转换 → 创建虚变量
回归 | 正态 | 异常 | 异方差 | x选择 | 共线性 |
线性 | √ | √ | √ | √ | √ |
logistic | × | × | × | √ | √ |