逻辑回归变量系数可为负数吗?应该如何解释?

之前很多学员来问逻辑回归变量系数是否都应该为正数,如果出现负的变量系数该怎么办?是否需要重新建模?这些学员都是在网上搜索时,被错误信息误导。网上信息可以随意转载,且无人审核对错。我见过最多情况时很多文章正确信息夹杂着错误或不准确信息。今天我们来谈一下逻辑回归变量系数正负的问题。

图片

逻辑回归模型中的变量系数可以是负数。在逻辑回归中,变量系数表示了自变量对因变量的影响程度,它的正负号表示了影响的方向。正系数表示自变量增加会增加因变量的概率,负系数则表示自变量增加会减少因变量的概率。因此,负系数在逻辑回归模型中是合理存在的。

为了更好解释,我展示了英文原文释义Negative coefficients in a logistic regression model translate into odds ratios that are less than one (viz., (0,1)). That in turn, means that the predicted probability is decreasing as the covariate increases.

与预测变量 X 相关的逻辑回归系数 β 是 X 中每单位变化产生结果的对数几率的预期变化。因此,将预测变量增加 1 个单位(或从 1 个级别到下一个级别)会乘以具有以下结果的几率:结果为 e β。

这是一个例子:

假设我们要研究吸烟10年与心脏病的风险。下表显示了使用吸烟作为预测因子来模拟心脏病存在的逻辑回归的摘要:

图片

问题是:如何解读吸烟系数:β=0.38?

首先请注意,该系数具有统计显着性(与 p 值 < 0.05 相关),因此我们的模型表明吸烟确实会影响 10 年患心脏病的风险。因为它是一个正数,我们可以说吸烟会增加患心脏病的风险。

但增加多少呢?

1. 如果吸烟是一个二元变量(0:不吸烟者,1:吸烟者):

那么:e β = e 0.38 = 1.46 将是吸烟与心脏病风险相关的比值比。

这意味着:吸烟组患心脏病的几率是不吸烟组的1.46倍。

或者我们可以这样说:

吸烟组患心脏病的几率比不吸烟组高 46% (1.46 – 1 = 0.46)。

如果心脏病是一种罕见的结果,那么优势比就可以很好地近似相对风险。在这种情况下我们可以说:

与不吸烟者相比,吸烟者患心脏病的概率增加 1.46 倍。

或者我们可以这样说:

与不吸烟组相比,吸烟组患心脏病的相对风险高出 46%。

负系数注释:
如果 β = – 0.38,则 e β = 0.68,解释为:吸烟与心脏病相对风险降低32% (1 – 0.68 = 0.32)相关。

为了解释具有多个级别的分类预测变量,我撰写了以下文章:R 中的逻辑回归(带有分类变量)。

如何解释标准误?

标准误差是逻辑回归系数不确定性的度量。它对于计算相应系数的 p 值和置信区间非常有用。

从上表中我们可以得到:SE = 0.17。

我们可以使用以下公式计算 95% 置信区间:

95% 置信区间= exp(β ± 2 × SE) = exp(0.38 ± 2 × 0.17) = [ 1.04, 2.05 ]

所以我们可以说:

我们有 95% 的信心认为,吸烟者患心脏病的几率比不吸烟者平均高 4 至 105%(1.04 – 1 = 0.04 和 2.05 – 1 = 1.05)。

或者,更宽松地说:

根据我们的数据,与不吸烟者相比,我们预计吸烟者患心脏病的几率会增加 4% 至 105%。

如何解释拦截?

截距为 β 0 = -1.93,应假设模型中所有预测变量的值为 0 来解释它。

如果我们使用以下公式计算逆 logit,则截距可以很容易地用概率(而不是几率)来解释:

e β 0 ÷ (1 + e β 0 ) = e -1.93 ÷ (1 + e -1.93 ) = 0.13,因此:

不吸烟者在未来10年内患心脏病的概率是0.13。

即使不计算这个概率,如果我们只看系数的符号,我们就知道:

  • 如果截距有负号:那么得到结果的概率将< 0.5。

  • 如果截距有正号:那么得到结果的概率将 > 0.5。

  • 如果截距等于0:那么得到结果的概率恰好为 0.5。

有关如何解释各种情况下截距的更多信息,请参阅我的另一篇文章:解释逻辑回归截距。

2. 如果吸烟是一个数值变量(终生使用烟草量,以千克为单位)

然后:e β (= e 0.38 = 1.46) 告诉我们预测变量(吸烟)每变化 1 个单位,结果(心脏病)的几率将发生多大变化。

所以:

一生吸烟量增加 1 公斤,患心脏病的几率就会增加 1.46 倍。

或者同样:

一生吸烟量增加 1 公斤,患心脏病的几率就会增加 46%。

解释标准化变量的系数

标准化变量是重新调整平均值为 0、标准差为 1 的变量。这是通过减去变量的每个值的平均值并除以标准差来完成的。

标准化会产生可比的回归系数,除非模型中的变量具有不同的标准差或遵循不同的分布(有关更多信息,我推荐我的两篇文章:标准化与非标准化回归系数以及如何评估线性和逻辑回归中的变量重要性)。

无论如何,当您的模型中有超过 1 个预测变量,每个预测变量都以不同的尺度进行测量,并且您的目标是比较每个预测变量对结果的影响时,标准化很有用。

标准化后,具有最大系数的预测变量 X i是对结果 Y 影响最重要的预测变量。

然而,标准化系数本身并没有直观的解释。因此,在上面的示例中,如果吸烟是标准化变量,则解释为:

吸烟每增加 1 个标准差,患心脏病的几率就会增加46% (e β = 1.46)。

3. 如果吸烟是序数变量(0:不吸烟者,1:轻度吸烟者,2:中度吸烟者,3:重度吸烟者)

有时将吸烟分为几个有序类别是有意义的。这种分类允许 10 年患心脏病的风险从一个类别改变到下一个类别,并迫使其在每个类别内保持恒定,而不是随着吸烟习惯的每一个微小变化而波动。

在这种情况下,系数 β = 0.38 也将用于计算 e β (= e 0.38 = 1.46),其解释如下:

吸烟量从一级增加到一级会使患心脏病的几率增加 1.46 倍。

或者,我们可以说:

吸烟量从一级增加到一级会导致患心脏病的几率增加 46%。

重要提示:

关于统计显着性和 p 值:

如果模型中包含 20 个预测变量,则平均有 1 个预测变量具有统计显着性 p 值 (p < 0.05),这只是偶然的。

所以要注意:

  • 仅根据 p 值从逻辑回归模型中包含/排除变量。

  • 仅仅因为它们的 p 值小于 0.05,就将统计效应标记为“真实”。

如果你得到一个非常大的逻辑回归系数怎么办?

在上面的示例中,如果我们想研究吸烟对心脏病的影响,并且样本中的大多数参与者都是非吸烟者,则可能会出现非常高的系数和标准误差。这是因为高度倾斜的预测变量更有可能产生完美分离的逻辑模型。

因此,为了研究自变量 X 对结果 Y 的影响,需要自变量 X 具有一定的可变性。因此,在对数据进行建模之前,请确保您做好数据的前期描述性统计工作,保证数据合理性。

如果大家对逻辑回归和评分卡知识感兴趣,欢迎大家收藏和报名《python信用评分卡建模(附代码)》课程,课程详细介绍了逻辑回归的每个知识细节,包括woe编码,多种策略分箱,iv统计,并有实战数据集和Python代码实现。具体目录大家可微信扫码查阅了解。

 版权声明:文章来自公众号(python风控模型),未经许可,不得抄袭。遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/54607.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第4章 案例研究:JavaScript图片库

案例 html部分 <h1 id"title">图片1</h1> <ul><li><!-- onclick绑定点击事件&#xff0c;this为触发dom&#xff0c;return false阻止默认行为 --><a onclick"show_img(this); return false" title"图片1" h…

命令模式-请求发送者与接收者解耦

去小餐馆吃饭的时候&#xff0c;顾客直接跟厨师说想要吃什么菜&#xff0c;然后厨师再开始炒菜。去大点的餐馆吃饭时&#xff0c;我们是跟服务员说想吃什么菜&#xff0c;然后服务员把这信息传到厨房&#xff0c;厨师根据这些订单信息炒菜。为什么大餐馆不省去这个步骤&#xf…

装饰器模式(Decorator)

装饰器模式是一种结构型设计模式&#xff0c;用来动态地给一个对象增加一些额外的职责。就增加对象功能来说&#xff0c;装饰器模式比生成子类实现更为灵活。装饰器模式的别名为包装器(Wrapper)&#xff0c;与适配器模式的别名相同&#xff0c;但它们适用于不同的场合。 Decor…

HTML笔记(1)

介绍 浏览器中内置了HTML的解析引擎&#xff0c;通过解析标记语言来展现网页&#xff1b;HTML标签都是预定义好的&#xff1b;Java工程师&#xff1a;后台代码的编写&#xff0c;和数据库打交道&#xff0c;把数据给网页前端的工程师&#xff1b;网页前端工程师&#xff1a;写H…

快速了解MyBatis---映射关系多对一

文章目录 映射关系多对一映射关系-官方文档映射关系多对1-基本介绍基本介绍注意细节 映射关系多对1-映射方式映射方式配置Mapper.xml 方式-应用实例注解实现多对1 映射-应用实例 映射关系多对一 映射关系-官方文档 文档地址: https://mybatis.org/mybatis-3/zh/sqlmap-xml.ht…

linux驱动定时器实现按键按下打印字符

#include <linux/init.h> #include <linux/module.h> #include <linux/of.h> #include <linux/of_irq.h> #include <linux/interrupt.h>struct device_node *dev; unsigned int irqno; //中断处理函数 irqreturn_t myirq_handler(int irq,void *…

51单片机--红外遥控

文章目录 红外遥控的介绍硬件电路NEC编码外部中断红外遥控实例代码 红外遥控的介绍 红外遥控是一种无线、非接触控制技术&#xff0c;通过使用红外线来传送控制信号。它具有抗干扰能力强、信息传输可靠、功耗低、成本低、易实现等显著优点&#xff0c;因此被广泛应用于各种电子…

IDEA Debug小技巧 添加减少所查看变量、查看不同线程

问题 IDEA的Debug肯定都用过。它下面显示的变量&#xff0c;有什么门道&#xff1f;可以增加变量、查看线程吗&#xff1f; 答案是&#xff1a;可以。 演示代码 代码如下&#xff1a; package cn.itcast.attempt.threadAttempt.attempt2;public class Test {public static …

27岁到来之际,我在阿里实现了年薪30W+的小目标

毕业快 5 年了&#xff0c;每当和人聊起自己的职场飞升之路&#xff0c;都不由得感激当初果断逃离舒适圈的自己。出身一所非 211、985 院校&#xff0c;毕业后入职了一家小型互联网公司&#xff0c;当着普普通通的初级测试工程师&#xff0c;工作期间虽然也时常遇到挑战&#x…

HTTP之Session、Cookie 与 Application

目录 简介cookiecookie生命周期 sessionsession生命周期 HTTP cookies示例application 简介 cookie、seesion、application三个都会缓存我们用户状态的数据&#xff0c;使得我们在浏览器访问网站时可以更快速的获取到信息。 主要原因在于HTTP协议是无状态的&#xff0c;我们每…

计算机视觉(四)神经网络与典型的机器学习步骤

文章目录 神经网络生物神经元人工神经元激活函数导数 人工神经网络“层”的通俗理解 前馈神经网络Delta学习规则前馈神经网络的目标函数梯度下降输出层权重改变量 误差方向传播算法误差传播迭代公式简单的BP算例随机梯度下降&#xff08;SGD&#xff09;Mini-batch Gradient De…

搭建工程化项目

搭建工程化项目 首先创建一个 study 空文件夹&#xff0c;并且把它拖到 VS Code 里面。 在 VS Code 中打开终端&#xff0c;快捷键 ctrl ~ 在命令行中输入 npm init&#xff0c;在接下来所有选项中全部按 “回车” 采用默认即可。 初始化完毕后&#xff0c;在项目根目录下会出…

TypeScript 【type】关键字的进阶使用方式

导语&#xff1a; 在前面章节中&#xff0c;我们了解到 TS 中 type 这个关键字&#xff0c;常常被用作于&#xff0c;定义 类型别名&#xff0c;用来简化或复用复杂联合类型的时候使用。同时也了解到 为对象定义约束接口类型 的时候所使用的是 Interfaces。 其实对于前面&#…

C# Blazor 学习笔记(4):blazor代码分离

文章目录 前言代码分离 前言 Blazor可以支持在razor文件里面添加cs代码&#xff0c;但是代码一旦复杂了之后就会变得特别的麻烦。但是VS提供了代码分组的功能。 分离前 分离后 代码分离 我们直接右键razor组件是不能直接添加cs代码部分的 注意新建类的类名是xxx.razor…

软考中级信息安全工程师2023下半年报名时间及报名入口官网

软考中级信息安全工程师2023下半年考试时间&#xff1a; 2023年下半年软考中级信息安全工程师的考试时间为11月4日、5日。考试时间在全国各地一致&#xff0c;建议考生提前备考。共分两科&#xff0c;第一科基础知识考试具体时间为9:00-11:30&#xff1b;第二科应用技术考试具…

transformers里的AutoTokenizer之返回值token_type_ids(二)

在很多案例中&#xff0c;AutoTokenizer会返回token_type_ids这个结果&#xff1a; token_type_ids的解释&#xff1a; 对于两个句子对来说&#xff0c;上一句都标识为0&#xff0c;下一句都标识为1。

Hadoop优化

1.Datanode管理多块数据盘 1.理解 其实就是扩展Datanode空间,之前一个盘,现在加一个盘或者多个盘, 2.优点: 1.提高容错(避免硬盘损坏全部数据丢失)2.实现数据分离模式存储(框架本体与数据分离,集群出现问题数据可进行单独恢复,这样也是提高容错) 3.配置&#xff08;临时挂…

[PyTorch][chapter 45][RNN_2]

目录&#xff1a; RNN 问题 RNN 时序链问题 RNN 词组预测的例子 RNN简洁实现 一 RNN 问题 RNN 主要有两个问题&#xff0c;梯度弥散和梯度爆炸 1.1 损失函数 梯度 其中&#xff1a; 则 1.1 梯度爆炸&#xff08;Gradient Exploding&#xff09; 上面矩阵进行连乘后…

uniapp使用getStorage对属性赋值无效

1正常set(get)storage都是可以正常使用的 2.但对属性进行赋值的时候&#xff0c;却发现this.name并没有发生变化 3. 在里面打印this发现&#xff0c;在set*getStorage中并不能拿到this. 4.优化代码 这样就可以给this.name成功赋值