美文网首页
logistic回归和案例

logistic回归和案例

作者: DTAnalystLi | 来源:发表于2017-02-13 00:25 被阅读0次

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

    logistic属于预测性模型。

    • 预测性模型能够帮助销售部门,提高销售活动的一个工具,能针对用户实现精准营销
    Paste_Image.png
    • 统计模型应用表


      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回归模型
      Paste_Image.png
      区间在0-1之间;把原本预测出来的正负无穷的值,压缩为(0,1)之间,能更好预测一个时间发生的概率。

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

    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

    模型评估指标

    Paste_Image.png

    Omnlibus检验


    Paste_Image.png

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

    logistic回归的R方值

    Paste_Image.png
    总体百分比 = 预测正确数((NO,NO)+(YES,YES))/总数
    混淆矩阵(用于决策类模型)
    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值


      Paste_Image.png
    • 曲线下的面积(AUC)越大越好
    Paste_Image.png
    关于ROC曲线,更详细可以看我兄弟的这篇文章:
    http://www.cnblogs.com/karlpearson/p/6185091.html

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

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

    ②/①得到

    Paste_Image.png
    所以exp(B)是x每增加1个单位的变化值
    在指数e中幂<0起点为0,无需处理。如果幂>0,起点为1,那么就需要减去1让起点为0才能于幂<0的值有可比性。
    由于解释增加值,e0=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的话可以认定为强影响点

    Paste_Image.png Paste_Image.png

    spss案例

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


    Paste_Image.png

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

    Paste_Image.png

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

    Paste_Image.png

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

    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回归和案例

          本文链接:https://www.haomeiwen.com/subject/mjfbittx.html