Stata最小二乘线性回归分析入门教程
Stata最小二乘线性回归分析入门教程
Stata是一种功能强大的统计分析软件,提供了丰富的数据分析功能,其中包括最小二乘线性回归分析(Least Squares Linear Regression Analysis)。最小二乘线性回归分析是一种常用的统计方法,用于研究自变量与因变量之间的线性关系。在Stata中,可以使用命令“regress”来进行最小二乘线性回归分析。该方法通过拟合一条最佳拟合直线,来描述自变量对因变量的影响程度和方向。通过回归系数的值,可以判断自变量对因变量的影响程度和方向,同时进行统计显著性检验。
最小二乘线性回归分析的功能与意义
最小二乘线性回归分析是基础、常用的回归分析方法,基于自变量和因变量之间存在线性关系,线性回归的数学模型为:
矩阵形式为:
因变量的变化可以由α+Xβ 组成的线性部分和随机误差项E;部分这两个部分来解释。对于线性模型, 一般采用最小二乘估计法来估计相关的参数,基本原理是使残差平方和最小,即
通过调整参数向量à,使得观测值y与模型的预测值之间的差异最小化。这个差异被平方和的形式表示,并乘以一个正则化项Z,以平衡模型的复杂度和拟合数据的准确性。通过最小化这个目标函数,可以得到最优的参数向量à,从而得到最佳的模型拟合结果,残差就是因变量的实际值与拟合值之间的差值。
最小二乘线性回归分析的Stata操作
1. 命令的语法格式z
最小二乘线性回归分析的命令是regress, 它的语法格式为:z
regress depvar [indepvars][if][in][weight][,options]
其中, depvar代表被解释变量(或称因变量), indepvar代表解释变量(或称自变量), depvar只有一个,indepvar可以为一个或者多个,如果只有一个indepvar, 也被称为一元最小二乘回归分析,如果z多个indepvar, 则被称为多重最小二乘回归分析, [if]为条件表达式,
[in] 用于设置样本范围, [weight]用于设置权重。[,options]为可选项,如下表所示。
2. 获得回归模型回归系数的相关性矩阵
在执行完回归分析之后,我们可能需要获得回归模型回归系数的相关性矩阵,相应的命令为vce。 具体操作为,在执行完回归分析之后,
直接在命令窗口中输入:
vce
即可得到回归模型回归系数的相关性矩阵。
3. 对模型系数进行假设检验
在很多情况下,在执行完回归分析之后,我们有必要对模型进行假设检验。事实上,在回归分析结果中已经有了针对模型整体的F检验,以及针对各自变量和常数项回归系数的T检验。在此基础上,我们还可以使用test命令对最近拟合模型参数的简单线性假设和复合线性假设进行Wald检验。
test命令包括5种形式,分别说明如下:
(1)test coeflist
该命令的作用是检验所设定的系数都为0。
(2)test exp=exp[=..]
该命令的作用是检验所设定的系数表达式都为0。
(3)test [eqno][: coeflist]
该命令的作用是检验所设定的系数都为0。
(4 )test [eqno = eqno [= ...]] [: coeflist]
该命令的作用是检验方程eqno 中的变量列表varlist 的系数都为0。
(5 )testparm varlist [,testparm options]
该命令的作用是检验方程eqno 中的变量列表varlist系数相同。
此外,如果检验为非线性检验,则需要用到testnl命令,该命令的语法格式为:
testnl exp=exp[=exp...] [,options]
其中, exp=exp[=exp...]表示系数之间的非线性关系式。
4 .使用回归模型进行预测
在很多时候,我们建立回归模型不仅是为了基于历史数据解释已发生的现象,更重要的是能够依据模型来预测未来。使用回归模型进行预测的命令及其语法格式如下:
(1)在创建单个方程模型之后的预测
predict [type] newvar [if] [in] [,single options]
其中newvar代表将要进行预测的变量, [if]为条件表达式, [in]用于设置样本范围, [weight]用于设置权重, [,single options]为可选项,如下表所示。
(2) 在创建多个方程模型之后的预测
predict [type] newvar [if][in][,multiple options]
相关字段含义及可选项与单个方程模型基本一致。
5. 绘制回归后估计诊断图
除了我们在前面章节中讲到的Stata制图工具外,在回归分析中还可以绘制回归后估计诊断图,命令如下表所示。
6. 在回归方程中自动剔除不显著变量(逐步回归法)
stepwise命令的语法格式为:
stepwise [,options ]:regress depvar [indepvars]
或
sw regress depvar [indepvars],[,options]
其中, sw regress depvar [indepvars]为进行回归分析的命令,
[,options]为可选项,如下表所示。
在使用stepwise命令时,搜寻的方法和顺序也比较重要, Stata中提供了6种常用的搜寻方法,用户可以根据自己的实际研究需要选择最为恰当合理的方法,如下表所示。
最小二乘线性回归分析示例
我们使用“数据6”数据文件为例。“数据6”中记录的是XX生产制造企业1997-2021年营业利润水平 (profit)、 固定资产投资(invest)、 平均职工人数 (labor)、 研究开发支出 (rd) 等数据,如下图所示。
下面我们以营业利润水平作为因变量,以固定资产投资、平均职工人数、研究开发支出作为自变量,开展线性回归分析。
1. 线性回归分析
打开上述数据文件之后,在主界面的命令窗口中依次输入命令:
regress profit invest labor rd
本命令的含义是以营业利润水平作为因变量,以固定资产投资、平均职工人数、研究开发支出作为自变量,开展线性回归分析 (regress命令后面紧邻的第一个变量是因变量,其他所有的变量都是自变量)。分析结果如下图所示。
从上述分析结果中可以得到很多信息,可以看出共有25个样本参与了分析( Number of obs =25), 模型的F值(3,21) =1650.89, P值 (Prob>F)=0.0000, 说明模型整体上是非常显著的。模型的可决系数(R-squared) 为0.9958,模型修正的可决系数 (Adj R-squared)=0.9952,说明模型的解释能力是非常高的。
模型的回归方程是:
profit=2.859037*invest+2.6269*labor+3. 127479*rd-315.6367
变量invest的系数标准误是0.9396771, t值为3.04, P值为0.006,系 数是非常显著的,95%的置信区间为[0.904872,4.813203]。变量labor的系数标准误是0.413203, t值为6.36, P值为0.000,系数是非常显著的, 95%的置信区间为[1.767598,3.486203]。变量rd的系数标准误是
1.151358,t 值为2.72, P值为0.013,系数是非常显著的,95%的置信区
间为[0.7330987,5.52186]。常数项的系数标准误是474.8465, t值为-0.66, P值为0.513,系数也是非常显著的,95%的置信区间为[-1303.134,671.8607]。从上面的分析可以看出固定资产投资、平均职工人数、研究开发支出3个自变量对于因变量的营业利润水平都是正向显著影响,自变量每 一单位的增长都会显著引起因变量的增长。
2. 回归模型回归系数的相关性矩阵
在命令窗口中输入:
vce
即可得到回归模型回归系数的相关性矩阵,如下图所示。在图中展示了固定资产投资、平均职工人数、研究开发支出3个自变量以及常数项的回归系数的相关性矩阵。
3. 对变量系数进行假设检验
本例中,如果要检验固定资产投资、平均职工人数、研究开发支出3个自变量的回归系数是否同时显著不为0,则需要在命令窗口中输入:
test invest labor rd
结果如下图所示。
实验原假设为invest、labor、rd三个自变量的回归系数同时显著为 0,Prob>F=0.0000, 拒绝了原假设。
4. 对回归模型的预测
本例中,我们对因变量的拟合值、回归模型的残差进行预测,在命令窗口中依次输入:
predict yhat,xb
本例的含义是预测回归模型因变量的拟合值,生成的因变量为yhat。
predict e, residual
本例的含义是预测回归模型的残差,生成的残差序列为e。
结果如下图所示。
yhat为预测拟合值,是根据自变量的值和得到的回归方程计算出来的,主要用于预测未来。在上图中,可以看到yhat的值与profit的值是比较相近的,所以拟合的回归模型还是不错的。 e为残差序列,可以用来检验变量是否存在异方差,也可以用来检验变量间是否存在协整关系等。
5. 绘制回归后估计诊断图
本例中,我们生成残差e和因变量拟合值的散点图,并标识出纵轴值为零的直线,在命令窗口中输入:
rvfplot, yline(0)
绘制结果如下图所示。
上图显示出了模型的预测值和实际值的分布模式, 一开始残差为负值,说明预测值小于实际值;接下来残差变成正值,说明预测值大于实际值;最后残差又变成负值、正值,说明预测值再次小于、大于实际值。
6. 在回归方程中不包含常数项
在前面的分析中,我们发现回归模型中的常数项并不显著,那么回归分析操作命令可以相应地修改为:
regress profit invest labor rd,nocon
分析结果如下图所示。模型的F值(3, 22)为4657.93, P值 (Prob > F) 为0.0000,说明模型整体上是非常显著的。模型的可决系数 (R- squared) 为0.9984,模型修正的可决系数 (Adj R-squared) 为0.9982, 说明模型的解释能力是非常高的。
模型的回归方程是:
profit=2.958172*invest+2.389013*labor+3. 170762*rd
变量invest的系数标准误是0.9159219, t值为3.23, P值为0.004,系数是非常显著的,95%的置信区间为[1.058666,4.857677]。变量labor的系数标准误是0.2039041, t值为11.72, P值为0.000,系数是非常显著的,95%的置信区间为[1.966142,2.811885]。变量rd的系数标准误是
1.13484,t值为2.79, P值为0.011,系数是非常显著的,95%的置信区间为[0.8172476,5.524
275]。
7. 在回归方程中自动剔除不显著变量
当回归方程中包含很多不显著的变量时,整个回归方程就会变得冗余,或者说包含很多无效的信息。我们可以通过观察分析结果采取逐步手动剔除不显著变量的方式得到最终的回归模型,但是如果变量很多且存在很多不显著的变量,这个过程就显得非常复杂。那么有没有一种自动剔除不显著变量,直接得到最终模型方程的Stata操作方法呢?答案是肯定的。Stata16.0提供了sw regress命令来满足这一需要。这一命令的操作原理是不断迭代,最终使得所有变量系数的显著性达到设定的显著性水平。在首次迭代时,所有的变量都进入模型参与分析,然后每一步迭代都去掉P值最高或者说显著性最弱的变量。最终使得所有保留下来的变量的概率值都处于保留概率之下。
例如,设定显著性水平为0.05,那么操作命令应该是:
sw reg profit invest labor rd,pr(0.05)
分析结果如下图所示,因为sw reg命令作用于自变量而无法作用于常数项,可以发现除常数项外,保留在模型中的自变量,基于0.05的显著性水平都是非常显著的。
8. 限定参与回归的样本范围
此外,我们还可以仅对2010年以来的样本观测值进行分析,如果只对2010年以后的样本进行回归分析,那么回归分析操作命令可以相应地修改为:
regress profit invest labor rd if year>=2010
分析结果如下图所示。
9. 预测未来的因变量值
我们要预测未来5年的营业利润水平,经测算得到了未来5年的固定资产投资、平均职工人数、研究开发支出分别如下表所示。
我们把样本数据输入数据文件中,然后进行预测,命令如下:
predict yyhat, xb
分析结果如下图所示。
可以看到在上图中出现了预测的因变量数据,比如预测的2022年的营业利润水平将会是38535.94。