前面的博客有介绍过对连续的变量进行线性回归分析,从而达到对因变量的预测或者解释作用。那么如果因变量是离散变量呢?在做行为预测的时候通常只有“做”与“不做的区别”、“0”与“1”的区别,这是我们就要用到logistic分析(逻辑回归分析,非线性模型)。

参数解释(对变量的评价)

发生比(odds): ODDS=事件发生概率/事件不发生的概率=P/(1-P)

发生比率(odds ratio):odds ratio=oddsB/oddsA       (组B相对于组A更容易发生的比率)

注:odds ratio大于1或者小于1都有意义,代表自变量的两个分组有差异性,对因变量的发生概率有作用。若等于1的话,该组变量对事件发生概率没有任何作用。

参数估计方法

线性回归中,主要是采用最小二乘法进行参数估计,使其残差平方和最小。同时在线性回归中最大似然估计和最小二乘发估计结果是一致的,但不同的是极大似然法可以用于非线性模型,又因为逻辑回归是非线性模型,所以逻辑回归最常用的估计方法是极大似然法。

极大似然公式:L(Θ)=P(Y1)P(Y2)...p(YN)            P为事件发生概率PI=1/(1+E-(α+βXI))

在样本较大时,极大似然估计满足相合性、渐进有效性、渐进正太性。但是在样本观测少于100时,估计的风险会比较大,大于100可以介绍大于500则更加充分。

模型评价

这里介绍拟合优度的评价的两个标准:AIC准则和SC准则,两统计量越小说明模型拟合的越好,越可信。

若事件发生的观测有n条,时间不发生的观测有M条,则称该数据有n*m个观测数据对,

在一个观测数据对中,P>1-P,则为和谐对(concordant)。P<1-P,则为不和谐对(discordant)。P=1-P,则称为结。

在预测准确性有一个统计量C=(NC-0.5ND+0.5T)/T,其中NC为和谐对数,ND为不和谐对数,这里我们就可以根据C统计量来表明模型的区分度,例如C=0.68,则表示事件发生的概率比不发生的概率大的可能性为0.68。

使用假设条件

①数据来自随机样本

②共线性敏感,自变量之间是非线性关系

③因变量只能取0、1

接下来看案例

PROC LOGISTIC DATA=EX.LOAN PLOTS(ONLY)=(EFFECT(CLBAND X=(DELINQ DEBTINC REASON))
ODDSRATIO (TYPE=HORIZONTALSTAT RANGE=CLIP));
CLASS EDUCATION(REF="college") REASON(REF="car")/PARAM=REFERENCE;
MODEL BAD(EVENT="")=DELINQ DEBTINC YROPEN EDUCATION REASON DELINQ*DEBTINC DEBTINC*EDUCATION/CLODDS=PL STB PARMLABEL;
UNITS DEBTINC= -;
ODDSRATIO EDUCATION/DIFF=ALL CL=PL;
ODDSRATIO REASON/DIFF=ALL CL=PL;
TITLE "BAD LOAN MODEL";
RUN;

PROC LOGISTIC可以用的常见的选项是noprint 、plots、namelen=n 分别对应功能为:不打印结果、输出画图、变量名长度为N(20~200)。其中plots语句中有ONLY表明指输出接下来指定图形。

后面跟着个effect选项,括号中的自选项有CLBAND和showobs指定在图形中表明预测概率的置信区域和观测,后面还有子选项X=变量1 变量2.....表明画出多个自变量的预测效应图(假设其余变量都取均值,只考虑指定自变量的因变量预测情况)。这里指定了三个变量,就会输出三个预测效果图。注:因变量分类大于2则effect失效。

PROC LOGISTIC的选项ODDSRATIO,后面跟着两个子选项TYPE和range,type=horizontalstat表明图形有段显示发生比率和置信区间,range=clip表明图形横坐标的范围是计算到的最小发生比率到最大发生比率。

语句CLASS,选项PARAM=可以去三个值:EFFECT \REFERENCE\ORDINAL,分别对应了三种不同将一个自变量分解成K-1个新变量的不同取值方法(一个变量有K个水平第  k个水平为参考水平!)三种方法的不同在于对参考水平变量取值分别去-1、0、按水平的升序取值(用于顺序变量)。

选项REF=‘’的作用为指定变量中的某个取值作为参考水平。

MODEL语句有且只能有一个。这里的因变量BAD后面跟着选项event=“1”表明bad值为1时代表事件发生,此模型是计算BAD=1发生的概率。然后等号后面跟着可能进入模型的自变量,其中还有两个交互的自变量,为了研究两个变量是否有交互作用。

model 后面跟着选项CLODDS=表示输出事件发生比率的执行区间(PL表示用剖面函数计算, wald表示根据wald检验计算,both表示两种方法都计算一遍)。

model后面的选项STB表示对输出标准化,此选项是针对不同变量的度量单位可能不一致作用的,标准化后能更加客观的对比不同变量对预测因变量的作用的大小。

model后面还有选项parmlabel表明为极大似然估计的表中输出标签。

UNITS语句:上代码中表示DEBTINNC的值增加或者减少5个单位时计算一次发生比率。(默认变化一个单位计算一次,变化非常微小,步长跨度大一些会更有意义)。

ODSSRATIO语句,计算某一自变量的水平相对于参考水平的发生比率,选项DIFF=ALL表示比较所有水平间的发生比率,DIFF=REF表明相对参考水平的发生比率。选项CL=WALD\PL\BOTH和上文中讲的一致。

一下是输出结果:

先输出一些基本情况,因变量水平数,观测数,以及频数,重要的是以什么条件建模(BAD=1)

表一为根据两个变量的取不同水平,创建的新变量的取值

表二为模型的拟合优度判断,几个统计量是用于同一数据不同模型之间的比较才有意义,这里可以暂时忽略。

表三原假设为无线性关系(全局0假设),而根据三个统计量判断均是拒绝原假设,表示logit于自变量的线性关系显著。

上表为变量的联合检验,也成为三效应检验,分别表示各个自变量对模型的显著性,即对因变量事件的发生有没有显著性。

以0.05的置信水平上有EDUCATION和DEBTINC*EDUCAION变量对模型没有显著性,其余的都有显著性。

各个变量的参数估计包括截距的估计,还有标准化的参数估计(因为用了STB选项)。标准化后的估计值一般用来衡量不同自变量对因变量影响的大小(仅限于连续自变量,对于分类自变量标准化参数估计无意义)。还有一个统计量用于检查参数非零的显著性。

需要注意的是这里有两个变量EDUCATION和REASON的不同水平单独作为了一个变量进入模型。

注:以上是对所有变量都进行的参数估计,若在model后面再加一个选项SELECTION=FORWARD\BCKWARD\STEPWISE\SCORE指明一个模型选择法,则最终的结果就想之前的博客中一样,一步一步选择变量,最终得到一个类似于上表的表,区别在于不能进如模型的变量会不存在表中,如下图是向前选择的最终结果:

(一下为插入别的代码结果)

可见对变量进行筛选之后和不筛选是有区别的,一般认为筛选过的模型更加准确。

(以上为插入)

(以下为接着插入前的结果分析)

表一能衡量预测的准确性,一致部分的百分比即和观测于预测相同的占比有85.7,不一致的有14.1,不能确定的有0.2.。比较有价值的统计量是发生比率C=0.858,表明事件发生的概率比事件不发生的概率大的可能性有0.858。证明模型的有效。

表二,由于程序用了oddsratio语句,最用对象为EDUCATION和REASON,系统对两个变量的不同水平进行了求发生比率估计,即表二。前文说了发生比率不能等于1,而其中有两个新变量的置信区间包含了1,说明不同水平间对于发生比是无差别的,即新变量对发生不显著的。所以该模型中只有REASON 中BUSINESS和car两个水平的发生比是显著的,还有一个reason中house和business两水平的发生比是显著的。

还可以从图中看出相同结果:

跟之前同理。

以上三图为自变量的预测效应图,分别控制别的自变量为均值或者参考水平是,单独看指定自变量和对因变量的预测效果。DEBTINC取值越大,预测概率越大。DELINQ取值越大,预测概率越大。对于分类变量得出business的预测概率最大。

LOGISTIC回归分析的更多相关文章

  1. Logistic回归分析简介

    Logistic回归:实际上属于判别分析,因拥有很差的判别效率而不常用. 1. 应用范围: ①     适用于流行病学资料的危险因素分析 ②     实验室中药物的剂量-反应关系 ③     临床试验 ...

  2. spss logistic回归分析结果如何分析

    spss logistic回归分析结果如何分析 如何用spss17.0进行二元和多元logistic回归分析 一.二元logistic回归分析 二元logistic回归分析的前提为因变量是可以转化为0 ...

  3. Logistic回归之有序logistic回归分析

    Logistic回归分析(logit回归)一般可分为3类,分别是二元logistic回归分析.多分类Logistic回归分析和有序Logistic回归分析.logistic回归分析类型如下所示. Lo ...

  4. Logistic回归分析之多分类Logistic回归

    Logistic回归分析(logit回归)一般可分为3类,分别是二元Logistic回归分析.多分类Logistic回归分析和有序Logistic回归分析.logistic回归分析类型如下所示. Lo ...

  5. Logistic回归分析之二元Logistic回归

    在研究X对于Y的影响时,如果Y为定量数据,那么使用多元线性回归分析(SPSSAU通用方法里面的线性回归):如果Y为定类数据,那么使用Logistic回归分析. 结合实际情况,可以将Logistic回归 ...

  6. 对logistic回归分析的两重认识

    logistic回归,回归给人的直观印象只是要求解一个模型的系数,然后可以预测某个变量的回归值.而logistic回归在应用中多了一层含义,它经常应用于分类中.第一重认识:logistic是给真正的回 ...

  7. 转载: scikit-learn学习之回归分析

    版权声明:<—— 本文为作者呕心沥血打造,若要转载,请注明出处@http://blog.csdn.net/gamer_gyt <—— 目录(?)[+] ================== ...

  8. 机器学习之三:logistic回归(最优化)

    一般来说,回归不用在分类问题上,因为回归是连续型模型,而且受噪声影响比较大.如果非要应用进入,可以使用logistic回归. logistic回归本质上是线性回归,只是在特征到结果的映射中加入了一层函 ...

  9. python3二元Logistics Regression 回归分析(LogisticRegression)

    纲要 boss说增加项目平台分析方法: T检验(独立样本T检验).线性回归.二元Logistics回归.因子分析.可靠性分析 根本不懂,一脸懵逼状态,分析部确实有人才,反正我是一脸懵 首先解释什么是二 ...

随机推荐

  1. Unity中使用扩展方法解决foreach导致的GC

    对于List这种顺序表,我们解决的时候还是可以使用for代替foreach即可.但是对于非顺序表,比如Dictionary或者Set之类,我们可以扩展方法Foreach,ForeachKey和Fore ...

  2. windows Vista-Server 2016系列激活脚本.cmd

    @ECHO OFFTITLE Windows 全版本系统激活ECHO 检测 操作系统版本...SET RQR=REG QUERY "HKLM\SOFTWARE\Microsoft\Windo ...

  3. CentOS搭建jdk

    一.检查是否安装JDK 一般安装好的CentOS会自带jdk, java -version rpm -qa | grep java 显示如下信息: java-1.4.2-gcj-compat-1.4. ...

  4. c#和java中的方法覆盖——virtual、override、new

    多态和覆盖 多态是面向对象编程中最为重要的概念之一,而覆盖又是体现多态最重要的方面.对于像c#和java这样的面向对象编程的语言来说,实现了在编译时只检查接口是否具备,而不需关心最终的实现,即最终的实 ...

  5. grunt安装详解及失败处理

    标签: 1.官网 nodejs官网 https://nodejs.org/en/ Grunt官网 http://gruntjs.com/ Grunt插件首页  http://gruntjs.com/p ...

  6. Unity UGUI —— 无限循环List

    还记得大学毕业刚工作的时候是做flash的开发,那时候看到别人写的各种各样的UI组件就非常佩服,后来自己也慢慢尝试着写,发现其实也就那么回事.UI的开发其实技术的成分相对来说不算多,但是一个好的UI是 ...

  7. delphi 获取硬盘序列号、cpu号、bios号、网卡号

    delphi 获取硬盘 序列号 function GetIdeNum: String; type TSrbIoControl = packed record HeaderLength : ULONG; ...

  8. Extjs换肤+cookie皮肤记忆功能

    http://www.myext.cn/kaifa/a_102.html    Ext之家 <title>无标题页</title>    <link rel=" ...

  9. SQL Server如何固定执行计划

    SQL Server 其实从SQL Server 2005开始,也提供了类似ORACLE中固定执行计划的功能,只是好像很少人使用这个功能.当然在SQL Server中不叫"固定执行计划&qu ...

  10. JSTL标签之c:foreach,c:if标签小结

    <c:forEach>标签用于通用数据循环,它有以下属性 属 性 描 述 是否必须 缺省值 items 进行循环的项目 否 无 begin 开始条件 否 0 end 结束条件 否 集合中的 ...