数学建模常用算法——Stata求解多元线性回归问题

本文详细介绍了回归分析在数据分析中的应用,包括线性回归、定序回归等多种类型。通过实例展示了如何在STATA中进行多元线性回归分析,涉及数据预处理、异方差性检验、多重共线性处理以及逐步回归分析等关键步骤。同时,强调了回归分析在识别变量重要性、预测目标变量等方面的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是回归分析

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

常见的回归分析有五类:线性回归、0‐1回归、定序回归、计数回归和生存回归,其划分的依据是因变量Y的类型。
在这里插入图片描述

回归分析的使命

  1. 回归分析要去识别并判断哪些X变量是同Y真的相关,哪些不是。统计学中有一个非常重要的领域,叫做“变量选择”。(逐步回归法)
  2. 去除了那些同Y不相关的X变量,那么剩下的,就都是重要的、有用的X变量了。接下来回归分析要回答的问题是:这些有用的X变量同Y的相关关系是正的呢,还是负的
  3. 在确定了重要的X变量的前提下,我们还想赋予不同X不同的权重,也就是不同的回归系数,进而我们可以知道不同变量之间的相对重要性

不同数据类型的处理方法

在这里插入图片描述
横截面数据:在相同时间段内收集的不同对象的数据。

时间序列数据:对同一对象在不同时间连续观察所取得的数据。

面板数据:横截面数据与时间序列数据综合起来的一种数据资源。

STATA求解多元线性回归问题实战

在这里插入图片描述

1. 导入数据

文件→导入→excel表格(数据不能归一化)
在这里插入图片描述

2. 数据的描述性统计

在这里插入图片描述

2.1 定量数据

在这里插入图片描述

2.2 定性数据

对于定性数据,我们无法直接进行回归分析,需要生成对应的虚拟变量。
在这里插入图片描述
通过类似方法,我们生成所有定性数据的虚拟变量:

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

在这里插入图片描述

3. 多元线性回归在这里插入图片描述

注意以下几个参数:

  • Prob>F = 0.0000<0.05,表示在95%的置信水平下拒绝原假设β1=β2=β3=···=βn=0(n代表自变量个数),表示模型通过了联合显著性检验,所以该模型是有意义的。
  • P>|t| 那一列中团购价为0.000,商品毛重为0.457,则表示团购价这一个因变量在95%的置信水平下是显著的,则该因变量是有意义的。同理可以得到商品毛重这个因变量对我们的评价量是没有意义的。
  • 在团购价这个因变量显著的前提下,它的回归系数Coef.为-35.39873,表示在其他因变量不变的前提下,当团购价每增加一元,将导致我们的评价量减少35.39873条。

下面我们加入虚拟变量回归
在这里插入图片描述

  • 同理我们得到Prob>F = 0.0000,表示该模型通过联合显著性检验。

在这里插入图片描述

  • 我们看到 P>|t| 那一列,团购价为0.0000,F1为0.081,表示在90%的置信区间下,团购价和F1这两个因变量是显著的。
  • 团购价的回归系数Coef. = -29.77274,表示在其他因变量不变的前提下,当团购价每增加一元,将导致我们的评价量减少29.77274条。
  • F1的回归系数Coef. = 14894.55,我们看到F2为对照变量,说明在其他因变量不变的前提下,分类为F1(牛奶粉)的平均评价量要比分类为F2(羊奶粉)的平均评价量要高出14894.55条。

🔺 标准化线性回归

为了更为精准的研究影响评价量的重要因素(去除量纲的影响),我们可考虑使用标准化回归系数

对数据进行标准化,就是将原始数据减去它的均数后,再除以该变量的标准差,计算得到新的变量值,新变量构成的回归方程称为标准化回归方程,回归后相应可得到标准化回归系数。

标准化系数的绝对值越大,说明对因变量的影响就越大(只关注显著的回归系数哦)。
在这里插入图片描述

4. 异方差检验

4.1 异方差的影响

在这里插入图片描述

  • 即使存在异方差,OLS估计出来的回归系数依然是无偏的,一致的。
  • 导致假设检验无法使用(构造的统计量失效了)。
  • OLS估计量不再是最优线性无偏估计量(BLUE)。
4.2 异方差的假设检验
4.2.1 绘制散点图

在这里插入图片描述
可以看出随着拟合值和团购价的增加,残差越来越发散,说明出现了异方差的问题。

🔺从残差与拟合值的散点图中我们可以看到拟合值出现了负数,我们执行以下命令:

// 描述性统计并给出分位数对应的数值
summarize 评价量,d

// 作评价量的概率密度估计图
kdensity 评价量

在这里插入图片描述
因变量数据分布不平衡将导致拟合值出现负数。

4.2.2 BP检验/怀特检验

两种检验的原假设均为:扰动项不存在异方差。

  • BP检验 estat hettest ,rhs iid
    在这里插入图片描述
    P值小于0.05,说明在说明在95%的置信水平下拒绝原假设,即我们认为扰动项存在异方差。
  • 怀特检验(推荐) estat imtest,white
    在这里插入图片描述
    P值小于0.05,说明在说明在95%的置信水平下拒绝原假设,即我们认为扰动项存在异方差。
4.3 异方差的处理方法
  • 使用OLS + 稳健的标准误 (推荐)
    原理:仍然进行OLS 回归,但使用稳健标准误。
    优点:这是最简单,也是目前通用的方法。只要样本容量较大,即使在异方差的情况下,若使用稳健标准误,则所有参数估计、假设检验均可照常进行。换言之,只要使用了稳健标准误,就可以与异方差“和平共处”了。
  • 广义最小二乘法GLS
    原理:方差较大的数据包含的信息较少,我们可以给予信息量大的数据(即方差较小的数据更大的权重)
    缺点:我们不知道扰动项真实的协方差矩阵,因此我们只能用样本数据来估计,这样得到的结果不稳健,存在偶然性。

5. 使用OLS + 稳健的标准误(有异方差时才使用)

regress y x1 x2 … xk,robust(或r)

在这里插入图片描述
与前面一样,我们还是要关注红色方框内的参数,分析方法与前面相同,这里不再赘述。

6. 检验多重共线性

6.1 多重共线性的症状
  • 虽然整个回归方程的R2较大、F检验也很显著,但单个系数的l检验却不显著,或者系数估计值不合理,甚至符号与理论预期相反。
  • 另一可能“症状"是,增减解释变量使得系数估计值发生较大变化(比如,最后加入的解释变量与已有解释变量构成多重共线性)。直观来看,如果两个(或多个)解释变量之间高度相关,则不容易区分它们各自对被解释变量的单独影响力。在极端情况下,一个变量刚好是另一变量的倍数,则完全无法区分。
6.2 检验多重共线性

方差膨胀因子VIF,VIFm越大,说明第m个变量和其他变量的相关性越大。一个经验规则是,如果VIF>10,则认为该回归方程存在严重的多重共线性。

公式:estat vif
在这里插入图片描述

6.3 多重共线性的处理方法

在这里插入图片描述

7. 逐步回归分析

7.1 逐步回归分析的两种方法

采用逐步回归分析不存在多重共线性的影响

  • 向前逐步回归Forward selection
    将自变量逐个引入模型,每引入一个自变量后都要进行检验,显著时才加入回归模型。(缺点:随着以后其他自变量的引入,原来显著的自变量也可能又变为不显著了,但是,并没有将其及时从回归方程中剔除掉。)
  • 向后逐步回归Backward elimination(推荐):
    与向前逐步回归相反,先将所有变量均放入模型,之后尝试将其中一个自变量从模型中剔除,看整个模型解释因变量的变异是否有显著变化,之后将最没有解释力的那个自变量剔除;此过程不断迭代,直到没有自变量符合剔除的条件。
7.2 Stata实现逐步回归法

逐步回归法可以
在这里插入图片描述

7.3 出现完全多重共线性的错误

在这里插入图片描述

7.4 逐步回归说明
  1. 向前逐步回归和向后逐步回归的结果可能不同,推荐使用向后逐步回归。
  2. 不要轻易使用逐步回归分析,因为剔除了自变量后很有可能会产生新的问
    题,例如内生性问题(在经济学类论文中需要注意这一点,在数学建模论文中可以直接使用)。
  3. 有没有更加优秀的筛选方法?有的,那就是每种情况都尝试一次,最终有2的k次方-1种k可能,如果自变量很多,那么计算相当费时。

8. 拟合优度较低怎么办?

  • 拟合优度对应结果中的 R-squared
  • 调整后的拟合优度对应结果中的 Adj R-squared
    在这里插入图片描述

软件下载地址

链接:https://pan.baidu.com/s/1pQOF9hl0EO3_Seffb0utow
提取码:ekjb
复制这段内容后打开百度网盘手机App,操作更方便哦

<think>好的,我现在需要回答用户关于如何在Stata中进行VIF检验的问题。首先,我得回想一下自己之前学过的Stata相关知识,或者查找相关资料确保步骤正确。 用户提到VIF,也就是方差膨胀因子,这是用来检测多重共线性的指标。我记得在回归分析后,可以通过命令来获取VIF值。可能是在回归命令之后使用某个选项或者单独的命令。 首先,用户可能需要先运行回归模型,比如regress命令。然后,使用 estat vif 命令来得到VIF值。对吗?比如: regress y x1 x2 x3 estat vif 这样就能显示每个变量的VIF值。通常VIF大于10被认为存在严重的多重共线性问题。 但需要确认步骤是否正确,是否有其他需要注意的地方。例如,是否需要在回归时指定某些选项,或者是否需要安装额外的包。Stata的基础命令里应该包含estat vif,不需要额外安装。 另外,可能需要解释VIF的意义,以及如何解读结果。比如,VIF值越高,说明共线性越严重,可能影响回归系数的稳定性。 还需要考虑是否有其他方法可以检测多重共线性,比如相关系数矩阵,但VIF更常用。同时,用户可能需要知道如何处理高VIF的情况,比如删除变量、主成分分析等,但用户的问题仅限于如何执行检验,所以可能不需要展开。 还需要检查是否有引用来源。用户提供的引用中,引用[2]提到了回归分析的相关内容,可能可以关联到VIF检验是回归诊断的一部分。所以可以适当引用。 总结步骤: 1. 运行回归模型:regress 因变量 自变量 2. 执行estat vif命令 3. 解读结果,检查VIF值是否超过阈值(通常10或5) 确保没有语法错误,比如命令的正确拼写,是否需要在estat前先运行回归等。另外,提醒用户注意事项,比如数据已经正确导入,变量类型正确等。</think>在Stata中进行**方差膨胀因子(VIF)检验**是诊断回归模型中多重共线性问题常用方法。以下是具体步骤和说明: --- ### **步骤 1:运行回归模型** 首先,使用`regress`命令(或简写`reg`)运行线性回归模型。例如,假设因变量为`y`,自变量为`x1`, `x2`, `x3`: ```stata reg y x1 x2 x3 ``` --- ### **步骤 2:执行VIF检验** 在回归模型运行完成后,使用`estat vif`命令计算方差膨胀因子: ```stata estat vif ``` --- ### **步骤 3:解读结果** Stata会输出每个自变量的VIF值及其均值: - **VIF值**:衡量自变量与其他自变量之间的线性相关性。经验阈值通常为: - **VIF > 10**:存在严重多重共线性[^2]。 - **VIF > 5**:可能存在中度共线性(需结合具体场景判断)。 - **1/VIF**:若该值小于0.1(即VIF > 10),需警惕共线性影响。 示例输出: ``` Variable | VIF 1/VIF ---------+---------------------- x1 | 3.20 0.3125 x2 | 2.75 0.3636 x3 | 1.85 0.5405 ---------+---------------------- Mean VIF | 2.60 ``` --- ### **注意事项** 1. **数据要求**:VIF检验适用于线性回归模型,且要求数据满足基本回归假设(如无严重异方差或自相关性)[^2]。 2. **局限性**:VIF仅检测线性共线性,无法识别非线性关系或交互效应。 3. **解决方案**:若VIF过高,可考虑: - 删除高VIF变量 - 使用主成分分析(PCA)降维 - 引入正则化方法(如岭回归) ---
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值