二分类Logistic回归模型
Logistic回归属于概率型的非线性回归,分为二分类和多分类的回归模型。这里只讲二分类。
对于二分类的Logistic回归,因变量y只有“是、否”两个取值,记为1和0。这种值为0/1的二值品质型变量,我们称其为二分类变量。
假设在自变量$x_{1}, x_{2}, \cdots, x_{p}$作用下,y取“是”的概率是p,则取“否”的概率是1-p,研究的是当y取“是”发生的模率p与自变量$x_{1}, x_{2}, \cdots, x_{p}$的关系。
Logistic回归模型
①Logit变换
Logit 变换以前用于人口学领域,1970年被Cox引入来解决曲线直线化问题。
通常把某种结果出现的概率与不出现的概率之比称为称为事件的优势比odds,即假设在p个独立自变量$x_{1}, x_{2}, \cdots, x_{p}$作用下,记y取1的概率是$p=P(y=1 | X)$,取0概率是$1-p$,取1和取0的概率之比为$\frac{p}{1-p}$。Logit变换即取对数:$$\lambda = \ln ({\rm{ odds }}) = \ln \frac{p}{{1 - p}}$$
②Logistic函数
Logistic中文意思为“逻辑”,但是这里,并不是逻辑的意思,而是通过logit变换来命名的。
二元logistic回归是指因变量为二分类变量的回归分析,目标概率的取值会在0~1之间,但是回归方程的因变量取值却落在实数集当中,这个是不能够接受的,所以,可以先将目标概率做Logit变换,这样它的取值区间变成了整个实数集,采用这种处理方法的回归分析,就是Logistic回归。Logistic函数为:
$$\operatorname{Logit}(p)=\ln \left(\frac{p}{1-p}\right)=Z,p=\frac{1}{1+\mathrm{e}^{-2}}$$
Logistic回归模型中的因变量只有1和0(如是和否、发生和不发生)两种取值。对odds取自然对数即得Logistic变换$\operatorname{Logit}(p)=\ln \left(\frac{p}{1-p}\right) A$。
当p在(0,1)之间变化时,odds的取值范围是(0,+oo),则Logistic函数的取值范围是(-oo,+oo)。
③Logistic回归模型
Logistic 回归模型是建立$\ln \left(\frac{p}{1-p}\right)$与自然变量的线性回归模型。
Logistic 回归模型的公式为:$$\ln \left(\frac{p}{1-p}\right)=\beta_{0}+\beta_{1} x_{1}+\cdots+\beta_{p} x_{p}+\varepsilon$$
因为$\ln \left(\frac{p}{1-p}\right)$的取值范围是(-oo,+oo),这样,自变量$x_{1}, x_{2}, \cdots, x_{p}$可在任意范围内取值。
记$g(x)=\beta_{0}+\beta_{1} x_{1}+\dots+\beta_{p} x_{p}$,得到:$$\begin{array}{c}{p=P(y=1 | X)=\frac{1}{1+e^{-\mathrm{g}(x)}}} \\ {1-p=P(y=0 | X)=1-\frac{1}{1+e^{-\mathrm{g}(x)}}=\frac{1}{1+e^{\mathrm{g}(\mathrm{x})}}}\end{array}$$
解释:$$\frac{p}{1-p}=e^{\beta_{0}+\beta_{1}x_{1}+\ldots+\beta_\mathrm{p}x_{p} +\varepsilon}$$
其中,$\beta_{0}$为在没有自变量,即$x_{1}, x_{2}, \cdots, x_{p}$全部取0,y=1与y=0发生概率之比的自然对数。
$\beta_{i}$为某自变量x变化时,即x=1与x=0相比,y=1优势比的对数值。
和列联表、最小二乘法的区别
和列联表区别
对于分类资料的分析,当要考察的影响因素较少,且也为分类变量时,分析者常用列联表的形式对这种资料进行整理,并使用卡方检验来进行分析。
局限性:
①无法描述其作用大小及方向,更不能考察各因素间是否存在交互作用;
②该方法对样本含量的要求较大,当控制的分层因素较多时,单元格被划分的越来越细,列联表的格子中频数可能很小,将导致检验结果的不可靠。
③卡方检验无法对连续性自变量的影响进行分析,而这将大大限制其应用范围。
和最小二乘法区别
①取值区间:上述模型进行预报的范围为整个实数集,而模型左边的取值范围为0≤Ps1,二者并不相符。模型本身不能保证在自变量的各种组合下,因变量的估计值仍限制在0~1内。
②曲线关联:根据大量的观察,反应变量P与自变量的关系通常不是直线关系,而是S型曲线关系。显然,线性关联是线性回归中至关重要的一个前提假设,而在上述模型中这一假设是明显无法满足的。
建模步骤与MATLAB实现
步骤:
①根据挖掘的目的设置指标变量:$y, x_{1}, x_{2}, \cdots, x_{p}$。
②列出回归方程:$$\ln \left(\frac{p}{1-p}\right)=\beta_{0}+\beta_{1} x_{1}+\cdots+\beta_{p} x_{p}+\varepsilon$$
③用$\ln \left(\frac{p}{1-p}\right)$和自变量列出线性回归方程,估计回归系数。
④模型检验——F检验,应用方差分析表对模型进行F检验。
根据输出的方差分析表中的F值和p值来检验该回归方程是否显著,如果p值小于显著性水平a则模型通过检验,可以进行下一步回归系数的检验;否则要重新选择指标变量,重新建立回归方程。
⑤回归系数检验——t检验,应用参数估计表对回归系数进行t检验。
在多元线性回归中,回归方程显著并不意味着每个自变量对y的影响都显著,为了从回归方程中剔除那些次要的、可有可无的变量,重新建立更为简单有效的回归方程,需要对每个自变量进行显著性检验,检验结果由参数估计表得到,采用逐步回归法,首先剔除掉最不显著的因变量,重新构造回归方程,一直到模型和参与的回归系数都通过检验;
⑥预测控制。
利用MATLAB对银行贷款拖欠率数据进行逻辑回归分析,分别采用逐步寻优(逐步剔除掉最不显著的因变量)和使用MATLAB自带的逐步向前、向后回归函数进行建模。
%% 逻辑回归 自动建模
clear;
% 参数初始化
filename = '../data/bankloan.xls' ;
%% 读取数据
[num,txt] = xlsread(filename);
X = num(:,:end-);
Y = num(:,end);
%% 递归建模
flag =;
mdl = fitglm(X,Y,'linear','distr','binomial','Link','logit');
while flag ==
disp(mdl); % 打印model
pValue = mdl.Coefficients.pValue;
pValue_gt05 =pValue>0.05 ;
if sum(pValue_gt05)== % 没有pValue值大于0.05的值
flag =;
break;
end
% 移除pValue中大于0.05的变量最大的变量
fprintf('\n移除变量:');
[t,index]= max(pValue,[],);
fprintf('%s\t',mdl.CoefficientNames{,index});
fprintf('\n模型如下:');
if index-~=
removeVariance =mdl.CoefficientNames{,index};
else
removeVariance ='';
end
% 从模型中移除变量
mdl = removeTerms(mdl,removeVariance);
end
%% 自动建模 ,添加变量
disp('添加变量,自动建模中...');
mdl2 = stepwiseglm(X,Y,'constant','Distribution','binomial','Link','logit');
disp('添加变量,自动建模模型如下:')
disp(mdl2);
%% 自动建模 , 移除变量
disp('移除变量,自动建模中...');
mdl3 =stepwiseglm(X,Y,'linear','Distribution','binomial','Link','logit');
disp('移除变量,自动建模模型如下:')
disp(mdl3);
二分类Logistic回归模型的更多相关文章
- SPSS数据分析—二分类Logistic回归模型
对于分类变量,我们知道通常使用卡方检验,但卡方检验仅能分析因素的作用,无法继续分析其作用大小和方向,并且当因素水平过多时,单元格被划分的越来越细,频数有可能为0,导致结果不准确,最重要的是卡方检验不能 ...
- SPSS数据分析—多分类Logistic回归模型
前面我们说过二分类Logistic回归模型,但分类变量并不只是二分类一种,还有多分类,本次我们介绍当因变量为多分类时的Logistic回归模型. 多分类Logistic回归模型又分为有序多分类Logi ...
- SAS学习笔记36 二分类logistic回归
这里所拟合模型的AIC和SC统计量的值均小于只有截距的模型的相应统计量的值,说明含有自变量的模型较仅含有常数项的要好 但模型的最大重新换算 R 方为0.0993,说明模型拟合效果并不好,可能有其他危险 ...
- 如何在R语言中使用Logistic回归模型
在日常学习或工作中经常会使用线性回归模型对某一事物进行预测,例如预测房价.身高.GDP.学生成绩等,发现这些被预测的变量都属于连续型变量.然而有些情况下,被预测变量可能是二元变量,即成功或失败.流失或 ...
- logistic回归模型
一.模型简介 线性回归默认因变量为连续变量,而实际分析中,有时候会遇到因变量为分类变量的情况,例如阴性阳性.性别.血型等.此时如果还使用前面介绍的线性回归模型进行拟合的话,会出现问题,以二分类变量为例 ...
- Softmax回归——logistic回归模型在多分类问题上的推广
Softmax回归 Contents [hide] 1 简介 2 代价函数 3 Softmax回归模型参数化的特点 4 权重衰减 5 Softmax回归与Logistic 回归的关系 6 Softma ...
- SPSS数据分析—配对Logistic回归模型
Lofistic回归模型也可以用于配对资料,但是其分析方法和操作方法均与之前介绍的不同,具体表现 在以下几个方面1.每个配对组共有同一个回归参数,也就是说协变量在不同配对组中的作用相同2.常数项随着配 ...
- 机器学习 —— 基础整理(五)线性回归;二项Logistic回归;Softmax回归及其梯度推导;广义线性模型
本文简单整理了以下内容: (一)线性回归 (二)二分类:二项Logistic回归 (三)多分类:Softmax回归 (四)广义线性模型 闲话:二项Logistic回归是我去年入门机器学习时学的第一个模 ...
- 机器学习笔记(四)Logistic回归模型实现
一.Logistic回归实现 (一)特征值较少的情况 1. 实验数据 吴恩达<机器学习>第二课时作业提供数据1.判断一个学生能否被一个大学录取,给出的数据集为学生两门课的成绩和是否被录取 ...
随机推荐
- VisualGC,JVMStat安装配置
通过VisualGC工具可以通过图形化方式查看JVM垃圾收集的情况. http://www.oracle.com/technetwork/java/jvmstat-142257.html 下载 htt ...
- IDEA更改Maven项目的webapp的版本号
使用Maven新建的web项目后默认的web.xml为2.3的,以前每次都是从其他文件中拷贝过来的2.5或者3.1的进行替换,怎样指定默认创建web项目的版本? 1.使用IDEA的Help文档具体的过 ...
- webservice的优缺点
优点: 1.采用xml支持跨平台远程调用. 2.基于http的soap协议,可跨越防火墙 3.支持面向对象开发 4.有利于软件和数据的重用,实现松耦合. 缺点: 1.由于soap是基于xml传输,本身 ...
- 百度ueditor中复制word图文时图片转存任然保持灰色不可用
官网地址http://ueditor.baidu.com Git 地址 https://github.com/fex-team/ueditor 参考博客地址 http://blog.ncmem.com ...
- [USACO5.5] 矩形周长Picture
https://www.luogu.org/problemnew/show/P1856 1.每个矩形由两条横向边和两条纵向边组成. 2.对于横向边,按纵坐标排序.设当前讨论的边为 A [s , t] ...
- House Lawn Kattis - houselawn
Problem You have just bought a new house, and it has a huge, beautiful lawn. A lawn that needs cutti ...
- ansible的become
# ansible sudo 问题 官方下载centos7.6fcow2镜像不给直接远程ssh了,所以必须sudo,但是有的命令sudo也解决不了的如管道重定向还有多个命令组合. 解决办法: vim ...
- docker容器中查看容器linux版本
root@dae5aecea3dd:~# cat /etc/issue Ubuntu LTS \n \l
- Liunx之nginx配置
一.nginx安装 卸载yum安装的ngjnx yum remove nginx -y 编译安装nginx步骤 编译安装nginx的步骤 1.解决软件依赖 yum install gcc patch ...
- RuntimeException和Exception的区别
1.java将所有的错误封装为一个对象,其根本父类为Throwable, Throwable有两个子类:Error和Exception. 2.Error是Throwable 的子类,用于指示合理的应用 ...