工作和生活中存在大量的具有相关性的事件,当找到不同变量之间的关系,我们就会用到回归分析。回归分析(Regression Analysis):是用来确定2个或2个以上变量间关系的一种统计分析方法。

在回归分析中,变量有2类:因变量 和 自变量。

  • 因变量:通常是指实际问题中所关心的指标,用Y表示。
  • 自变量:是影响因变量取值的一个变量,用X表示,如果有多个自变量则表示为X1, X2, …, Xn。

回归分析研究的主要步骤:

  1. 确定因变量Y 与 自变量X1, X2, …, Xn 之间的定量关系表达式,即回归方程。
  2. 对回归方程的置信度检查。
  3. 判断自变量Xn(n=1,2,…,m)对因变量的影响。
  4. 利用回归方程进行预测。

假设X和Y的关系是线性,可以用公式表式为:Y = a + b * X + c

  • Y,为因变量
  • X,为自变量
  • a,为截距(Intercept)
  • b,为自变量系数
  • a+b*X, 表示Y随X的变化而线性变化的部分
  • c, 为残差或随机误差,是其他一切不确定因素影响的总和,其值不可观测。假定c是符合均值为0方差为σ^2的正态分布 ,记作c~N(0,σ^2)

对于上面的公式,称函数f(X) = a + b * X 为一元线性回归函数,a为回归常数,b为回归系数,统称回归参数。X 为回归自变量或回归因子,Y 为回归因变量或响应变量。

实例 


牙膏销售的实例:数据结构及示例化如下

分析: 对于大多数顾客来说,在购买同类牙膏时,更多的会关心不同品牌之间的价格差,而不是它们的价格本身。因此,在研究各个因素对销售量的影响时,用价格差代替公司销售价格和其他厂家平均价格更为合适。

在计算过程中并不一定要知道Y和X是否有线性相关的关系。如果不存相关关系,那么回归方程就没有任何意义了,如果Y和X是有相关关系的,即Y会随着X的变化而线性变化。所以,我们需要用假设检验的方法,来验证相关性的有效性。

通常会采用三种显著性检验的方法:

  • T检验法:T检验是检验模型某个自变量Xi对于Y的显著性,通常用P-value判断显著性,小于0.01更小时说明这个自变量Xi与Y相关关系显著
  • F检验法:F检验用于对所有的自变量X在整体上看对于Y的线性显著性,也是用P-value判断显著性,小于0.01更小时说明整体上自变量与Y相关关系显著。
  • R^2(R平方)相关系统检验法:用来判断回归方程的拟合程度,R^2的取值在0,1之间,越接近1说明拟合程度越好。

回归模型拟合数据


当两个变量之间存在非常强烈的相互依赖关系的时候,我们就可以说两个变量之间的存在高度相关性。若两组的值一起增大,我们称之为正相关,若一组的值增大时,另一组的值减小,我们称之为负相关

在使用回归模型拟合数据之前,我们先来观察自变量与因变量之间是如何相关的,我们求出除周期这一列外,其它各列的相关系数矩阵

观察发现sales销售量列的相关系数绝对值越大,相关性越强。注:R中cor函数来计算相关性也是有局限的,它不能计算非线性模型

 基本模型


利用散点图观察销售量与价格差和广告费用的关系

library(ggplot2)
mytable <- read.csv("price.csv")
gplot(mytable,aes(x=mytable$DifPrice,y=mytable$sales))+geom_point()+labs(x="价格差",y="销售量")+geom_smooth(se=F)+theme_bw()
ggplot(mytable,aes(x=mytable$price,y=mytable$sales))+geom_point()+labs(x="价格",y="销售量")+geom_smooth(se=F)+theme_bw()
ggplot(mytable,aes(x=mytable$Invest,y=mytable$sales))+geom_point()+labs(x="广告费",y="销售量")+geom_smooth(se=F)+theme_bw()

    

如上图可以发现随着价格差(x1)的增加,销售量(y)有比较明显的线型增长趋势;随着广告费用的增加,销售量有向上弯曲增加的趋势;

 模型求解


  • Residuals(残差):列出了残差的最小值点,1/4分位点,中位数点,3/4分位点,最大值点。
  • Coefficients(系数):表示参数估计的计算结果。Residual standard error:表示残差的标准差,自由度为n-2
    • Estimate(估计):参数估计列。Intercept行表示常数参数a的估计值
    • Std. Error:为参数的标准差,sd(a), sd(b)
    • t value:为t值,为T检验的值
    • Pr(>|t|) :表示P-value值,用于T检验判定,匹配显著性标记
    • 显著性标记:***为非常显著,**为高度显著, **为显著,·为不太显著,没有记号为不显著。
  • Multiple R-squared:为相关系数R^2的检验,越接近1则越显著
  • Adjusted R-squared:为相关系数的修正系数,解决多元回归自变量越多,判定系数R^2越大的问题。
  • F-statistic:表示F统计量,自由度为(1,n-2)
  • p-value:用于F检验判定,匹配显著性标记。

模型改进


从如上的散点图可以看出,随着广告投入增加,销售量有向上弯曲增加的趋势。这里我们将广告投入的自变量换为二阶项来。则将销售量模型改为:

用lm函数拟合以上模型特征:

此时,我们发现,模型残差的标准差Residual standard error有所下降,相关系数的平方Multiple R-squared有所上升,这说明模型修正的是合理的。但同时也出现了一个问题,就是对于β2的P-值>0.05。

在做进一步的修正,考虑X1和X2交互作用,及模型为:

模型通过T检验和F检验,并且Residual standard error减少,Multiple R-squared增加。因此,最终模型选为:

标准化


 

参考


R_回归模型实例一的更多相关文章

  1. 如何在R语言中使用Logistic回归模型

    在日常学习或工作中经常会使用线性回归模型对某一事物进行预测,例如预测房价.身高.GDP.学生成绩等,发现这些被预测的变量都属于连续型变量.然而有些情况下,被预测变量可能是二元变量,即成功或失败.流失或 ...

  2. 机器学习笔记(四)Logistic回归模型实现

     一.Logistic回归实现 (一)特征值较少的情况 1. 实验数据 吴恩达<机器学习>第二课时作业提供数据1.判断一个学生能否被一个大学录取,给出的数据集为学生两门课的成绩和是否被录取 ...

  3. R语言广义线性模型(GLM)、全子集回归模型选择、检验分析全国风向气候数据|附代码数据

    全文链接:http://tecdat.cn/?p=30914 最近我们被客户要求撰写关于广义线性模型(GLM)的研究报告,包括一些图形和统计输出. 我们正和一位朋友讨论如何在R软件中用GLM模型处理全 ...

  4. SPSS数据分析—Poisson回归模型

    在对数线性模型中,我们假设单元格频数分布为多项式分布,但是还有一类分类变量分布也是经常用到的,就是Poisson分布. Poisson分布是某件事发生次数的概率分布,用于描述单位时间.单位面积.单位空 ...

  5. SPSS数据分析—配对Logistic回归模型

    Lofistic回归模型也可以用于配对资料,但是其分析方法和操作方法均与之前介绍的不同,具体表现 在以下几个方面1.每个配对组共有同一个回归参数,也就是说协变量在不同配对组中的作用相同2.常数项随着配 ...

  6. SPSS数据分析—多分类Logistic回归模型

    前面我们说过二分类Logistic回归模型,但分类变量并不只是二分类一种,还有多分类,本次我们介绍当因变量为多分类时的Logistic回归模型. 多分类Logistic回归模型又分为有序多分类Logi ...

  7. SPSS数据分析—二分类Logistic回归模型

    对于分类变量,我们知道通常使用卡方检验,但卡方检验仅能分析因素的作用,无法继续分析其作用大小和方向,并且当因素水平过多时,单元格被划分的越来越细,频数有可能为0,导致结果不准确,最重要的是卡方检验不能 ...

  8. Poisson回归模型

    Poisson回归模型也是用来分析列联表和分类数据的一种方法,它实际上也是对数线性模型的一种,不同点是对数线性模型假定频数分布为多项式分布,而泊松回归模型假定频数分布为泊松分布. 首先我们来认识一下泊 ...

  9. Probit回归模型

    Probit模型也是一种广义的线性模型,当因变量为分类变量时,有四种常用的分析模型: 1.线性概率模型(LPM)2.Logistic模型3.Probit模型4.对数线性模型 和Logistic回归一样 ...

  10. logistic回归模型

    一.模型简介 线性回归默认因变量为连续变量,而实际分析中,有时候会遇到因变量为分类变量的情况,例如阴性阳性.性别.血型等.此时如果还使用前面介绍的线性回归模型进行拟合的话,会出现问题,以二分类变量为例 ...

随机推荐

  1. KingabseES例程-函数和过程的 INVOKER 与 DEFINER

    调用者权利和定义者权利子句 指定子程序的权利属性.权利属性影响单元在运行时,执行的SQL语句的名称解析和权限检查. PG模式: SECURITY INVOKER SECURITY DEFINER Or ...

  2. 05 CMMI(Capability Maturity Model Integration)【软件过程与管理】

    CMMI(Capability Maturity Model Integration) CMMI成熟度等级 执行的:过程不可预测,缺乏控制,反应式的 已管理的:项目描绘过程,而且经常是反应式的 已定义 ...

  3. 性能对比 Go、Python、Perl、Ruby、Rust、C/C++、PHP、Node.js、Java.. 等多编

    1. 有人说 Python 性能没那么 Low? 这个我用 pypy 2.7 确认了下,确实没那么差, 如果用 NumPy 或 其它版本 Python 的话,性能更快.但 pypy 还不完善,pypy ...

  4. #轮廓线dp#洛谷 1879 [USACO06NOV]Corn Fields G

    题目 分析 考虑状压dp在\(n\leq 21\)的情况下会TLE, 设\(dp[n][m][S]\)表示当前正在处理\((n,m)\)这个格子 并且轮廓线状态为\(S\)的方案数, 考虑可行状态最多 ...

  5. 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新

    目录 简介 什么是区块链 区块链不是什么 区块链的基础:密码学 区块链的基础:分布式系统和共识机制 超级账本Hyperledger 以太坊 Libra 比特币 总结 简介 区块链是一种防篡改的共享数字 ...

  6. OpenHarmony设备截屏的5种方式

      本文转载自<OpenHarmony设备截屏的5种方式 >,作者westinyang 目录 ● 方式1:系统控制中心 ● 方式2:OHScrcpy投屏工具 `推荐` ● 方式3:DevE ...

  7. SQL PRIMARY KEY 约束- 唯一标识表中记录的关键约束

    SQL NOT NULL 约束 SQL NOT NULL 约束用于强制确保列不接受 NULL 值.这意味着该字段始终包含一个值,而不允许插入新记录或更新记录时不提供此字段的值. 在 CREATE TA ...

  8. Docker 11 数据卷

    由来 Docker 是将应用和环境打包成一个镜像. 这样,数据就不应该保存在容器中,否则容器删除,数据就会丢失,有着非常大的风险. 为此,容器和主机之间需要有一个数据共享技术,使得在 Docker 容 ...

  9. 国密 SM2 的非对称签名验签过程

    国密 SM2 的非对称签名验签过程 介绍 非对称加密确保了消息传输中的保密性,但是由于使用公钥加密,而公钥是分发出去的,可能泄露,谁都可以使用公钥加密发送消息. 因此为了保证收到的消息是由对应的发送者 ...

  10. Stable Diffusion中的常用术语解析

    Stable Diffusion中的常用术语解析 对于很多初学者来说,会对Stable Diffusion中的很多术语感到困惑,当然你不是唯一的那个. 在这篇文章中,我将会讲解几乎所有你在Stable ...