Stata 与模型的设定

介绍模型设定的相关内容,包括虚拟变量的使用、经济结构变动的检验、遗漏变量的检验、自变量数量的选择、极端数据的诊断与处理等方面的内容。

1.虚拟变量处理

对于定性数据, 通常并不能将其直接纳入模型中进行回归分析,因为这样的分析并不符合经济学理论, 所以这时需要引入虚拟变量进行处理。一般情况下,如果分类变量总共有N类,为了避免多重共线性的出现, 通常只引入N-1个虚拟变量。

image-20191117211642003.png

image-20191117211705269.png
  1. 为了便于比较,首先生成整个时期中不含虚拟变量的消费函数方程,所使用到的命令为:

regress financevalue gdp

image-20191117211824715.png

[图片上传中...(image-20191117211705269.png-c763b3-1574492559433-0)]

  1. 如果认为在2003 年,银行业改革导致了金融业经营的变动,这时需要引入虚拟变量将 模型分成两段进行回归,步骤如下:

    • 生成虚拟变量

      generate dummy=0
      replace dummy=1 if year>=2003
      
    • 生成虚拟变量dummy 和解释变量gdp 的互动项,使用命令:

      generate dummy_gdp = dummy*gdp

    • 将虚拟变量纳入回归方程

      reg financevalue gdp dummy dummy_gdp

image-20191117212951989.png

2.经济结构变动的Chow检验

在时间序列模型之中,需要十分注重模型系数的稳定性, Chow 检验提供了一个较为严 谨的检验经济结构变动的方法。

image-20191117233210459-1574065994089.png

1.手动进行Chow检验

检验的方法是分别进行三次回归。检验中国金融业增加值函数是否在2003 年以后发生了结构变化的操作过程如下:

  1. 首先,生成整个时期的回归方程, 计算出这时的残差平方和,输入命令:

    regress financevalue gdp  //生成关于金融业增加值的函数financevalue =α+ßgdp
    predict e , residual      //生成残差序列
    gen a=e^2
    egen b=sum (a)            //生成变量b ,使其值为序列a的和,即残差平方和
    1. 其次, 生成2003 年以前序列的回归方程,计算出前半段时期的残差平方和,输入命令:
     regress financevalue gdp if year<2003
     predict e1 if year<2003 , residual
     gen al=e1^2
     egen bl=sum(a1)
    
  2. 生成2003 年以后序列的回归方程,然后计算出这后半段时期的残差平方和,输入命令:

     regress financevalue gdp if year<2003
     predict e1 if year<2003 , residual
     gen al=e1^2
     egen bl=sum(a1)
  1. 最后, 计算F 统计量的值, 并与临界值进行比较,输入命令.

    gen f=((b-b1-b2)/(2))/((bl+b2)/(29-2*2))
    sum f

    image-20191117234051010-1574065999494.png

2.自动进行Chow检验

  1. 下载chow检验命令,一般选择第一个链接安装

    findit chow

image-20191118094844272.png
  1. 利用financevalue.dta 数据,检验2002 年是否为结构变化点,可使用命令:

    chow financevalue gdp, chow(year>2002)

    在这个命令语句中, cbow fmancevalue gdp 说明要对变量financevalue 和gdp 进行检验, cbow(year>2002)说明结构变动可能出现在2003 年,命令执行的结果同手动法一致。

3. 遗漏变量的检验

遗漏变量属于解释变量选取错误的一种,因为某些数据确实难以获得,但是有时这种遗 漏将会大大降低模型的精确度。假设正确模型如下所示:

image-20191118100125494-1574066003667.png

如果在模型设定中遗漏了一个与被解释变量相关的变量X2 ,即所设定的模型为:

image-20191118100148357-1574066005381.png

遗漏变量有3种情况:

image-20191118100356924-1574066007318.png

Stata 提供了两种检验是否存在遗漏变量的方法: 一种是Link检验,另一种是Ramsey 检验。Link 检验的基本思想是: 如果模型的设定是正确的,那么y的拟合值的平方项将不应具有解释能力。Ramsey 检验的基本思想是:如果模型设定无误,那么拟合值和解释变量的高阶项都不应再有解释能力。

实验

wage=工资(单位:元/小时) , educ=受教育年限(单位: 年) , exper=工作经验年限(单位: 年) , tenure=任 职年限〈单位: 年) , lwage=工资的对数值。

image-20191118100642517-1574066009917.png

分别利用Link 方法和Ramsey 方法检验模型lwage =ß1educ +ß2exper +ß3tenure是否遗漏了重要的解释变量。

1.使用Link方法检验遗漏变量

    use c : \data\chinawage.dta , clear
    reg l wage educ exper tenure
    linktest
image-20191118105608317-1574066012374.png
image-20191118105724828.png
gen educ2=educ^2
gen exper2=exper^2
reg lwage educ exper tenure educ2 exper2
linktest
image-20191118105749282-1574066029464.png

从图7. 5 中可以看出,经过添加解释变量后的模型拟合优度有了一定程度的提高,而且通过Link 检验可以看出此时hatsq项的p 值为0. 758 ,无法拒绝hatsq系数为零的假设,说明被解释变量lwage 的拟合值的平方项不再具有解释能力,所以可以得出结论: 新模型基本没有遗漏重要的解释变量。

2.使用Ramsey方法检验遗漏变量

    gen educ2=educ^2
    gen exper2=exper^2
    reg lwage educ exper tenure educ2 exper2
    linktest
image-20191118110042394-1574066036576.png

在图7.6 中,第1 个图表仍然是回归结果,第2 个图表是Ramsey 检验的结果,不难发现Ramsey 检验的原假设是模型不存在遗漏变量,检验的p 值为0 . 5762 ,没有拒绝原假设,即认为原模型不存在遗漏变量。

为了进一步验证添加变量是否会改变Ramsey 检验的结果,同样采取Link 检验中的方法, 生成受教育年限educ 和工作经验年限exper 的平方项,重新进行回归并进行检验,命令如下:

  gen educ2=educ^2
  gen exper2=exper^2
  reg lwage educ exper tenure educ2 exper2
  estat ovtest
image-20191118110322606-1574066043793.png

调整之后的检验结果,可以发现此时检验的p 值为0 . 6326 ,无法拒绝原假设,即认为模型不再存在遗漏变量。

4. 自变量数量的选择

人们总是希望建立具有经济意义而又简洁的模型,在现实的经济研究过程中,通常使用信息准则来确定解释变量的个数,较为常用的信息准则有两个。

image-20191118121750463-1574066046150.png

实验

中国工资的横截面数据,变量主要包括: wage=工资(单位:元/小时) , educ=受教育年限(单位:年) , exper=工作经验年限(单位:年) , tenure=任职年限(单位:年) , lwage=工资的对数值。

image-20191118121933047-1574066049554.png
    use c:\data\chinawage.dta, clear
    reg lwage educ exper tenure
    estat ic
image-20191118122113686-1574066051580.png

AIC 值为一37.77 , BIC 值为一24 .00 。

加入教育年限educ和工作经验年限exper的平方项,建立新模型lwage = ßo +ß1educ + ß2exper + ß3 tenure +ß4 educ2 + ß5 exper2 , 然后重新对其进行回归井计算, 命令如下:

gen educ2=educ^2
gen exper2=exper^2
reg lwage educ exper tenure educ2 exper2
estat ic
image-20191118122710607-1574066054046.png

AIC 值为-39.91,BIC 值为-19.25。第2 个模型的信息准则值更小,所以此模型优于第一个模型。

5. 极端数据的诊断与处理

在全体观测值中,会有一些样本和总体样本距离较远,这些样本在回归中可能会对斜率或者截距的估计产生较大的影响,从而使得估计值和真值的差距较大,所以在实际应用中,首先应通过绘制散点图的方式观测是否有极端数值的存在,如果有,应该去掉这些极端数值再进行回归分析。 ​ 如果解释变量过多或者是面板数据,绘图的方式并不直观,通常使用leverage 影响力方法来判断该数据是否是极端数据。若数据的leverage 影响力值高于平均值, 则对回归系数影响较大,这时可能会产生极端数据的影响。

实验

以price 为因变量, mpg(每加仑油所行驶的英里数) 、weight(汽车重量)和foreign(是否是进口车) 为自变量建立回归模型,找出样本数据中存在的极端数据。

image-20191118124133128-1574066057836.png

建立回归模型price =ß0+ß1mpg+ ß2weight + ß3foreign ,为分析汽车数据中是否存在极端值,在Stata 中输入如下命令:

regress price mpg weight foreign
predict lev,leverage
gsort -lev
sum lev
list in 1/3    //计算lev值,并将由大到小前3 位的数据显示出来
image-20191118124537137-1574066060415.png

在结果中可以看到lev 的均值为0. 0541 ,而最大的lev 值为0.3001,所以该观测值有可能为极端数据,可以采取进一步的方法进行处理,从而保证模型的精确性。

处理的方法一般有两种: 一种方法为直接去掉极端值:另一种方法则选择其他更为恰当的模型进行回归分析。

你可能感兴趣的:(Stata 与模型的设定)