在上一章节的复习笔记中,我们介绍了时间序列比较常见的AR模型和随机游走序列。在对时间序列进行回归时,我们和横截面数据一样做了很多假设,但是上一章内容没有回答如何解决误差项之间的序列相关性 (serial correlation) 以及误差的异方差性 (heteroskedasticity)。如果误差存在序列相关性以及异方差性,我们通过线性回归结果做出的推断就很难有效,我们常用的t statistic等也就失去了作用。
这一章的笔记主要就是关于如何检测误差项是否存在序列相关性、异方差性以及如何消除。
一、检测序列相关性
关于误差项的序列相关性的检测,书上做了一个非常简单的前提假设,即我们假设误差的序列相关性遵循AR(1)模型。严格来说,误差项之间的关系可能是任意一种形式,只不过假设为AR(1)模型可以使我们的工作变得十分简单。
根据上一章的内容可知,如果假设误差项遵循AR(1)模型以及假设自变量是严格外生变量(这里的严格外生变量是指自变量与所有时期的误差都不存在相关性),我们只需检验其误差项AR(1)回归的自变量系数是否显著不等于零即可。首先我们对相应的模型进行回归,获得残差,然后再对残差进行回归,根据t test检验其显著性。我们以书中的eg 12.1: Testing for AR(1) Serial Correlation in the Phillips Curve为例,所使用的数据为phillips。回归公式为静态菲利普斯曲线,研究1948年到1996年之间失业率与通胀率之间的关系,我们想要检验误差项是否存在序列相关性。
### 导入数据处理包library(tidyverse)### 导入数据library(wooldridge)### 导入相关检验命令符包library(lmtest)library(car)### 导入时间序列回归包library(dynlm)### 导入数据输出包library(stargazer)### 将数据设为时间序列### 这里我标注了起始时间为1948年### 方便后续回归时设定回归的时间区间### 1948到1996年共有49个变量### 这里课本貌似标错了 写的是48个变量### 如果不设置起始时间 默认采用1 则后面设置回归时间区间的end应为49phillips_ts
根据结果可知回归系数的t statistic约为4.934,p-value显著小于零,由此在5%的显著性水平下,我们可以拒绝零假设,拒绝零假设也就意味着我们认为存在序列相关性。
另外一个检验AR(1)序列相关性的方法是使用Durbin-Watson Test得到Durbin-Watson statistic,该值与AR(1)系数存在如下关系:
DW test的零假设同样是认为不存在序列相关性,即系数等于0。使用DW statistic时,我们一般会根据显著性水平设置上下限,当数值超过上限时,我们无法拒绝零假设,当数值低于下限时,我们拒绝零假设,当数值位于上下限之间时,我们无法得出相关结论。lmtest包里面的命令符dwtest( )可以执行相关检验,我们依旧以刚才的菲利普斯曲线为例,我们