一、Logistic回归

与多元线性回归不同,logistic回归可以用来解决分类问题,其中二项Logistic回归通常可以解决是否购买、是否流失等二分类问题,而多项Logistic回归可以用于多分类的操作。本篇先介绍二项的logistic回归

python logistic回归逐步回归 logistic逐步回归spss_数据

1.1为什么Logistic回归可以用来解决分类问题?

回顾多元线性回归问题的经验,可以发现多元线性回归的目标是数值型变量,假定为y,y的取值范围是全体实数,即

y = 𝛽1+𝜔2𝛽2+𝜔3𝛽3+⋯+𝛼

当目标函数是(二)分类变量时,y的取值是{0,1}这样一个集合,无法用权重和偏差来表示,即等号不成立,为了使y成为一条线性函数,需要经历以下变换:

①令u = p(y = 1)/ 1 - p(y = 1),此时u的取值范围是【0,+∞】————(p是指概率)

②对u取对数,令Y= ln u,此时Y的取值范围就是【-∞,+∞】,可以使等号成立了,这就是Logistic变换

1.2Logistic回归的统计检验

1、-2对数似然值(-2 log likelihood, -2LL) ————检验回归方程的显著性,取值范围【0,1】,数值越大方程越显著

2、回归系数的检验 —————————————Wald检验

3、回归方程拟合优度的检验 —————————Cox&Snellp R2统计量、Nagelkerkep R2统计量(修正的)、混淆矩阵

二、数据转化

2.1数据输入

此步骤用于读取数据

添加“类型”节点以定义字段,从而确保所有测量级别都已正确设置。例如,大多数值为 0 和 1 的字段都可以用作标志字段,但某些字段,比如性别,作为包含两个值的名义字段会更加准确

python logistic回归逐步回归 logistic逐步回归spss_人工智能_02

将流失字段 chum 级别设置为目标,其他所有字段设置为输入

2.2数据过滤

数据集一共有42个字段,此步骤用于排除一些无关变量,以便得到更优的结果

为“类型”节点添加“特征选择”模型,可以用来删除不能为目标函数添加任何有用信息的变量(无关变量)

进一步的,打开“特征选择”模型,选择“生成”,点击“过滤”,从而生成过滤节点,在对话框中,选择所有已标记的字段:重要,以上操作可以实现仅选择被认为很重要的数据来用作预测变量

python logistic回归逐步回归 logistic逐步回归spss_数据_03

2.3数据审核

此步骤检查数据是否具有异常值、缺失值

将“数据审核”节点添加到生成的过滤节点中,在“数据审核”浏览器的“质量”选项卡上,单击完成百分比列以便按数值升序顺序对此列进行排序。这样就可以识别所有含有大量缺失数据的字段;在本示例中,唯一需要修改的字段是 logtoll ,其完成值比例小于 50%

python logistic回归逐步回归 logistic逐步回归spss_数据_04

在缺失插补列中,单击指定 ,对于 插补条件 ,选择 空白值和空值 ,对于固定值,选择 平均值 ,选择 平均值 可确保插补值不会反过来影响总数据中所有值的平均值

python logistic回归逐步回归 logistic逐步回归spss_人工智能_05

在“数据审核”的“质量”选项卡上,生成缺失值超节点,在“缺失值超节点”对话框中,将样本大小增加到 50%,然后单击确定,超节点将显示在流画布中,其标题为:缺失值插补,将超节点附加到过滤节点

python logistic回归逐步回归 logistic逐步回归spss_人工智能_06

python logistic回归逐步回归 logistic逐步回归spss_数据挖掘_07

三、二项Logistic回归

在建模选项卡中添加logistic节点,在 Logistic 节点上,单击“模型”选项卡并选择二项过程。在 二项过程 区域,选择 向前步进 法

python logistic回归逐步回归 logistic逐步回归spss_字段_08

在“专家”选项卡上,选择专家模式,然后单击输出。此时显示“高级输出”对话框。在“高级输出”对话框中,选择在每个步骤作为显示类型。选择 迭代历史记录 和 参数估计 ,然后单击 确定

python logistic回归逐步回归 logistic逐步回归spss_回归_09

在 Logistic 节点上,单击运行创建模型,在结果模型中,点击 高级 选项卡,重点关注分类表(Classification Table)

python logistic回归逐步回归 logistic逐步回归spss_人工智能_10

向前步进法从空模型(即,没有预测变量的模型)开始,可以将此空模型用作与最终构建的模型进行比较的基础。按照惯例,此空模型会将所有值都预测为 0,因此其准确度为 72.6%,这完全是因为已正确预测到 726 个未流失的客户。但是,根本没有正确预测到已流失的客户

python logistic回归逐步回归 logistic逐步回归spss_人工智能_11

此分类表显示了在每个步骤中添加预测变量之后模型的结果。在第一个步骤中(在仅使用了一个预测变量之后),模型预测流失的准确性就已从 0.0% 增加到 29.9%

分类表显示步骤 8 为最后一步。在此阶段,算法已确定不再需要向模型添加任何其他预测变量。虽然预测非流失客户的准确性有所下降,达到了 91.2%,但预测已流失客户的准确性却从原来的 0% 上升到了 47.1%。这相比原来不使用任何预测变量的空模型其有效性显著提高

python logistic回归逐步回归 logistic逐步回归spss_数据_12

观察总体模型的统计检验中的 Nagelkerke R2列,发现随着预测模型的逐步加入,变量的显著性也逐渐提高