大数据分析笔记 (4.2) - 逻辑回归分析(Logistic Regression)

总览

在线性回归中,输出变量是连续变量。当结果变量是分类型(categorical)的,那么逻辑回归可以用来基于输入变量预测结果的可能性。逻辑回归可以应用于有多个值的结果变量,但是本文的讨论研究的都是两个值的结果变量。比如真/假,通过/失败。

应用

  • 医药:判断患者对某个药物或手术有效的可能性。
  • 金融:判断申请人会拖欠贷款的概率。
  • 营销:判断一个客户更换运营商的概率。(用户是否流失)
  • 工程:判断机器零件出现故障或失效的概率。

模型 (Model Description)

逻辑回归基于逻辑函数 f(y):
大数据分析笔记 (4.2) - 逻辑回归分析(Logistic Regression)
当y趋于无穷大时,f(y)无限接近1。当y趋于无穷小时,f(y)无限接近0。所以,逻辑函数f(y)值随着y值的增大,在 0~1 之间变化。由于逻辑函数f(y)的取值范围是 (0, 1),所以该函数适合用来模拟特定结果的发生概率。
为了预测一个结果的可能性,y需要作为输入变量的一个函数。在逻辑回归中,y表示为输入变量的一个线性函数。如以下公式:
大数据分析笔记 (4.2) - 逻辑回归分析(Logistic Regression)
所以,基于输入变量,事件发生的概率如下:(与线性回归模型使用的公式不同,其中y值不能被直接观察到,只有f(y)的值能被直接观察)
大数据分析笔记 (4.2) - 逻辑回归分析(Logistic Regression)
用p来代表f(y),公式可以被重写为:
大数据分析笔记 (4.2) - 逻辑回归分析(Logistic Regression)
其中 ln(p / 1- p)称为对数差异比 (log odds ratio),或者是 p 的对数成败比率曲线 (logit)。
极大似然估计 (Maximum Likelihood Estimation, MLE) 这样的技术可以用来估计模型参数。MLE决定了模型参数的值,这些值可以最大化观测到给定数据集的可能性(maximize the chances of observing)。

诊断

偏差和伪R2 (Deviance and the Pseudo-R2)

偏差:衡量逻辑回归模型的拟合质量。偏差定义为 -2 * logL,其中L是用来计算参数估计值的似然函数(likelihood function f(β0, β1, …, βp-1))的最大值。偏差与残差平方和(sum of squares of residuals)具有相似的作用。
无效偏差(null deviance):仅仅基于截距项(intercept)的似然函数 (y = - β0) 的结果。
残差(residual deviance):基于特定逻辑模型中的参数的似然函数的结果。f(β0 , β1 ,…, βp-1 )

Pseudo-R2:衡量拟合模型相比默认模型 (没有预测变量且只有一个截距项)在解释数据时效果有多好。pseudo-R2的值越接近1则表示它要比简单的默认模型要好。
大数据分析笔记 (4.2) - 逻辑回归分析(Logistic Regression)

偏差和对数似然率检验(Log-likelihood test statistic)

大数据分析笔记 (4.2) - 逻辑回归分析(Logistic Regression)
在逻辑回归的案例下
大数据分析笔记 (4.2) - 逻辑回归分析(Logistic Regression)
在一个假设检验中,一个较大的T值表明拟合模型(better fitted model)明显优于只使用截距项的零模型。

每个模型的剩余偏差(residual deviance)可以用于执行基于基础模型的假设检验。可以让两个模型的剩余偏差相减,根据其差值和自由度(degree of freedom)来计算其p-value。从而来确定原假设是否会被拒绝(两个模型没有统计学上的显著不同)。通常情况下,当一步步地在逻辑回归模型中添加变量或移除变量时,对数似然率检验特别有用。

ROC曲线

逻辑回归经常被作为一个分类器,基于模型提供的预测概率(predicted probability)给人,物体或交易打标签。通常,0.5作为默认的概率阈值来取分两类标签。然而,为了避免误报 False Positive (即,把负样本预测为了正)和漏报 False Negative (即,把正样本预测为了负),我们也可以根据偏好来使用任意阈值。

真阳性 (True Positive TP): 预测为Positive,实际为Positive
真阴性 (True Negative TN): 预测为Negative,实际为Negative
假阳性 (False Positive FP), 预测为Positive,实际为Negative
假阴性 (False Negative, FN), 预测为Negative,实际为Positive

分类预测准确率假阳率 (False Positive Rate - FPR), 真阳率 (True Positive Rate - TPR) 计算如下
大数据分析笔记 (4.2) - 逻辑回归分析(Logistic Regression)
接收者操作特性(Receiver Operating Characteristic, ROC)曲线是真阳率(TPR)和假阳率(FPR)的对比图。一个分类器的最佳结果就是有一个低的FRP和一个高的TPR。
所以,从FRP轴上从左往右移动的时候,好的模型/分类器的TPR值会迅速接近1,同时FRP只有小小的变化。ROC曲线的轨迹在垂直方向越接近左上角的点 (0, 1)附近,模型执行的效果就越好。因此,一个有用的度量是计算ROC曲线下的区域面积(area under the ROC curve, AUC)。可以看出,这个区域的理论最大值为1。
大数据分析笔记 (4.2) - 逻辑回归分析(Logistic Regression)
下图表明了FPR和TPR的值是如何依赖于分类器所使用的阈值的。
大数据分析笔记 (4.2) - 逻辑回归分析(Logistic Regression)
当阈值为0时,每个项都被分类为阳性结果。因此TPR的值为1。然而所有的阴性结果也被分类为阳性结果,所以FPR值也是1。随着阈值增加,越来越多的阴性分类标签被分配,因此,FPR和TPR值也随之降低。当阈值达到1时,没有阳性标签被分配,那么FPR和TPR值都是0。
ROC也可以用于其他的分类器。

概率直方图

概率直方图可以将观测的值和逻辑回归中提供的预估概率进行可视化显示。
大数据分析笔记 (4.2) - 逻辑回归分析(Logistic Regression)

模型选择和注意事项

线性回归适合输入变量是连续变量或者离散变量 (包括分类变量) 但结果是连续变量的情况。
逻辑变量适合结果是分类变量的情况。

这两个模型都假设存在一个对输入变量的线性可加函数(linear additive function)。(如果假设不成立,那么回归技术就会表现不佳)

虽然一组输入变量可能对结果变量做出很好的预测,但是分析师不应该推断说输入变量直接导致了输出结果。即"相关性并不意味着因果关系"(correlation does not imply causation)。

Generalization issue: 当把一个已拟合模型应用于训练集之外的数据集时必须要谨慎。回归模型中的线性关系对于训练集外的数据很可能不再成立。

Multicolinearity issue (多重共线性): 如果有多个输入变量彼此之间高度相关,就是多重共线性。这会导致系数的估计有一个相对较大的绝对值,而且可能方向(正号或者负号)不对。如果可能,这些相关变量中的大部分应该从模型中去除,或者使用一个这些相关变量的函数作为新变量进行替换。(也可以使用岭回归 ridge regression 或者 索套回归 lasso regression)