logistic回归和案例

本文实现逻辑回归的方法主要使用R语言

logistic属于预测性模型。

  • 预测性模型能够帮助销售部门,提高销售活动的一个工具,能针对用户实现精准营销
logistic回归和案例_第1张图片
Paste_Image.png
  • 统计模型应用表


    logistic回归和案例_第2张图片
    Paste_Image.png
  • 逻辑回归相关概念

优势比(odds):事件发生的概率/事件不发生的概率
odds ratio 大白话讲就是胜率

Paste_Image.png

logit变换:给优势比取对数
Paste_Image.png

  • i 所有案例观察值
  • pi 第i个案例中一个事件发生的概率
  • ln 对数变换(以e为底)
    例如:
    性别X:1,1,1,1,1,2,2,2,2,2
    违约Y:1,0,0,1,0,1,1,1,0,0
    那么P1 = 2/5  P2=3/5
    logit回归模型
    logistic回归和案例_第3张图片
    Paste_Image.png

    区间在0-1之间;把原本预测出来的正负无穷的值,压缩为(0,1)之间,能更好预测一个时间发生的概率。

例如:在医学调查中,不吸烟组(A)共有80人,吸烟组(B)共有100人, 得肺癌的分别为:60人,90人

logistic回归和案例_第4张图片
Paste_Image.png

   那么A组中,“是”的概率为60/80
   那么B组中,“是”的概率为90/100
  
   优势比 = “是”得肺癌的人/“否”没有得肺癌的人
   A组odds=60/20=3 即odds(A组)=60/20=3
   B组odds=90/10=9 即odds(B组)=90/10=9
   Odds Ratio , B对A OR= 9/3 = 3
结论和意义:对一个吸烟者而言,得的肺癌的概率比不吸烟的人高3倍;

logit回归基于极大似然法
http://blog.csdn.net/zouxy09/article/details/8537620

模型评估指标

logistic回归和案例_第5张图片
Paste_Image.png

Omnlibus检验


Paste_Image.png

看方程的总体显著性,看卡方的显著性,主要是把方程中所有的X自变量压缩在一起,对因变量Y做的卡方,因此能够衡量方程的总体显著性。原假设:所有的系数值都相等而且为0

logistic回归的R方值

logistic回归和案例_第6张图片
Paste_Image.png

总体百分比 = 预测正确数((NO,NO)+(YES,YES))/总数
混淆矩阵(用于决策类模型)
logistic回归和案例_第7张图片
Paste_Image.png

  1. 正确率=(A+D)/(A+B+C+D) 评价模型优劣的指标
  • 灵敏度(Sensitivity ; 覆盖率、召回率recall;正例的覆盖率)= A/(A+B) 事件发生的覆盖程度
  • 命中率(Precision、PV+)=A/(A+C) 事件发生的准确程度
  • 特异度(Specificity;负例的覆盖率)=D/(C+D)
  • 负命中率(PV-)=D/(D+B)
    假设采用逻辑回归分类器,其给出针对每个实例为正类的概率,那么通过设定一个阈值如0.6,概率大于等于0.6的为正类,小于0.6的为负类。对应的就可以算出一组(FPR,TPR),在平面中得到对应坐标点。随着阈值的逐渐减小,越来越多的实例被划分为正类,但是这些正类中同样也掺杂着真正的负实例,即TPR和FPR会同时增大。阈值最大时,对应坐标点为(0,0),阈值最小时,对应坐标点(1,1)。

ROC曲线(用于排序类模型)

  • ROC曲线一般看测试集上的ROC值


    logistic回归和案例_第8张图片
    Paste_Image.png
  • 曲线下的面积(AUC)越大越好

logistic回归和案例_第9张图片
Paste_Image.png

关于ROC曲线,更详细可以看我兄弟的这篇文章:
http://www.cnblogs.com/karlpearson/p/6185091.html

模型系数解释
由于系数经过变换所以需要把变换还原

logistic回归和案例_第10张图片
Paste_Image.png

以变量creddebt数据为例:B=0.44 EXP(B) = e^0.44=1.553 由于模型进行了logistic变换,因此解释起来需要进行变换
Paste_Image.png

Paste_Image.png

②/①得到

logistic回归和案例_第11张图片
Paste_Image.png

所以exp(B)是x每增加1个单位的变化值
在指数e中幂<0起点为0,无需处理。如果幂>0,起点为1,那么就需要减去1让起点为0才能于幂<0的值有可比性。
由于解释增加值,e 0=1,起点为1,0.44>0,所以e0.44-1=0.553,解释就是当信用卡贷款增加1(千元),信用卡违约的风险概率增加55.3%。
如果要衡量creddebt对是否违约的影响程度,需要做标准化处理,即(exp(B)-1)/(exp(B)+1) = 0.2<0.35说明creddebt对是否违约的影响程度不高

概率P的计算

Paste_Image.png
Paste_Image.png

垂直特异性
需要三个值计算:学生化残差;库克距离;杠杆值
①库克距离/杠杆值 ~ 服从卡方分布(卡方界值为100)
②学生化残差^2 ~ 服从卡方(卡方界值为8)
如果①②同时大于100和8的话可以认定为强影响点

logistic回归和案例_第12张图片
Paste_Image.png
logistic回归和案例_第13张图片
Paste_Image.png

spss案例

打开spss > 分析 > 回归 > 二元Logistic


logistic回归和案例_第14张图片
Paste_Image.png

协变量:默认认为里面的变量是连续变量,分类变量也默认认为是连续变量
如果要区分分类变量需要点击“分类”

logistic回归和案例_第15张图片
Paste_Image.png

把分类变量选中,放入分类协变量框中

logistic回归和案例_第16张图片
Paste_Image.png

绘制roc曲线,评估模型好坏

logistic回归和案例_第17张图片
Paste_Image.png

检查模型的垂直特异性

案例

  • 汽车金融信用违约预测模型案例
    目标:根据申请人的资料预测他会不会违约,如果违约概率较高则拒绝
  • 分类变量之间的描述使用列联表分析
  • 构造逻辑回归
#随机抽样,建立训练集与测试集
set.seed(100)
select<-sample(1:nrow(accepts),length(accepts$application_id)*0.7)
train=accepts[select,]
test=accepts[-select,]
attach(train)
  • R中的logit回归
lg<-glm(bad_ind ~fico_score+bankruptcy_ind+tot_derog+age_oldest_tr+rev_util+ltv+veh_mileage,family=binomial(link='logit'))
summary(lg)
lg_ms<-step(lg,direction = "both")
summary(lg_ms)
  • 生成预测概率
train$p <- predict(lmg1,train,type = "response")
summary(train$p)
test$p<-predict(lmg1, test,type = "response") 

你可能感兴趣的:(logistic回归和案例)