数学建模-回归分析(Stata)

news2025/1/19 20:22:59

 注意:代码文件仅供参考,一定不要直接用于自己的数模论文中
国赛对于论文的查重要求非常严格,代码雷同也算作抄袭
如何修改代码避免查重的方法:https://www.bilibili.com/video/av59423231   //清风数学建模

 一、基础知识

1.简介

X是自变量,Y是因变量。目的是通过X去预测Y。

一般处理模型像:期末成绩分析,Y是成绩,X是性别、是否是班干部、平时作业完成度等自变量。银行借贷成功率分析等问题。

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

 3.一元线性回归

①扰动项u与x均不相干,模型有外生性;否则存在内生性。包含了所有与y相关,但未添加到回归模型中的变量,如果这些变量和我们已经添加的自变量相关,则存在内生性。

内生性的蒙特卡罗模拟:

相关系数绝对值越大,代表内生性越大(matlab代码)
%% 蒙特卡洛模拟:内生性会造成回归系数的巨大误差
times = 300;  % 蒙特卡洛的次数
R = zeros(times,1);  % 用来储存扰动项u和x1的相关系数
K = zeros(times,1);  % 用来储存遗漏了x2之后,只用y对x1回归得到的回归系数
for i = 1: times
    n = 30;  % 样本数据量为n
    x1 = -10+rand(n,1)*20;   % x1在-10和10上均匀分布,大小为30*1
    u1 = normrnd(0,5,n,1) - rand(n,1);  % 随机生成一组随机数
    x2 = 0.3*x1 + u1;   % x2与x1的相关性不确定, 因为我们设定了x2要加上u1这个随机数
    % 这里的系数0.3我随便给的,没特殊的意义,你也可以改成其他的测试。
    u = normrnd(0,1,n,1);  % 扰动项u服从标准正态分布
    y = 0.5 + 2 * x1 + 5 * x2 + u ;  % 构造y
    k = (n*sum(x1.*y)-sum(x1)*sum(y))/(n*sum(x1.*x1)-sum(x1)*sum(x1)); % y = k*x1+b 回归估计出来的k
    K(i) = k;
    u = 5 * x2 + u;  % 因为我们回归中忽略了5*x2,所以扰动项要加上5*x2
    r = corrcoef(x1,u);  % 2*2的相关系数矩阵
    R(i) = r(2,1);
end
plot(R,K,'*')
xlabel("x_1和u'的相关系数")
ylabel("k的估计值")

③主要证明:核心变量与u不相干

核心解释变量: 我们最感兴趣的变量,因此我们特别希望得到对其系数的一致估计(当样本容量无限增大时,收敛于待估计参数的真值 )。
控制变量: 我们可能对于这些变量本身并无太大兴趣;而之所以把它们也放入回归方程,主要是为了 “控制住” 那些对被解释变量有影响的遗漏因素。

 ④什么时候取对数

对于什么时候取对数还没有固定的规则,但是有一些经验法则:
(1)与市场价值相关的,例如,价格、销售额、工资等都可以取对数;
(2)以年度量的变量,如受教育年限、工作经历等通常不取对数;
(3)比例变量,如失业率、参与率等,两者均可;
(4)变量取值必须是非负数,如果包含0,则可以对y取对数ln(1+y);
取对数的好处: (1)减弱数据的异方差性
(2)如果变量本身不符合正态分布,取了对数后 可能渐近服从正态分布
(3)模型形式的需要,让模型具有经济学意义。

⑤三(四)种模型

1 一元线性回归 𝑦 𝑎 𝑏𝑥 𝜇 x 每增加 1 个单位, y 平均变化 b 个单位;
2 双对数模型 𝑙𝑛𝑦 𝑎 𝑏𝑙𝑛𝑥 𝜇 x 每增加 1% y 平均变化 b%
3 半对数模型 :𝑦 = 𝑎+ 𝑏𝑙𝑛𝑥 𝜇 x 每增加 1% y 平均变化 b/100 个单位;
4 半对数模型 :𝑙𝑛𝑦= 𝑎+  𝑏𝑥 𝜇 x 每增加 1 个单位, y 平均变化 (100b)%

 ⑥自变量有定性变量(如男女)引入虚拟变量x(女x=1 男x=0)

二、实战演练(Stata)

1.题目

 打卡stata导入,勾上第一个

 2.定量数据和定性数据

定性数据是与描述有关的数据,可以观察到但无法计算。 相反,定量数据是一个专注于数字和数学计算,可以计算和计算的。

比如数据中价格、评价量和重量都是可以拿数字直接表示,而产品名产地这种无法计算的只能定性处理。

summarize 团购价元 评价量 商品毛重kg
定量:summarize 变量 1 变量 2 ... 变量 n

评价变量,想评价啥就输入评价量

定性:tabulate 变量名 ,gen(A)
返回对应的这个变量的频率分布表,并生成对应的虚拟变量 ( A 开头 )
// 定性变量的频数分布,并得到相应字母开头的虚拟变量
tabulate 配方,gen(A)
tabulate 奶源产地 ,gen(B)
tabulate 国产或进口 ,gen(C)
tabulate 适用年龄岁 ,gen(D)
tabulate 包装单位 ,gen(E)
tabulate 分类 ,gen(F)
tabulate 段位 ,gen(G)

 之后右侧会生成A1A2A3B1B2等变量

3.回归(默认OLS:普通最小二乘估计法)

regress y x1 x2 … xk
regress 评价量 团购价元 商品毛重 kg

 加入虚拟变量回归

小技巧全选:鼠标在右边变量框下滑选中最后一个点击(文章是G4),再shift点击第一个即可全选,复制即可得到所有变量名。

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

注意只要定量变量+字母的定性变量

Stata 会自动检测数据的完全多重共线性问题。

 上图的R-squared即R方,越高越好。

 4.标准化回归系数

regress y x1 x2 … xk,beta

regress 评价量 团购价元 商品毛重kg,b

 5.拓展

1.异方差;

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

异方差的检验:

在回归结束后运行命令:
rvfplot      (画残差与拟合值的散点图)
rvpplot x      ( 画残差与自变量 x 的散点图 )

2.拟合值出现负数的原因

 3.异方差的假设检验

BP法

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

原假设:扰动项不存在异方差
P 值小于 0.05 ,说明在 95% 的置信水平下拒绝原假设,即我们认为扰动项存在异方差
怀特检验
怀特检验原假设:
不存在异方差
Stata 命令(在回归结束后使用):
estat imtest,white

 4.处理异方差

使用OLS + 稳健的标准误

regress y x1 x2 … xk,robust

 5.检验多重共线性

(vif>10认为存在严重的多重共线性)

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

6. 逐步回归分析

向前逐步回归Forward selection:
stepwise regress y x1 x2 … xk, pe(#1)
(显著才加入模型中).
向后逐步回归Backward elimination:
stepwise regress y x1 x2 … xk, pr(#2)
(不显著就剔除出模型).
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)
如果你觉得筛选后的变量仍很多,你可以减小 #1 或者 #2   (#1 #2一般取0.05)
如果你觉得筛选后的变量太少了,你可以增加 #1 或者 #2
: (1)x1 x2 … xk 之间不能有完全多重共线性 ( regress 不同哦 )
(2)可以在后面再加参数 b r ,即标准化回归系数或稳健标准误

一般向前向后逐步回归都跑一遍放论文里即可。

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

不得不面对的随机MAC问题

一、现状 为了完善安全机制、保护用户隐私,各个设备厂商开发了 MAC 地址随机功能,防止用户信息泄露。随机 MAC 地址,就是一个随机生成的伪 MAC 地址,一个假 MAC 地址,使用随机 MAC 地址进行网络通信,而不是…

全网圣诞树最全完整源码下载合集【可下载】

文章目录一、全部源码打包下载:二、效果预览001-html版本 豪华动态圣诞树 抖音同款002-圣诞树灯光跟随音乐节拍一起呼吸点亮下雪动画效果代码003-圣诞树彩带飘动节日快乐效果代码004-圣诞树带音乐旋转拉伸动画效果005-python版本python取消延迟秒出图版 【全网最强无…

当FutureTask遇上DiscardPolicy,有坑

文章目录有啥坑呢?知识回顾问题触发条件问题复现问题分析问题修复扩展哈喽,你好,我是余数。今天来了解下当 FutureTask 遇上 DiscardPolicy 或 DiscardOldestPolicy 时容易掉的坑,然后分析分析问题产生的原因以及如何规避这类问题…

LVS+Keepalived+Nginx具体配置步骤

视频链接:4-6 搭建LVS-DR模式- 为两台RS配置虚拟IP_哔哩哔哩_bilibili 视频笔记链接:笔记 一、服务器与Ip约定 LVS DIP: 192.168.1.151 VIP: 192.168.1.150 Nginx1 RIP: 192.168.1.171 VIP: 192.168.1.150 Nginx2 RIP: 192.168.1.172 VIP: 192.168…

力扣 2283. 判断一个数的数字计数是否等于数位的值

题目 给你一个下标从 0 开始长度为 n 的字符串 num &#xff0c;它只包含数字。 如果对于 每个 0 < i < n 的下标 i &#xff0c;都满足数位 i 在 num 中出现了 num[i]次&#xff0c;那么请你返回 true &#xff0c;否则返回 false 。 示例 输入&#xff1a;num “1…

vue文件上传

vue文件上传 前言 今天写一篇关于文件上传的文章&#xff0c;其实对于真正工作的人来说&#xff0c;这不是很难的事&#xff0c;但对于新手来说无疑是个新技术 实现功能如下图 根据上传文件类型显示对应文件类型&#xff0c;图片直接显示&#xff0c;当然图片特可以做对应类型…

【NI Multisim 14.0原理图设计基础——参数属性设置】

目录 序言 &#x1f46c;一、参数属性设置 序言 NI Multisim最突出的特点之一就是用户界面友好。它可以使电路设计者方便、快捷地使用虚拟元器件和仪器、仪表进行电路设计和仿真。 首先启动NI Multisim 14.0&#xff0c;打开如图所示的启动界面&#xff0c;完成初始化后&…

初始C语言-分支与循环语句

目录 一、语句 1. 什么是语句&#xff1f; C语句可分为以下五类&#xff1a; 1. 表达式语句 2. 函数调用语句 3. 控制语句 4. 复合语句 5. 空语句 2. 控制语句&#xff1a; 1. 条件判断语句也叫分支语句&#xff1a;if语句、switch语句&#xff1b; 2. 循环执行语句…

extern “C“的作用以及c/c++代码互调

一、目的相信从事嵌入开发的小伙伴肯定遇到过使用第三库的情景&#xff0c;有时候可能是C中调用C库&#xff0c;有时候可能又是C中调用C库&#xff1b;如果你遇到过&#xff0c;那你肯定知道extern "C"的作用.本篇的目的就是给大家介绍C/C互相调用的原理和实践。二、…

RK3588平台开发系列讲解(内核调试篇)CPU Hotplug 调试

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、CPU Hotplug 介绍二、CPU Hotplug 内核开关三、sysfs调试沉淀、分享、成长,让自己和他人都能有所收获!😄 📢多核系统底层驱动提供了cpu的Plugin/Unplug接口,可以实现动态调整cpu使用运行。 一、CPU Hotplu…

在 Node JS 中实现微服务架构

&#x1f4cd;简介&#x1f642; 正如我们在之前的博客“单体与微服务&#xff1a;一种实用方法”中讨论的那样。但是今天我们要在 NodeJS 中实现微服务架构。&#x1f449; 您可以使用任何技术&#xff0c;如 Spring、Python 等。但我们将使用 NodeJS 进行演示。&#x1f4cd;…

PostgreSQL下载、安装和配置使用

1&#xff09;下载 PostgreSQL官网下载&#xff1a;https://www.enterprisedb.com/downloads/postgres-postgresql-downloads 2&#xff09;安装 双击运行安装包 选择安装目录&#xff0c;不推荐安装在C盘。 选择需要安装的服务&#xff0c;不明白是啥的全选就行&#xf…

内含JAVA简单概括和JAVA所需安装的软件和详细教程,想学习JAVA无从下手,这篇文章带你迈出第一步

本文大致概括了JAVA编程语言的简史和特点,主要介绍了JAVA开发环境安装,涉及JDK,Sublime Text IntelliJ IDEA三个软件的简单介绍,安装和使用,最后编写了第一个JAVA代码,保姆级教学,跟着文章一步步来,迈出你学习JAVA的第一步吧! 初识JAVA一.JAVA语言简介二.JAVA发展简史三.JAVA语…

通过模拟器实现APP抓包

本教程将跳过工具安装部分&#xff0c;请正确食用&#x1f609;我的环境&#xff1a;操作系统&#xff1a;win11模拟器版本&#xff1a;雷电安卓模拟器稳定版-安卓7.1(32位) V5.0.46抓包工具&#xff1a;Wireshark-Version 4.0.1抓包工具&#xff1a;charles-Version 4.6.3工具…

SpringMVC(十一):SpringMVC文件上传中要解决的问题

文章目录 SpringMVC文件上传中要解决的问题 一、中文文件名编码问题 二、文件位置存储问题

【YOLO系列】YOLOv8算法(尖端SOTA模型)

前言回顾 在这里粗略回顾一下YOLOv5&#xff0c;这里直接提供YOLOv5的整理的结构图吧 Backbone&#xff1a;CSPDarkNet结构&#xff0c;主要结构思想的体现在C3模块&#xff0c;这里也是梯度分流的主要思想所在的地方&#xff1b;PAN-FPN&#xff1a;双流的FPN&#xff0c;必…

Linux——常用命令1.

✅<1>主页&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;linux &#x1f525;<3>创作者&#xff1a;我的代码爱吃辣 ☂️<4>开发环境&#xff1a;Visual Studio 2022 &#x1f4ac;<5>前言&#xff1a;Linux常用命令 目录 …

Centos7安装JDK1.8(OracleJDK8)

Linux安装JDK1.8 | OracleJDK8Linux安装JDK1.8(OracleJDK8)卸载openJDK官网下载OracleJDK8解压JDK到指定目录配置JDK变量查看jdk是否可用Linux安装JDK1.8(OracleJDK8) Hadoop官方的JDK要求https://cwiki.apache.org/confluence/display/HADOOP/HadoopJavaVersions JDK变量配置…

Java——》下载Hotspot 虚拟机源码

推荐链接&#xff1a; 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 Java——》下载Hotspot 虚拟机源码一、官网下载压…

信息系统基础

目录 一、信息化概述 1.信息的定义 2.信息的特点 3.信息化的概念 4.信息对经济社会的意义 5.信息化对组织的意义 二、信息系统工程的总体规划 1.信息系统工程总体规划方法论 2.信息系统的生命周期和各阶段的目标 三.政府信息化与电子政务 1.电子政务的组成 2.电子政务…