逻辑回归or线性回归,傻傻分不清楚

2023-10-23 15:40

本文主要是介绍逻辑回归or线性回归,傻傻分不清楚,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎关注”生信修炼手册”!

线性回归作为一种常用的关联分析工具,其功能强大,解释度高,但是其缺点也是很明显的。其只适用于处理连续型的变量,无法处理离散型的变量,比如对于case/control的实验设计,患病与否的临床信息,线性回归就无能无力了,此时我们就需要另外一种方法-逻辑回归。

线性回归是属于回归分析的一种,从名称上来,逻辑回归好像也属于回归分析,其实不然。在机器学习领域有两大类问题,回归和分类,回归指的是针对因变量为连续型变量的分析,而分类则是针对离散型因变量的分析。从这一点来看,逻辑回归其实是属于分类问题。

那么为何其名称中又包含了回归这个单词呢,是因为其核心思想和回归分析是一样的,通过构建回归方程来解决问题。以最基本的一个自变量,二分类因变量为例,其数据分布如下

因变量对应的y轴对应两条水平线,而x轴可以有很灵活的变量范围,可以想象,对于这样的数据,用任意直线来拟合效果都很差,绝大部分的点都会落不到直线附近。因此,数学家提出了一个独特的拟合函数,称之为sigmod函数,其分布类似S型曲线,示意如下

sigmod函数可以将任意实数映射到0到1之间,具有非常强的鲁棒性,映射出来的值正好可以作为一个概率值,通过设定阈值范围,来确定对应的状态。

为了更好的理解逻辑回归和线性回归之间的关系,我们来看下对应的回归方程,图示如下

上图中逻辑回归公式对应的形式就是sigmod函数,其中的e为自然常数,进一步转换如下



从最终的形式可以看出,逻辑回归就是用ln(p/1-p)来替换了线性回归中的因变量y, 所以说逻辑回归是在线性回归的基础上发展而来的一项技术,同时等式右边都是一个线性关系,二者同属于广义线性回归模型的一种。

在R语言中通过广义线性回归的函数glm可以实现逻辑回归,代码如下

x为连续型的自变量,y为二分类的因变量,binomial代表二项分布。逻辑回归的方程通过最大似然法进行求解,coefficients就是对应的回归参数,AIC值是一个衡量拟合效果的统计量,计算公式如下


其中的K代表回归参数的个数, L代表似然函数的最大值,回归参数的求解通过最大似然法进行,最终得到的模型中对应的似然值最大,AIC值最小。通过summary可以查看自变量和因变量关联性的p值等信息,示意如下

线性回归中的R2为预测数据的方差除以实际数据的方差,在逻辑回归中,因变量无法有效计算方差,所以逻辑回归的R2是一个的R2,称之为pseudo R-Squareds, 有多种算法来计算该值,不同算法的出发点也不同,详细链接如下

https://stats.idre.ucla.edu/other/mult-pkg/faq/general/faq-what-are-pseudo-r-squareds/

以McFadden’s Pseudo-R2 为例,公式如下

用1减去空假设的似然值与当前模型似然值的比例即可,而输出结果中的residual.deviance和null.deviance和似然之间的关系如下

所以可以根据这两个值来计算R2, 代码如下

R2在线性回归中作为拟合优度的指标,而在逻辑回归中,我们已经有了AIC值这个指标了,所以R2显得没有那么重要。对于逻辑回归而言,有一个比较关注的指标就是log odd ratio。

在费舍尔精确检验和卡方检验中,对于2X2的两个分类变量的关联性,用odd ratio值来衡量其关联性的强弱,在二分类因变量的逻辑回归中,对于同样为二分类的自变量,也会有odd ratio值里衡量其和因变量的关联性。

在逻辑回归中,对于二分类的自变量,其odd ratio值如下


Y为因变量,X为对应的二分类自变量,beta代表回归方程中x的回归系数,Z代表其他变量, 将上述公式进行log转换,可以看出x对应的log odd ratio值其实就是其回归系数。

在逻辑回归中,二分类自变量和因变量的关联性,用该自变量对应的回归系数,也就是log odd ratio来表征,其实这个概念也可以拓展到连续型的自变量上,只不过解释会稍有不同。

对于连续型的自变量而言,其log odd ratio值也是其回归系数,只不过因为其值是连续的,log odd ratio值反应的是该自变量每增加一个单位,因变量概率变化的幅度。

通过回归系数或者说log odd ratio, 可以寻找影响因变量的危险因素。

·end·

—如果喜欢,快分享给你的朋友们吧—

扫描关注微信号,更多精彩内容等着你!

这篇关于逻辑回归or线性回归,傻傻分不清楚的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/268781

相关文章

线性因子模型 - 独立分量分析(ICA)篇

序言 线性因子模型是数据分析与机器学习中的一类重要模型,它们通过引入潜变量( latent variables \text{latent variables} latent variables)来更好地表征数据。其中,独立分量分析( ICA \text{ICA} ICA)作为线性因子模型的一种,以其独特的视角和广泛的应用领域而备受关注。 ICA \text{ICA} ICA旨在将观察到的复杂信号

✨机器学习笔记(二)—— 线性回归、代价函数、梯度下降

1️⃣线性回归(linear regression) f w , b ( x ) = w x + b f_{w,b}(x) = wx + b fw,b​(x)=wx+b 🎈A linear regression model predicting house prices: 如图是机器学习通过监督学习运用线性回归模型来预测房价的例子,当房屋大小为1250 f e e t 2 feet^

【高等代数笔记】线性空间(一到四)

3. 线性空间 令 K n : = { ( a 1 , a 2 , . . . , a n ) ∣ a i ∈ K , i = 1 , 2 , . . . , n } \textbf{K}^{n}:=\{(a_{1},a_{2},...,a_{n})|a_{i}\in\textbf{K},i=1,2,...,n\} Kn:={(a1​,a2​,...,an​)∣ai​∈K,i=1,2,...,n

逻辑表达式,最小项

目录 得到此图的逻辑电路 1.画出它的真值表 2.根据真值表写出逻辑式 3.画逻辑图 逻辑函数的表示 逻辑表达式 最小项 定义 基本性质 最小项编号 最小项表达式   得到此图的逻辑电路 1.画出它的真值表 这是同或的逻辑式。 2.根据真值表写出逻辑式   3.画逻辑图   有两种画法,1是根据运算优先级非>与>或得到,第二种是采

UMI复现代码运行逻辑全流程(一)——eval_real.py(尚在更新)

一、文件夹功能解析 全文件夹如下 其中,核心文件作用为: diffusion_policy:扩散策略核心文件夹,包含了众多模型及基础库 example:标定及配置文件 scripts/scripts_real:测试脚本文件,区别在于前者倾向于单体运行,后者为整体运行 scripts_slam_pipeline:orb_slam3运行全部文件 umi:核心交互文件夹,作用在于构建真

用Python实现时间序列模型实战——Day 14: 向量自回归模型 (VAR) 与向量误差修正模型 (VECM)

一、学习内容 1. 向量自回归模型 (VAR) 的基本概念与应用 向量自回归模型 (VAR) 是多元时间序列分析中的一种模型,用于捕捉多个变量之间的相互依赖关系。与单变量自回归模型不同,VAR 模型将多个时间序列作为向量输入,同时对这些变量进行回归分析。 VAR 模型的一般形式为: 其中: ​ 是时间  的变量向量。 是常数向量。​ 是每个时间滞后的回归系数矩阵。​ 是误差项向量,假

带头结点的线性链表的基本操作

持续了好久,终于有了这篇博客,链表的操作需要借助图像模型进行反复学习,这里尽可能的整理并记录下自己的思考,以备后面复习,和大家分享。需要说明的是,我们从实际应用角度出发重新定义了线性表。 一. 定义 从上一篇文章可以看到,由于链表在空间的合理利用上和插入、删除时不需要移动等优点,因此在很多场合下,它是线性表的首选存储结构。然而,它也存在某些实现的缺点,如求线性表的长度时不如顺序存储结构的

浙大数据结构:02-线性结构4 Pop Sequence

这道题我们采用数组来模拟堆栈和队列。 简单说一下大致思路,我们用栈来存1234.....,队列来存输入的一组数据,栈与队列进行匹配,相同就pop 机翻 1、条件准备 stk是栈,que是队列。 tt指向的是栈中下标,front指向队头,rear指向队尾。 初始化栈顶为0,队头为0,队尾为-1 #include<iostream>using namespace std;#defi

深度学习与大模型第3课:线性回归模型的构建与训练

文章目录 使用Python实现线性回归:从基础到scikit-learn1. 环境准备2. 数据准备和可视化3. 使用numpy实现线性回归4. 使用模型进行预测5. 可视化预测结果6. 使用scikit-learn实现线性回归7. 梯度下降法8. 随机梯度下降和小批量梯度下降9. 比较不同的梯度下降方法总结 使用Python实现线性回归:从基础到scikit-learn 线性

C#中的各种画刷, PathGradientBrush、线性渐变(LinearGradientBrush)和径向渐变的区别

在C#中,画刷(Brush)是用来填充图形(如形状或文本)内部区域的对象。在.NET框架中,画刷是System.Drawing命名空间的一部分,通常用于GDI+绘图操作。以下是一些常用的画刷类型: SolidBrush:用于创建单色填充的画刷。HatchBrush:用于创建具有图案填充的画刷。TextureBrush:用于创建具有图像纹理填充的画刷。LinearGradientBrush:用于创