多元线性回归分析详细介绍

article/2025/8/28 11:30:38

一文搞懂——多元线性回归分析

  • 回归分析定义
    • 回归的使命
    • 回归分析的分类
    • 数据的分类
    • 数据的收集
  • 线性回归
    • 对于线性的理解
    • 回归系数的解释
    • 核心解释变量和控制变量
    • 四类模型回归系数的解释
    • 特殊的自变量:虚拟变量X
    • 含有交互项的自变量
  • 回归实例
    • 题目
    • Stata解决
      • 第一步:数据的描述性统计
      • 第二步:回归分析——第一问
      • 第三步:标准化回归系数——第二问
  • 异方差-多重共线性与逐步回归
    • 扰动项
    • 异方差
      • 检验异方差
        • 假设检验(BP检验)
        • 怀特检验
      • 解决异方差
    • 多重共线性
      • 通俗的讲
      • 检验多重共线性
      • 多重共线性处理方法
    • 逐步回归分析

回归分析定义

回归的使命

  • 第一、识别重要变量

    判断哪些X变量是同Y真的相关,哪些不是。

  • 第二、判断相关性的方向

    判断这些有用的X变量同Y的相关关系是正还是负。

  • 第三、要估计权重(回归系数)

    赋予不同X不同的权重,也就是不同的相关系数,进而知道不同变量之间的相对重要性。

回归分析的分类

类型模型Y的特点例子
线性回归OLS、GLS(最小二乘)连续数值型变量GDP、产量、收入
0‐1回归logistic回归二值变量(0‐1)是否违约、是否得病
定序回归probit定序回归定序变量等级评定(优良差)
计数回归泊松回归(泊松分布)计数变量每分钟车流量
生存回归Cox等比例风险回归生存变量(截断数据)企业、产品的寿命

数据的分类

  • 横截面数据:在某一时点收集的不同对象的数据

    常用建模方法:多元线性回归

    1. 我们自己发放问卷得到的数据
    2. 全国各省份2018年GDP的数据
    3. 大一新生今年体测的得到的数据
  • 时间序列数据:对同一对象在不同时间连续观察所取得的数据。

    常用建模方法:移动平均、指数平滑、ARIMA、GARCH、VAR、协积

    1. 从出生到现在,你的体重的数据(每年生日称一次)。
    2. 中国历年来GDP的数据。
    3. 在某地方每隔一小时测得的温度数据
  • 面板数据:横截面数据与时间序列数据综合起来的一种数据资源。

    常用建模方法: 固定效应和随机效应、静态面板和动态面板

    1. 2008‐2018年,我国各省份GDP的数据。

数据的收集

  • 在知乎上搜索“数据查找”来获取最新的数据网站(多半都是宏观数据)
  • 人大经济论坛——微观数据
  • 爬虫获取

线性回归

对于线性的理解

  • 线性假定并不要求初始模型都呈下图所示的严格线性关系,自变量与因变量可通过变量替换而转化成线性模型即可

对于线性的理解

  • 使用线性回归模型进行建模前,需要对数据进行预处理(可以使用Excel)

回归系数的解释

  • 外生性:误差项与所有自变量均不相关

  • 内生性:存在误差项与自变量相关(内生性会导致回归系数估计不准确:不满足 无偏——估计量的均值与实际相等 和 一致性——n无穷大时依概率收敛 )
    回归系数的解释

核心解释变量和控制变量

  • 作用:弱化内生性(将解释变量区分为核心解释变量与控制变量)
  • 核心解释变量:我们最感兴趣的变量,因此我们特别希望得到对其系数的一致估计(当样本容量无限增大时,收敛于待估计参数的真值 )。
  • 控制变量:我们可能对于这些变量本身并无太大兴趣;而之所以把它们也放入回归方程,主要是为了 “控制住” 那些对被解释变量有影响的遗漏因素。
  • 实际应用:我们只要保证核心解释变量与𝝁不相关即可。

四类模型回归系数的解释

  1. 一元线性回归:𝑦 = 𝑎 + 𝑏𝑥 + 𝜇,x每增加1个单位,y平均变化b个单位;

  2. 双对数模型:𝑙𝑛𝑦 = 𝑎 + 𝑏𝑙𝑛𝑥 + 𝜇,x每增加1%,y平均变化b%;

  3. 半对数模型:𝑦 = a + blnx + 𝜇,x每增加1%,y平均变化b/100个单位;

  4. 半对数模型:𝑙𝑛𝑦 = a + bx + 𝜇,x每增加1个单位,y平均变化(100b)%。

特殊的自变量:虚拟变量X

  • 作用:代替自变量中的定性变量(性别、地域等)
  • 定义:若定性变量属于第i个虚拟变量,则Xi = 1,其余均为0
  • :为了避免完全多重共线性的影响,引入虚拟变量的个数一般是分类数减1,未设虚拟变量的那一个为对照组。

含有交互项的自变量

  • 定义:解释变量对一个因变量的偏效应(纯线性回归)、弹性(x,y都带ln)或半弹性(x或y带ln),有时很自然地取决于另一个解释变量的大小。
  • 通俗的讲:就是包含两个自变量相乘的项。

回归实例

题目

现有某电商平台846条关于婴幼儿奶粉的销售信息,每条信息由11个指标组成。其中,评价量可以从一个侧面反映顾客对产品的关注度。请对所给数据进行以下方面的分析,要求最终的分析将不仅仅有益于商家,更有益于宝妈们为宝贝选择适合自己的奶粉。

  1. 以评价量为因变量,分析其它变量和评价量之间的关系;

  2. 以评价量为因变量,研究影响评价量的重要因素。

Stata解决

第一步:数据的描述性统计

  1. 定量数据 - stata
summarize 变量1 变量2 ... 变量n
sum 变量1 变量2 ... 变量n		//简写形式
  1. 定性数据 - stata
tabulate 变量名, gen(A)
tab 变量名, gen(A)		//简写
// 返回对应的这个变量的频率分布表,并生成对应的虚拟变量(以A开头)。
  1. 数据的描述性统计-Excel(方法二)

    数据 — 数据分析 — 描述统计

    一般只用到(平均数、标准差、最小值、最大值、样本量)

  2. 数据透视表 - Excel

    全选 — 插入 — 数据透视表

  3. 指标的总体情况介绍

    分定量指标、定性指标,用文字对每个指标进行介绍(形成表格)

如下:指标的总体情况介绍

  1. 数据不要先进行归一化处理,因为处理后就好分析回归结果了。

第二步:回归分析——第一问

regress y x1 x2 … xk    //(默认使用的OLS:普通最小二乘估计法)reg y x1 x2 … xk 	    //简写reg 评价量 团购价元 商品毛重kg A1 A2 A3 B1 B2 B3 B4 B5 B6 B7 B8 B9 C1 C2 D1 D2 D3 D4 D5 E1 E2 E3 E4 F1 F2 G1 G2 G3 G4 //例子,字母代表虚拟变量回归// 下面的语句可帮助我们把回归结果保存在Word文档中
est store m1
reg2docx m1 using m1.docx, replace
// *** p<0.01  ** p<0.05 * p<0.1

P值小于0.05,代表在95%置信水平下,该回归系数显著的异于0

Prob > F 为 联合显著性检验 𝛽1 = 𝛽2 = ··· = 𝛽k = 0

Tips:

  1. 定性数据回归,只需加入对应虚拟变量即可。
  2. 在变量窗口中按住Shift不放,可同时选中一列,然后再直接拖动到输入区域。
  3. Stata会自动检测数据的完全多重共线性问题。
  4. 论文中要给出回归系数的显著性

第三步:标准化回归系数——第二问

  • 标准化回归系数:研究影响评价量的重要因素(去除量纲的影响)

  • 用法:标准化系数(Stata中的Beta值)的绝对值越大,说明对因变量的影响就越大(只关注显著的回归系数哦)。

regress y x1 x2 … xk,beta
reg y x1 x2 … xk,b		// 简写

异方差-多重共线性与逐步回归

扰动项

扰动项

  • 在之前的回归分析中,我们都默认了扰动项是球型扰动项(满足“同方差”和“无自相关”两个条件)。

  • 而横截面数据容易出现 异方差 的问题;时间序列数据容易出现自相关的问题。

异方差

如果扰动项存在异方差:

  1. OLS估计出来的回归系数是无偏、一致的。

  2. 假设检验无法使用(构造的统计量失效了)。

  3. OLS估计量不再是最优线性无偏估计量(BLUE)。

简言之,估计结果会不准确。

检验异方差

假设检验(BP检验)

// Stata命令(在回归结束后使用):
estat hettest, rhs iid

BP检验原假设:扰动项不存在异方差

P值小于0.05,说明在95%的置信水平下拒绝原假设,即我们认为扰动项存在异方差。

怀特检验

// Stata命令(在回归结束后使用):
estat imtest, white

怀特检验原假设:不存在异方差

解决异方差

  1. 使用OLS + 稳健的标准误
regress y x1 x2 … xk, robust
reg y x1 x2 … xk, r // 简写

Stock and Watson (2011)推荐,在大多数情况下应该使用“OLS + 稳健标准误”。

  1. 广义最小二乘法GLS

多重共线性

通俗的讲

  • 存在多重共线性就是 这个变量和其他的变量非常的相关。

  • VIM(m)越大,说明第m个变量和其他变量的相关性越大。

  • 经验规则:如果VIM > 10,则认为该回归方程存在严重的多重共线性。

检验多重共线性

// Stata计算各自变量VIF的命令(在回归结束后使用):
estat vif

多重共线性处理方法

如果发现存在多重共线性,可以采取以下处理方法。

(1)如果不关心具体的回归系数,而只关心整个方程预测被解释变量的能力,则通常可以 不必理会多重共线性(假设你的整个方程是显著的)。这是因为,多重共线性的主要后果是使得对单个变量的贡献估计不准,但所有变量的整体效应仍可以较准确地估计。

(2)如果关心具体的回归系数,但多重共线性并不影响所关心变量的显著性,那么也可以不必理会。即使在有方差膨胀的情况下,这些系数依然显著;如果没有多重共线性,则只会更加显著。

(3) 如果多重共线性影响到所关心变量的显著性,则需要增大样本容量,剔除导致严重共线性的变量(不要轻易删除哦,因为可能会有内生性的影响),或对模型设定进行修改。

逐步回归分析

可以用来解决多重共线性的问题

  1. 向前逐步回归Forward selection:将自变量逐个引入模型
stepwise regress y x1 x2 … xk, pe(#1)
// 显著才加入模型中 #1一般取0.05
  1. 向后逐步回归Backward elimination:先将所有变量均放入模型,之后尝试将其中一个自变量从模型中剔除
stepwise regress y x1 x2 … xk, pr(#2)
// 不显著就剔除出模型 #2一般取0.05

如果你觉得筛选后的变量仍很多,你可以减小#1或者#2

如果你觉得筛选后的变量太少了,你可以增加#1或者#2

注:

  1. x1 x2 … xk之间不能有完全多重共线性(和regress不同哦) ,需要手动在每个分类变量中任意去除一个元素

  2. 可以在后面再加参数b和r,即标准化回归系数或稳健标准误

  3. 向前逐步回归和向后逐步回归的结果可能不同。
    型,之后尝试将其中一个自变量从模型中剔除


http://chatgpt.dhexx.cn/article/7q3sP4FO.shtml

相关文章

多元线性回归分析示例

GLM模型应用于脑功能影像分析时&#xff0c;在某个因素影响下&#xff0c;由beta图&#xff0c;经过t检验得到脑区显著激活的区域。应用于其他地方也可加深我们对于模型的理解。 clc,clear; X[ 136.5 215136.5 250136.5 180138.5 2501…

【课程设计】计算机组成与系统结构

计算机组成与系统结构课程设计(2020.12) 保姆式教程 目录 计算机组成与系统结构课程设计(2020.12)一、本课程设计的性质、目的、任务二、本课程设计的基本理论三、课程设计的主要内容四、微程序流程图&#xff08;树形图&#xff09;五、模型机微指令表六、机器指令程序的说明…

计算机组成与系统结构课程设计

课程设计题目 综合运用所学计算机原理知识&#xff0c;设计并实现具有以下16条指令的指令集结构的模型计算机&#xff1a; 编号 助记符 机器指令码 说明 0 SUB Rd,Rs 0000 RdRs Rd-Rs→Rd 1 ADD Rd,Rs 0001 RdRs RdRs→Rd 2 AND Rd,Rs 0010 RdRs Rd&Rs→Rd &#xff08;Rd和…

计算机毕业设计、计算机课程设计怎么做?计算机设计1900套来帮你!

计算机毕业设计、计算机课程设计怎么做&#xff1f;计算机设计1900套来帮你&#xff01; 人生做什么事都有套路&#xff0c;大学毕业设计、课程设计通常比较简单&#xff0c;大多数都是找个项目做参考&#xff0c;有的人随便抄一抄糊弄一下&#xff0c;只要查重&#xff0c;格…

pycharm 安装numpy包——超简单

非常简单的安装步骤&#xff0c;自己百试不爽哦&#xff0c;废话不多说直接上图按以下步骤进行即可 一、找到安装numpy的地方 file→settings→project interpreter&#xff0c;点击右侧的&#xff0b;号 二、进行numpy 安装 搜索框内手动输入numpy进行搜索&#xff0c;选中…

python 如何安装numpy库?

&#xff08;我的微信&#xff1a;Kingsplusa&#xff0c;我总结了人工智能手推笔记和思维导图&#xff0c;欢迎一起进步学习。&#xff09; 首先我们要找到python安装的位置 winR打开 进入以后输入&#xff1a; where python 找到安装目录后&#xff0c;找到Scripts文件…

python中Numpy包的安装及使用

*****安装 python &#xff08;本文安装 python2.7&#xff09; *****安装 pip (1)检查是否已安装pip 进入cmd命令窗口&#xff0c;输入 pip --version &#xff0c;查看是否已安装pip&#xff0c;说明已安装了pip 否则&#xff0c;说明未安装pip 需要进入&#xff08;2&am…

Python2.7中安装numpy包

前言 花了一个下午的时间才成功安装了numpy&#xff0c;血与泪的教训。记录一下踩的坑。 安装环境 系统&#xff1a; win10 Python版本&#xff1a; 2.7.9 IDE&#xff1a;Pycharm 踩坑过程 尝试一 在Pycharm的setting中安装numpy 1.20.2&#xff08;最新版本&#xff09…

numpy安装过程

下载numpy库的详细方法 安装前提&#xff1a; 1、Python3.8安装完成并能够正常使用 2、下载相应的numpy安装包&#xff0c;.whl格式 安装详细步骤&#xff1a;* 首先&#xff0c;点击下面的链接进入numpy下载官网 链接地址&#xff1a;添加链接描述 进去之后&#xff0c;点击…

pycharm怎么安装numpy库

打开界面后&#xff0c;在File菜单中点击Settings选项 在弹出的窗口中点击project interpreter选项 找到并点击窗口左侧的号键 在搜索框中输入numpy&#xff0c;并点击上方第一个选项 点击底部最下方的install package按钮 当下方出现successfully字样时&#xff0c;就代表num…

numpy的安装以及学习

1.在pycharm解释器中安装numpy库 2.pip install numpy 3.conda install numpy &#xff08;清华源&#xff1a;https://pypi.tuna.tsinghua.edu.cn/simple&#xff09; Numpy的导入&#xff1a; import numpy as np numpy介绍 NumPy是一个开源的Python科学计算库&#xff…

Python安装numpy,matplotlib

NumPy(Numerical Python)是Python语言的一个扩展程序库&#xff0c;支持大量的维度数组与矩阵运算&#xff0c;此外也针对数组运算提供大量的数学函数库。 Matplotlib可能Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化&#xff0c;并且提供多样化的输…

python numpy安装

一、python下的numpy安装方法 第一步&#xff1a;安装python&#xff0c;这里不做介绍。 第二步&#xff1a;打开cmd看python是否安装成功。 第三步&#xff1a;输入 python -m pip install -U pip 安装pip文件&#xff0c;pip文件一般在python安装包的script目录下。 第四步&a…

Windows下安装numpy

在看差分隐私的科普时&#xff0c;看到一篇文章&#xff0c;最后有用Laplace分布实现差分隐私的代码&#xff0c;所以就复制到PyCharm里运行了一下&#xff0c;运行时报错“没有numpy”&#xff08;具体怎么说的我也忘了&#xff0c;是import numpy as np这句报错&#xff0c;p…

使用Pycharm安装numpy库

如何在Pycharm中安装numpy库&#xff1f;笔者使用的是PyCharm Community Edition 2020.2.1 第一步 打开Pycharm&#xff0c;在上方找到File&#xff0c;在打开的界面中找到Settings。或者直接使用CtrlAltS快捷键打开settings。 第二步 在左侧以此找到Project&#xff0c;Pytho…

numpy的下载与安装教程(windows系统)

Numpy介绍 NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵&#xff0c;比Python自身的嵌套列表&#xff08;nested list structure)结构要高效的多&a…

Numpy的简明安装

1&#xff09;、安装Python3.4版本以上&#xff0c;因为这样会自带pip&#xff08;包管理器的安装&#xff09; 检查Python版本。 打开cmd&#xff0c;输入Python 现在我们可以知道Python的版本与位数&#xff0c;比如我的就是Python3.7&#xff0c;64位。 2&#xff09;…

python安装及numpy的安装

因为对机器学习算法进行实战的话&#xff0c;python语言是必须的&#xff0c;所以前几天进行了安装和配置。说实话&#xff0c;相比较其他的编程语言的IDE来讲&#xff0c;python本身问题不大&#xff0c;但是因为要有很多的矩阵的计算&#xff0c;所以要安装numpy包&#xff0…

Python使用pip安装Numpy模块

环境 python版本&#xff1a;python-3.9.1 操作系统&#xff1a;Windows10 想要安装的模块&#xff1a;numpy 前提 使用pip安装模块&#xff0c;需要保证pip为最新版本。如果使用pip时出现问题提示&#xff1a; You should consider upgrading via the python -m pip …

python安装使用pip安装numpy

相信大家最近都在忙&#xff0c;因为到开学和上班的时候了&#xff0c;我最近也很忙&#xff0c;忙的快要流泪&#xff0c;这不是要考计算机三级了吗&#xff01;买了好厚一本书&#xff0c;备战过程中&#xff0c;最近洗头一次掉了100根不止的头发&#xff0c;有点恐惧&#x…