数学建模—多元线性回归分析(+lasso回归的操作)

第一部分:回归分析的介绍

定义:回归分析是数据分析中最基础也是最重要的分析工具,绝大多数的数据分析问题,都可以使用回归的思想来解决。回归分析的人数就是,通过研究自变量X和因变量Y的相关关系,尝试去解释Y的形成机制,进而达到通过X去预测Y的目的。

常见的回归分析有五类:线性回归,0-1回归,定序回归,计数回归和生存回归,其划分的依据是因变量Y的类型。本讲我么你主要学习线性回归。

回归的思想:

第一个关键词:相关性

相关性!= 因果性,我们不能因为出两者有相关性就得出两者是由因果关系的。

第二个关键词:Y

第三个关键词是:X

0-1回归的例子(0-1回归的例子一般只有两个答案所以Y只有两个值来表示)

回归分析的使命:

第二部分:不同数据类型的处理方法

 

数据的分类:

  1. 横截面数据

     

     2. 时间序列数据:

    3. 面板数据

  2.          不同数据类型的处理方法:

  3. 第三部分:对于线性回归的理解以及生性问题的研究

    一元线性回归:

    存在扰动项:yi-y^i=yi-B^0-B^1xi

  4. 对于线性的理解:

    回归系数的解释:

    关于内生性的探究:

    扰动项与所有的自变量不存在相关性的时候则模型具有外生性。因此我们需要对模型的自变量与扰动项求其相关性。

    内生性的蒙特卡洛模拟:

    Matlab实操:

     

    核心解释变量和控制变量

    对于我们想要求取的因素当作变量,其余的因素可以看作扰动项。

    第四部分:四种模型的解释,与你变量的设置以及交互项的解释

    回归系数的解释:

    什么时候取对数?

    四种模型的回归系数解释:

     

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

    对于定性变量我们可以用数字来进行表示如女性为1,男性为0.

     

    多分类的虚拟变量:

    为了避免完全多重共线性的影响,引入的虚拟变量的个数一般是分类数减1.

    还有交互项(两个自变量相乘)的自变量

    第五部分:案列引入

    Stata软件的介绍:

    文件导入:

     

    Stata中一些函数的作用:// 按键盘上的PageUp可以使用上一次输入的代码(Matlab中是上箭头)
    
    // 清除所有变量
    
    clear
    
    // 清屏 和 matlab的clc类似
    
    cls
    
    // 导入数据(其实是我们直接在界面上粘贴过来的,我们用鼠标点界面导入更方便 本条请删除后再复制到论文中,如果评委老师看到了就知道这不是你写的了)
    
    // import excel "C:\Users\hc_lzp\Desktop\数学建模视频录制\第7讲.多元回归分析\代码和例题数据\课堂中讲解的奶粉数据.xlsx", sheet("Sheet1") firstrow
    
    import excel "课堂中讲解的奶粉数据.xlsx", sheet("Sheet1") firstrow
    
    // 定量变量的描述性统计
    
    summarize 团购价元 评价量 商品毛重kg
    
    // 定性变量的频数分布,并得到相应字母开头的虚拟变量
    
    tabulate 配方,gen(A)
    
    tabulate 奶源产地 ,gen(B)
    
    tabulate 国产或进口 ,gen(C)
    
    tabulate 适用年龄岁 ,gen(D)
    
    tabulate 包装单位 ,gen(E)
    
    tabulate 分类 ,gen(F)
    
    tabulate 段位 ,gen(G)
    
    // 下面进行回归
    
    regress 评价量 团购价元 商品毛重kg
    
    // 下面的语句可帮助我们把回归结果保存在Word文档中
    
    // 在使用之前需要运行下面这个代码来安装下这个功能包(运行一次之后就可以注释掉了)
    
    // ssc install reg2docx, all replace
    
    // 如果安装出现connection timed out的错误,可以尝试换成手机热点联网,如果手机热点也不能下载,就不用这个命令吧,可以自己做一个回归结果表,如果觉得麻烦就直接把回归结果截图。
    
    est store m1
    
    reg2docx m1 using m1.docx, replace
    
    // *** p<0.01  ** p<0.05 * p<0.1
    
    
    
    // Stata会自动剔除多重共线性的变量
    
    regress 评价量 团购价元 商品毛重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
    
    est store m2
    
    reg2docx m2 using m2.docx, replace
    
    
    
    // 得到标准化回归系数
    
    regress 评价量 团购价元 商品毛重kg, b
    
    
    
    // 画出残差图
    
    regress 评价量 团购价元 商品毛重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
    
    rvfplot
    
    // 残差与拟合值的散点图
    
    graph export a1.png ,replace
    
    // 残差与自变量团购价的散点图
    
    rvpplot  团购价元
    
    graph export a2.png ,replace
    
    
    
    // 为什么评价量的拟合值会出现负数?
    
    // 描述性统计并给出分位数对应的数值
    
    summarize 评价量,d
    
    
    
    // 作评价量的概率密度估计图
    
    kdensity 评价量
    
    graph export a3.png ,replace
    
    
    
    // 异方差BP检验
    
    estat hettest ,rhs iid
    
    
    
    // 异方差怀特检验
    
    estat imtest,white
    
    
    
    // 使用OLS + 稳健的标准误
    
    regress 评价量 团购价元 商品毛重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, r
    
    est store m3
    
    reg2docx m3 using m3.docx, replace
    
    
    
    // 计算VIF
    
    estat  vif
    
    
    
    // 逐步回归(一定要注意完全多重共线性的影响)
    
    // 向前逐步回归(后面的r表示稳健的标准误)
    
    stepwise reg 评价量 团购价元 商品毛重kg A1 A3 B1 B2 B3 B4 B5 B6 B7 B9 C1 D1 D2 D3 D4 E1 E2 E3 F1 G1 G2 G3,  r pe(0.05)
    
    // 向后逐步回归(后面的r表示稳健的标准误)
    
    stepwise reg 评价量 团购价元 商品毛重kg A1 A3 B1 B2 B3 B4 B5 B6 B7 B9 C1 D1 D2 D3 D4 E1 E2 E3 F1 G1 G2 G3,  r pr(0.05)
    
    // 向后逐步回归的同时使用标准化回归系数(在r后面跟上一个b即可)
    
    stepwise reg 评价量 团购价元 商品毛重kg A1 A3 B1 B2 B3 B4 B5 B6 B7 B9 C1 D1 D2 D3 D4 E1 E2 E3 F1 G1 G2 G3,  r b pr(0.05)
    
    
    
    
    
    // 补充语法 (大家不需要具体的去学Stata软件,掌握我课堂上教给大家的一些命令应对数学建模比赛就可以啦)
    
    // 事实上大家学好Excel,学好后应对90%的数据预处理问题都能解决
    
    // (1) 用已知变量生成新的变量
    
    generate lny = log(评价量) 
    
    generate price_square = 团购价元 ^2
    
    generate interaction_term = 团购价元*商品毛重kg
    
    
    
    // (2) 修改变量名称,因为用中文命名变量名称有时候可能容易出现未知Bug
    
    rename 团购价元 price

  5. 案列中的各指标介绍:

    Stata中的回归语句:

    表中的Model对应SSR,Residual对应SSE,Total对应SST

    Df(自由度)那一列分别是:k,n-k-1,n-1。

    看prob若<0.1(假设为90%)通过。

    拟合优度较低怎么办:

    拟合出现负值的原因:

    标准化回归系数:

    Stata标准化回归命令:

     

    第六部分异方差多重共线性以及交互项的解释:

    扰动项要满足的条件:、

    异方差以及如何解决:

    检验异方差:

    拟合值出现负数的原因

    拟合值分布不均匀,R^2过小,出现负数。

异方差的假设性检验:

BP检验的结果:

怀特检验:

异方差的处理方法:

Stata中的OLS+稳健的标准误

多重共线性:

检验:

处理:

逐步回归分析

Stata中的逐步回归分析的实现:

 

 

 

完全多重共线性的错误:

更新:

Lasso回归

由于数据中的一些自变量会导致模型出现共线性,所以利用Losso回归将一些不重要的自变量剔除掉。

 

Losso回归的实现我们利用stata操作:

 

我们拿棉花产量估计作为案例

 

对于自变量量纲不同,需要标准化。

Stata中将数据标准化的函数为:egen 重命名 = 需要标准化的自变量。(本案例的量纲相同,只是举如何标准化例子)

 

如何用stata进行lasso回归呢?

 

最后stata会生成一个数据表,和一个表格。

数据表解析:

数据表中带*的表示λmin,MSPEmin。即我们最小调参数

 

表格分析:

Selected表示核心自变量

Lasso表示Lasso估计的x系数与估计值。

Past-est OLS:标准多元线性回归的x系数与估计值。

Lasso只帮助我们剔除可能会产生多重共线性的自变量xi,在生成多元线性回归模型时我们仍选择标准多元回归模型的参数。

注意:seed后随意数的不同,核心变量也会相对发生改变。

 

Lasso回归使用:帮助我们在对数据建立多元线性回归模型时筛选出不重要的变量。

步骤:1.判断自变量量纲是否一样,若不一样需要标准化预处理

2.对变量使用lasso回归,系数不为0的变量即要留下的重要变量。

 

 

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

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

相关文章

解决遥感技术在生态、能源、大气等领域的碳排放监测及模拟问题

以全球变暖为主要特征的气候变化已成为全球性环境问题&#xff0c;对全球可持续发展带来严峻挑战。2015年多国在《巴黎协定》上明确提出缔约方应尽快实现碳达峰和碳中和目标。2019年第49届 IPCC全会明确增加了基于卫星遥感的排放清单校验方法。随着碳中和目标以及全球碳盘点的现…

2000-2022年全国各地级市绿色金融指数数据

2000-2022年全国各地级市绿色金融指数数据 1、时间&#xff1a;2000-2022年 2、来源&#xff1a;来源&#xff1a;统计局、科技部、中国人民银行等权威机构网站及各种权威统计年鉴&#xff0c;包括全国及各省市统计年鉴、环境状况公报及一些专业统计年鉴&#xff0c;如 《中国…

【深度学习笔记】TensorFlow 基础

在 TensorFlow 2.0 及之后的版本中&#xff0c;默认采用 Eager Execution 的方式&#xff0c;不再使用 1.0 版本的 Session 创建会话。Eager Execution 使用更自然地方式组织代码&#xff0c;无需构建计算图&#xff0c;可以立即进行数学计算&#xff0c;简化了代码调试的过程。…

KAFKA第二课之生产者(面试重点)

生产者学习 1.1 生产者消息发送流程 在消息发送的过程中&#xff0c;涉及到了两个线程——main线程和Sender线程。在main线程中创建了一个双端队列RecordAccumulator。main线程将消息发送给RecordAccumulator&#xff0c;Sender线程不断从RecordAccumulator中拉取消息发送到K…

泰国的区块链和NFT市场调研

泰国的区块链和NFT市场调研 基本介绍 参考&#xff1a; https://zh.wikipedia.org/zh-hans/%E6%B3%B0%E5%9B%BD参考&#xff1a; https://hktdc.infogram.com/thsc–1h7k2303zo75v2x zz制度&#xff1a; 君主立宪制&#xff08;议会制&#xff09; 国王&#xff1a; 玛哈哇集拉…

基于vue3+webpack5+qiankun实现微前端

一 主应用改造&#xff08;又称基座改造&#xff09; 1 在主应用中安装qiankun(npm i qiankun -S) 2 在src下新建micro-app.js文件&#xff0c;用于存放所有子应用。 const microApps [// 当匹配到activeRule 的时候&#xff0c;请求获取entry资源&#xff0c;渲染到containe…

JVM内存管理

文章目录 1、运行时数据区域1.1 程序计数器&#xff08;线程私有&#xff09;1.2 JAVA虚拟机栈&#xff08;线程私有&#xff09;1.3 本地方法栈1.4 Java堆&#xff08;线程共享&#xff09;1.5 方法区&#xff08;线程共享&#xff09;1.6 直接内存&#xff08;非运行时数据区…

拥抱AIGC浪潮,亚信科技将如何把握时代新增量?

去年底&#xff0c;由ChatGPT带起的AIGC浪潮以迅雷不及掩耳之势席卷全球。 当互联网技术的人口红利逐渐消退之际&#xff0c;AIGC就像打开通用人工智能大门的那把秘钥&#xff0c;加速开启数智化时代的到来。正如OpenAI CEO Sam Altman所言&#xff1a;一个全新的摩尔定律可能…

560. 和为 K 的子数组

思路 本题的主要思路为创建一个哈希表记录每个0~i的和&#xff0c;在遍历这个数组的时候查询有没有sum-k的值在哈希表中&#xff0c;如果有&#xff0c;说明有个位置到当前位置的和为k。   有可能不止一个&#xff0c;哈希表负责记录有几个sum-k&#xff0c;将和记录下来。这…

10个问题,带你重新认识smardaten企业级无代码

很多新客户在接触数睿数据&#xff0c;或者在初步认识smardaten企业级无代码的时候&#xff0c;大家更多地以为只是个普通的无代码工具。在交流过程中&#xff0c;大家也提出了很多疑惑&#xff1a; smardaten无代码平台包括哪些能力&#xff1f; 适合开发哪些应用&#xff1f…

AI自动驾驶

AI自动驾驶 一、自动驾驶的原理二、自动驾驶的分类三、自动驾驶的挑战四、自动驾驶的前景五、关键技术六、自动驾驶的安全问题七、AI数据与自动驾驶八、自动驾驶的AI算法总结 自动驾驶技术是近年来备受关注的热门话题。它代表了人工智能和机器学习在汽车行业的重要应用。本文将…

web集群学习:源码安装nginx配置启动服务脚本、IP、端口、域名的虚拟主机

目录 1、源码安装nginx&#xff0c;并提供服务脚本。 2、配置基于ip地址的虚拟主机 3、配置基于端口的虚拟主机 4、配置基于域名的虚拟主机 1、源码安装nginx&#xff0c;并提供服务脚本。 1、源码安装会有一些软件依赖 &#xff08;1&#xff09;检查并安装 Nginx 基础依赖…

PHP智能人才招聘网站mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP智能人才招聘网站 是一套完善的web设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 下载地址 https://download.csdn.net/download/qq_41221322/88199392 视频演示 PH…

TextBrewer:融合并改进了NLP和CV中的多种知识蒸馏技术、提供便捷快速的知识蒸馏框架、提升模型的推理速度,减少内存占用

TextBrewer:融合并改进了NLP和CV中的多种知识蒸馏技术、提供便捷快速的知识蒸馏框架、提升模型的推理速度&#xff0c;减少内存占用 TextBrewer是一个基于PyTorch的、为实现NLP中的知识蒸馏任务而设计的工具包&#xff0c; 融合并改进了NLP和CV中的多种知识蒸馏技术&#xff0…

GB28181智慧可视化指挥控制系统之执法记录仪设计探讨

什么是智慧可视化指挥控制系统&#xff1f; 智慧可视化指挥控制平台通过4G/5G网络、WIFI实时传输视音频数据至指挥中心&#xff0c;特别是在有突发情况时&#xff0c;可以指定一台执法仪为现场视频监控器&#xff0c;实时传输当前画面到指挥中心&#xff0c;指挥中心工作人员可…

支持对接鸿蒙系统的无线模块及其常见应用介绍

近距离的无线通信得益于万物互联网的快速发展&#xff0c;基于集成部近距离无线连接&#xff0c;为固定和移动设备建立通信的蓝牙技术也已经广泛应用于汽车领域、工业生产及医疗领域。为协助物联网企业终端产品能快速接入鸿蒙生态系统&#xff0c;SKYLAB联手国产芯片厂家研发推…

VR家装提升用户信任度,线上体验家装空间感

近些年&#xff0c;VR家装逐渐被各大装修公司引入&#xff0c;VR全景装修的盛行&#xff0c;大大增加了客户“所见即所得”的沉浸式体验感&#xff0c;不再是传统二维平面的看房模式&#xff0c;而是让客户通过视觉、听觉、交互等功能更加真实的体验家装后的效果。 对于传统家装…

造个轮子-任务调度执行小框架-任务执行器代理实现

文章目录 前言执行器代理代理对象任务清单代理对象任务清单执项对象处理handler对象状态对象代理工厂任务清单代理工厂清单任务项代理工厂总结前言 不知道为啥,今天好像学不进去,没办法,那就继续编码吧。那么今天的话,加更一篇文章,那就是咱们这个任务执行器的实现。先前…

opencv基础57-模板匹配cv2.matchTemplate()->(目标检测、图像识别、特征提取)

OpenCV 提供了模板匹配&#xff08;Template Matching&#xff09;的功能&#xff0c;它允许你在图像中寻找特定模板&#xff08;小图像&#xff09;在目标图像中的匹配位置。模板匹配在计算机视觉中用于目标检测、图像识别、特征提取等领域。 以下是 OpenCV 中使用模板匹配的基…

Java SPI介绍

SPI Java SPI : Service Provider Interface 是Java平台提供的一种机制&#xff0c;用于动态的加载和扩展功能的机制&#xff0c;它为框架和库提供了一种松耦合的扩展方式&#xff0c;核心是解耦。 例如JDBC驱动&#xff0c;日志框架&#xff0c;等应用&#xff0c;它为开发…
最新文章