数学建模7 多元线性回归分析

1、回归思想

相关性(不是因果性)
Y:因变量,常常是我们需要研究的核心变量,分为连续值型,0-1型,定序变量,计数变量,生存变量
X:自变量(解释变量)
回归分析:研究x和y之间的相关性的分析,尝试去解释Y的形成机制,进而达到通过x去预测y的目的。

回归分析的目的:
1.变量选择,识别重要变量(逐步回归法)
2. 正相关还是副相关?
3. 不同变量的重要性(估计权重)

2、回归分析分类

在这里插入图片描述

3、线性回归

1、数据的分类

在这里插入图片描述

2、数据的收集

在这里插入图片描述

4、一元线性回归

1、一元线性

在这里插入图片描述
对于线性的理解:并不要求初始模型成上述严格线性关系,自变量和因变量可通过变量变换转化成线性模型。

2、回归系数的解释

1.内生性:误差项u和所有的自变量x均相关,导致回归系数估计不准确,不满足无偏和一致性
2.当加入新的自变量后,对回归系数影响非常大。(内生性)
3. 内生性的蒙特卡罗模拟
在这里插入图片描述
蒙特卡罗模拟

%% 蒙特卡洛模拟:内生性会造成回归系数的巨大误差
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在-1010上均匀分布,大小为30*1
    u1 = normrnd(0,5,n,1) - rand(n,1);  % 随机生成一组随机数
    x2 = 0.3*x1 + u1;   % x2与x1的相关性不确定, 因为我们设定了x2要加上u1这个随机数
    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 = x2 + u;  % 因为我们忽略了x2,所以扰动项要加上x2
    r = corrcoef(x1,u);  % 2*2的相关系数矩阵
    R(i) = r(2,1);
end
plot(R,K,'*')
xlabel("x_1和u'的相关系数")
ylabel("k的估计值")

4.核心解释变量和控制变量:在实际应用中,我们只要保证核心解释变量与u不相关即可
回归系数:在控制其他自变量不变的情况下,x每增加一个单位,对y造成的变化,可以用偏导数来定义

3、取对数

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

4、四类模型回归系数的解释

在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200204124234885.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzQ0NDY4Nw==,size_16,color_FFFFFF,t_不变 70)
含有虚拟变量:为了避免完全多重共线性的影响,引入虚拟变量的个数一般是分类数减1。
含有交互自变量:在这里插入图片描述

5、利用stata软件进行回归分析

1.导入数据
2.数据的描述性统计,定量数据 summarize, 定性 tabulate
3. 回归语句 regress
4. 加入虚拟变量回归
5. 标准化回归系数 regress ,b
代码如下:

// 清除所有变量
clear
// 清屏 和 matlab的clc类似
cls 
import excel "/Users/tian.e.y/Downloads/A01所有课件/第1-14讲和番外篇课件和代码(12月26日修订版本)/第7讲.多元回归分析/代码和例题数据/课堂中讲解的奶粉数据.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
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 

5、异方差

1.如果扰动项存在异方差:
(1)OLS估计出来的回归系数是无偏、一致的。
(2)假设检验无法使用(构造的统计量失效了)。
(3)OLS估计量不再是最优线性无偏估计量(BLUE)。
在这里插入图片描述
2.怎么解决异方差:
(1)使用OLS + 稳健的标准误
(2)广义最小二乘估计法GLS
原理:方差较小的数据包含的信息较多,我们可以给予信息量大的数据更大的权 重(即方差较小的数据给予更大的权重)

// 画出残差图
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











// 补充语法 (大家不需要具体的去学Stata软件,掌握我课堂上教给大家的一些命令应对数学建模比赛就可以啦)
// 事实上大家学好Excel,学好后应对90%的数据预处理问题都能解决
// (1) 用已知变量生成新的变量 
generate lny = log(评价量)  
generate price_square = 团购价元 ^2
generate interaction_term = 团购价元*商品毛重kg

// (2) 修改变量名称,因为用中文命名变量名称有时候可能容易出现未知Bug
rename 团购价元 price

3.异方差假设检验(回归之前)
bp检验

// 异方差BP检验
estat hettest ,rhs iid

怀特检验(常用)

// 异方差怀特检验
estat imtest,white

4.解决异方差
广义最小二乘法GLS
原理:方差较大的数据包含的信息较少,我们可以给予信息量大的数据(即方差 较小的数据更大的权重)
缺点:我们不知道扰动项真实的协方差矩阵,因此我们只能用样本数据来估计, 这样得到的结果不稳健,存在偶然性。
Stock and Watson (2011)推荐,在大多数情况下应该使用“OLS + 稳健标准误”。

使用OLS + 稳健的标准误

如果发现存在异方差,一 种处理方法是,仍然进行OLS 回归,但使用稳健标 准误。这是最简单,也是目前通用的方法。只要样本容量较大,即使在异方差的 情况下,若使用稳健标准误,则所 有参数估计、假设检验均可照常进行。换言之, 只要使用了稳健标准误,就可以与异方差“和平共处”了。

// 使用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

6、多重共线性

1、检验多重共线性

计算自变量VIF的命令(在回归结束后使用)

// 计算VIF
estat  vif

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

(1)如果不关心具体的回归系数,而只关心整个方程预测被解释变量的能力,则 通常可以 不必理会多重共线性(假设你的整个方程是显著的)。这是因为,多 重共线性的主要后果是使得对单个变量的贡献估计不准,但所有变量的整体效 应仍可以较准确地估计。
(2)如果关心具体的回归系数,但多重共线性并不影响所关心变量的显著性,那 么也可以不必理会。即使在有方差膨胀的情况下,这些系数依然显著;如果没有 多重共线性,则只会更加显著。
(3) 如果多重共线性影响到所关心变量的显著性,则需要增大样本容量,剔除导 致严重共线性的变量(不要轻易删除哦,因为可能会有内生性的影响),或对 模型设定进行修改。(删除)

7、逐步回归

1、向前逐步回归

将自变量逐个引入模型,每引入一个自变量后都要进行检验,显著时才加入回归模型。 (缺点:随着以后其他自变量的引入,原来显著的自变量也可能又变为不显著了, 但是,并没有将其及时从回归方程中剔除掉。)

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)
// 向后逐步回归
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)

3、逐步回归法

向前逐步回归Forward selection: stepwise regress y x1 x2 … xk, pe(#1) pe(#1) specifies the significance level for addition to the model; terms with p<#1 are eligible for addition(显著才加入模型中).

向后逐步回归Backward elimination: stepwise regress y x1 x2 … xk, pr(#2) pr(#2) specifies the significance level for removal from the model; terms with p>= #2 are eligible for removal(不显著就剔除出模型).
如果你觉得筛选后的变量仍很多,你可以减小#1或者#2 如果你觉得筛选后的变量太少了,你可以增加#1或者#2
注:(1)x1 x2 … xk之间不能有完全多重共线性(和regress不同哦) (2)可以在后面再加参数b和r,即标准化回归系数或稳健标准误

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Matlab是一种功能强大的数学软件,可以用于多元线性回归分析数学建模多元线性回归是一种统计分析,用于建立多个自变量与一个因变量之间的关系模型。在数学建模中,多元线性回归可以用于预测和解释变量之间的关系,通过分析数据集中的多个变量来理解其之间的相互作用。 在Matlab中,可以使用多个内置的函数和工具箱来进行多元线性回归分析数学建模。首先,可以使用“polyfit”函数来拟合多元线性回归模型,并获得拟合的系数和截距。然后,可以使用“polyval”函数来根据模型和输入的自变量值来预测因变量的值。 此外,Matlab还提供了各种可视化工具,如散点图、线性回归图和残差图,以帮助分析和解释多元线性回归模型的结果。这些图形可以用于评估模型的拟合程度、检查残差是否满足模型假设,并识别离群值和异常观测。 在数学建模中,Matlab还可以用于确定最佳的自变量组合,以优化模型的拟合效果。使用工具箱中的特征选择函数,可以根据特定的准则选择最相关的自变量,从而减少模型中不必要的变量,提高模型的解释能力。 总而言之,Matlab是一种强大的工具,可用于多元线性回归分析数学建模。它提供了各种函数和工具箱,可以用于拟合模型、预测因变量、可视化结果以及优化模型的变量选择。使用Matlab进行多元线性回归分析数学建模,可以更好地理解变量之间的关系,并做出准确的预测和解释。 ### 回答2: Matlab作为一种强大的数学建模工具,可以通过多元线性回归分析数学建模问题进行求解。多元线性回归分析是一种常用的统计方,用于建立和分析多个自变量与一个因变量之间的线性关系模型。在数学建模中,我们通常需要根据给定的数据集合,通过多元线性回归分析求解最佳拟合模型。 在Matlab中,可以使用内置的regress函数来进行多元线性回归分析。首先,我们需要准备好所需的数据集合,并且将自变量和因变量分别存储在不同的向量中。然后,使用regress函数进行回归分析,输入自变量矩阵和因变量向量,即可得到回归系数以及其他统计结果。 通过多元线性回归分析,我们可以了解自变量数量与因变量之间的关系,进而可以预测和优化因变量的取值。此外,通过对回归系数的分析,我们还可以了解各自变量对因变量的重要性以及它们之间的相互关系。 总之,Matlab提供了强大的多元线性回归分析工具,可以帮助我们在数学建模中对问题进行求解和分析。它可以通过对数据的拟合来研究和预测因变量,从而为解决实际问题提供了有效的数学模型建立方。 ### 回答3: Matlab是一种功能强大的数值计算和数据分析软件,可以广泛应用于多元线性回归分析数学建模多元线性回归分析是一种统计方,用于探究多个自变量对一个因变量的影响。 在Matlab中,我们可以使用regress函数进行多元线性回归分析。该函数可以根据给定的自变量和因变量数据集,计算出回归模型的系数和相关统计量。 首先,我们需要将自变量和因变量的数据导入到Matlab中,可以使用矩阵或向量的形式存储数据。然后,通过调用regress函数,指定自变量和因变量的位置,即可进行回归分析。函数的输出结果包括回归系数、残差、决定系数等。 使用Matlab进行数学建模时,可以利用多元线性回归分析来构建模型。通过收集和整理相关数据,建立自变量和因变量之间的数学关系,在回归分析中确定最佳拟合的回归方程。这个建立的模型可以用来预测未知的因变量值,或者进行参数估计和假设检验等。 在数学建模中,Matlab提供了丰富的工具箱和函数,可以用于数据可视化、模型拟合、参数估计、误差分析等。例如,通过绘制回归模型的拟合曲线和残差图,可以对模型的准确性进行评估。此外,还可以使用交叉验证等方来评估模型的预测能力。 总而言之,Matlab可以用于实现多元线性回归分析数学建模。其强大的功能和灵活的编程环境使其成为进行数值计算和数据分析的理想工具,在科学研究和实际应用中得到了广泛的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值