浅尝辄止_数学建模(笔记_线性回归)

线性回归分析


一、一元线性回归

1.一元线性回归模型

  • 假设 x x 是自变量, y y 是因变量,且满足如下线性关系: y i = β 0 + β 1 x i + μ i y_i=β_0+β_1x_i+μ_i ,其中 β 0 β 1 β_0和β_1 为回归系数, μ i μ_i 为无法观测的且满足一定条件的扰动项。
  • 在这里插入图片描述

二、多元线性回归

在这里插入图片描述


三、线性

 线性假定并不要求初始模型呈现如 y i = β 0 + β 1 x i + μ i y_i=β_0+β_1x_i+μ_i 一般严格的线性关系,自变量和因变量可通过变量变换而转化成线性模型。
使用线性回归模型进行建模前,需要对数据进行预处理。用Excel、Matlab、Stata等软件都可以


四、回归系数的解释

1.基础知识

由于笔者编辑能力的欠缺,暂时将课件截图于此。在这里插入图片描述
由此衍生出一些新的问题:

问:
在这里插入图片描述
答: 可以解释为 l n x i lnx_i 每增加一个单位,对 y i y_i 造成的影响。

问: 什么时候取对数?什么时候不取对数?
答:

  1. 与市场价值有关的,例如价格、销售量、工资等都可以取对数;
  2. 以年度量的变量,例如教育年限、工作经历等通常不取对数;
  3. 比例变量,例如失业率、参与率等(两者均可)
  4. 变量取值必须是非负数,包含0,则可以取对数ln(x+1);

问: 取对数有什么好处?
答:

  1. 减弱数据的异方差性
  2. 如果变量本身不符合正态分布,去了对数后可能渐进服从正态分布
  3. 模型形式的需要,让模型具有经济学意义

2.四类模型回归系数的解释

  1. 一元线性回归: y = a + b x + u y=a+bx+u x x 每增加1个单位, y y 平均变化b个单位;
  2. 双对数模型: l n y = a + b l n x + u lny=a+blnx+u x x 每增加1%, y y 平均变化b%;
  3. 半对数模型: y = a + b l n x y=a+blnx x x 每增加1%, y y 平均变化b/100个单位;
  4. 半对数模型: l n y = a + b x lny=a+bx x x 每增加1个单位, y y 平均变化(100b)%;

假如有多个变量,需要在论文中多填一句话“在控制其他自变量不变的情况下”


五、标准化回归系数

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

1.步骤

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


2.结论

 标准化系数的绝对值越大,说明对因变量的影响越大(只关注显著的回归系数)


3.Stata标准化回归命令

regress y x1 x2 ... xk,beta

新问题:
问: 为什么常数项没有标准化回归系数?
答: 常数的均值是其本身,经过标准化后变成了0
问: 为什么与之前的回归结果完全相同,除了多了一列标准回归系数?
答: 对数据进行标准化处理不会影响回归系数的标准误,也不会影响显著性


六、特殊的自变量

1.虚拟变量

问: 如果自变量中有定性变量,例如性别、地域等,在回归中要如何处理呢?
答: (举例演示)
 例如:研究性别对于工资的影响。
可以构建模型 y i = β 0 + δ 0 F e m a l e i + β 1 x 1 + β 2 x 2 + . . . + β k x k + μ i y_i=β_0+δ_0Female_i+β_1x_1+β_2x_2+...+β_kx_k+μ_i
F e m a l e i = 1 Female_i=1 表示第 i i 个样本为女性; F e m a l e i = 0 Female_i=0 表示第 i i 个样本为男性;

  • 核心解释变量: F e m a l e Female
  • 控制变量: x m ( m = 1 , 2 , 3... k ) x_m(m=1,2,3...k)

此时 δ 0 δ_0 的解释:

在这里插入图片描述


问: 多分类的虚拟变量如何设置?
答: 为了避免完全多重共线性的影响,引入虚拟变量的个数一般是分类数减1


他山之石:
回归模型中的哑变量


2.含有交互项的自变量

因变量对一个解释变量的偏效应、弹性或半弹性,有时很自然的取决于另一个解释变量的大小。
例如:假设构建的模型为 y i = β 0 + β 1 x 1 + β 2 x 2 + β 3 x 2 x 3 + μ i y_i=β_0+β_1x_1+β_2x_2+β_3x_2x_3+μ_i
此时, x 2 x_2 y y 的偏效应(保持其他所有变量不变)为 β 2 + β 3 x 3 β_2+β_3x_3 (求偏导所得结果)。显而易见, x 2 x_2 x 3 x_3 之间存在着交互效应。


七、干扰项的限制

1.内生性

1.1.基本介绍

 假设 x 1 , x 2 . . . x k x_1,x_2...x_k 是自变量, y y 是因变量,且满足如下线性关系: y = β 0 + β 1 x 1 + β 2 x 2 + . . . + β k x k + μ y=β_0+β_1x_1+β_2x_2+...+β_kx_k+μ ,其中 β 0 , β 1 . . . β k β_0,β_1...β_k 为回归系数, μ μ 为无法观测的且满足一定条件的扰动项。
  如果满足误差项 μ μ 和所有自变量 x x 均不相关,则称该回归模型具有外生性;如果相关,则存在内生性,内生性会导致回归系数估计的不准确:不具有无偏和一致性。


1.2.内生性的蒙特卡罗模拟:内生性造就的巨大误差

  • 举例:
      假设 y = 0.5 + 2 x 1 + 5 x 2 + u , u   N ( 0 , 1 ) y=0.5+2x_1+5x_2+u,u~N(0,1) ,并且 x 1 x_1 在[-10,10]上均匀分布。假如使用一元线性回归模型: y = k x 1 + b + u y=kx_1+b+u' 进行估计,试探就估计出 k k 的大小与ρ_(x1,u’)的关系。
     
  • 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这个随机数
	u = normrnd(0,1,n,1);%扰动项服从正态分布
	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,'*')
xlabe("x_1和u'的相关系数")
ylabe("k的估计值")
  • 观察图像
     发现当相关系数为零时, k k 的估计值就是2;相关系数的绝对值越大,即越偏离0, k k 的估计值误差越大。

1.3.弱化内生性

问: 内生性要求所有解释变量均与扰动项不相关,这个假定通常太强,那么如何弱化此条件?
 
答: 将解释变量区分为核心解释变量和控制变量两类。

  • 核心解释变量:实验中所感兴趣或着重突出的变量,因此希望得到对其系数的一致估计(当样本容量无限增大时,收敛于待估计参数的真实值)
  • 控制变量:实验中所不感兴趣的变量,之所以将这些变量放入回归方程,主要是为了“控制住”那些对被解释变量有影响的遗漏因素。

在实际应用中,研究人员只需要保证核心解释变量与u不相关即可。


2.扰动项需要满足的条件

在这里插入图片描述
对于“同方差”和“无自相关”两个条件:
 1.横截面数据容易出现异方差的问题;
 2.时间序列数据容易出现自相关的问题;


3.异方差(扰动项)

3.1.检验异方差(Stata)

3.1.1.图形法:粗略检验

回归结束后运行命令:

rvfplot %绘制残差与拟合值的散点图
graph export a1.png , replace %储存照片在a1文件中,且替换命名一样的文件
rvpplot x %绘制残差与自变量x的散点图
graph export a2.png , replace %储存照片在a2文件中,且替换命名一样的文件

注意:两个命令的拼写不一样


3.1.2.假设检验法:精准检验
3.1.2.1.BP检验(Stata)

在回归结束后使用代码:

estat hettest ,rhs iid

根据p值判断,其方法原假设 H 0 H_0 为回归方程不存在异方差。在置信水平为95%的条件下,倘若p值小于0.05,则拒绝原假设,即扰动项存在异方差。

BP检验可以看出怀特检验的一种特例。


3.1.2.2.怀特检验(Stata)

在回归结束后使用代码:

estat imtest,white

根据p值判断,其方法原假设H0H_0H0​为回归方程不存在异方差。在置信水平为95%的条件下,倘若p值小于0.05,则拒绝原假设,即扰动项存在异方差

怀特检验可以检验任何形式的异方差。


4.异方差的影响

  • 假设检验无法使用(构造的统计量失效了);
  • OLS估计量不再是最优线性无偏估计量(BLUE);

OLS估计出来的回归系数依旧是是无偏的、一致的,不受异方差影响


5.解决异方差的方法

5.1.使用OLS+稳健的标准误(※);

Stata代码:

regress y x1 x2 ... xk,robust

原理:异方差不影响回归系数,而在于标准误,修正标准误就可以解决异方差的问题


5.2.广义最小二乘法GLS;

原理:方差较小的数据包含的信息较多,此时可以给予信息量大的数据更大的权重(即方差较小的数据获得更大的权重)。


八、回归的相关软件操作

  • 导入数据:文件 — 导入 — Excel表格(注意:勾选“将第一行作为变量名”)
  • 导入数据之后的代码记得保存下来,以方便下一次操作:新Do-file编辑器 — 保存

1.数据的描述性统计

1.1.SPSS操作

  • 导入数据:文件 — 导入 — Excel表格(注意:勾选“将第一行作为变量名”)
  • 导入数据之后的代码记得保存下来,以方便下一次操作:新Do-file编辑器 — 保存

1.1.1.定量数据
summarize 变量1 变量2 ...变量n 
%变量无需输入,鼠标双击即可
  • 操作后,得到描述性统计的表格,将表格放入Excel中美化,再置于论文中。

1.1.2定性数据
tabulate 变量名,gen(A)
%返回对应的这个变量的频率分布表,并生成对应的虚拟变量(以A开头)
%每次只能对一个定性变量进行描述性统计
  • 倘若描述性统计代码中有gen(A),则会生成对应的虚拟变量,点击“数据编辑器(浏览)”,即可查看。

1.1.3.数据透视图/数据透视表
  • 将数据制成透视表,再放入论文中;步骤:ctrl+A选中表格 — 插入 — 数据透视表 — 添加字段 — 设置字段,可改为百分比
  • 将数据制成透视图,再放入论文中;步骤:ctrl+A选中表格 — 插入 — 数据透视表 — 添加字段 — 分析 — 数据透视图 — 点击+,可以修改透视图

1.2.Excel操作

数据 — 数据分析(需要自行设置,百度相关步骤) — 描述统计 — 输入区域 — 勾选“标志行位于第一行” — 勾选“汇总统计” — 勾选“第k大值”和“第k小值” — 确定


2.Stata回归的语句

regress y x1 x2 ... xk
%默认使用的OLS:普通最小二乘估计法
  • 输出结果中,Model代表SSR,Residual代表SSE,Total代表SST,df代表自由度,MS代表SS/df;Model的自由度为k,Residual的自由度为n-k-1,Total的自由度为n-1;
  • 输出结果中,Prob>F的值需要被关注,其代表的是联合显著性检验的p值,只有当p值小于0.05(在置信水平为95%的条件下),构建的模型才有意义;
  • 输出结果中,有R-squared和Adj R-square两项,其代表拟合优度和调整后的拟合优度,当自变量越来越多,拟合优度会变大,此时使用调整后的拟合优度更为有效;
    在这里插入图片描述
  • 输出结果中,_cons代表 β 0 β_0 ,Coef.下的数值代表各个变量对应的回归系数,Std.Err.代表标准误差,t代表统计量(=Coef./Std.Err.),P>|t|代表在95%置信水平小的p值,需要其小于0.05(置信水平可以随机应变,关注显著的变量)。
  • 在将表格导入论文前,可以先行优化。
ssc install reg2docx, all replace %安装第三方功能包/插件,安装一次即可
est store m1 %将回归结果储存为一个名为m1的模型
reg2docx m1 using m1.docx, replace 
%调用插件,并将结果储存在m1.docx文档中(注意调整字体,调整变量名,并将“p<0.01 ....p<0.1”置于表格下)

九、多重共线性

1.多重共线性的特征

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

2.检验多重共线性(Stata)

在这里插入图片描述
在回归结束后使用代码:

estat vif

实际运用中,解决方法在于优先选择增加样本容量,实在不行就删除具有多重共线性的变量


十、挑选变量的方法:逐步回归分析

1.向前逐步回归

  • 步骤:将自变量逐个引入模型,每引入一个自变量后都要进行检验,显著时才加入回归模型。
  • 缺点:随着以后其他自变量的引入,原来显著的自变量也可能变为不显著了,但是,这个方法并没有将其及时从回归方程中剔除掉。
  • Stata中的代码:
stepwise regress y x1 x2 ... xk, pe(#1)
%#1是显著性水平,只有当p值<#1时,这个自变量才会被纳入回归方程中
%如果筛选后的变量仍然很多,可以选择减小#1
%如果筛选后的变量过少,可以选择增大#1
%x1 x2 ... xk之间不能有完全多重共线性(与regress不同),将每个分类变量中任意去除一个元素即可解决此问题
%可以在x1 x2 ... xk 后面加上参数b和r,即标准化回归系数或稳健标准误

2.向后逐步回归

  • 步骤:先将所有变量均放入模型,之后尝试将其中一个自变量从模型中剔除,看整个模型解释因变量的变异是否有显著变化,之后将最没有解释力的那个自变量剔除;此过程不断迭代,直到没有自变量符合剔除的条件。
  • 缺点:一开始把所有变量都引入回归方程,这样计算量比较大。若对一些不重要的变量,一开始就不引入,这样就可以减少计算量了。
  • Stata中的代码:
stepwise regress y x1 x2 ... xk, pr(#2)
%#2是显著性水平,当p值>=#2时,这个自变量会被剔除出回归方程
%如果筛选后的变量仍然很多,可以选择减小#2
%如果筛选后的变量过少,可以选择增大#2
%x1 x2 ... xk之间不能有完全多重共线性(与regress不同),将每个分类变量中任意去除一个元素即可解决此问题
%可以在x1 x2 ... xk后面加上参数b和r,即标准化回归系数或稳健标准误

猜你喜欢

转载自blog.csdn.net/ICISTRUE/article/details/108200095
今日推荐