在上一章节的复习笔记中,我们介绍了时间序列比较常见的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( )可以执行相关检验,我们依旧以刚才的菲利普斯曲线为例,我们在做完第一步时间序列回归后即可直接使用dwtest( )命令符检验残差是否存在序列相关性。

### Durbin-Watson testdwtest(reg_phil)

根据结果可知DW statistic约为0.8027,p-value接近于0,即我们可以拒绝零假设,拒绝零假设即意味着我们认为存在序列相关性。

以上的内容我们都是假设自变量是严格外生的,但是如果自变量没能满足严格外生的条件,即自变量与非同期的误差项存在相关性,那么我们就需要对我们的检测方法做出调整,我们需要将所有的自变量加入到误差项的AR(1)回归公式中。即使变量是严格外生变量,我们也可以使用这种方法做检测。我们以书中的eg 12.2: Testing for AR(1) Serial Correlation in the Minimum Wage Equation为例,所使用的数据为prminwge。该案例研究了波多黎各地区最低工资标准对就业率的影响,这里我们认为自变量不是严格外生,所以需要将自变量加入我们的检验公式当中。

### 将数据设置为时间序列prminwage_ts

根据结果我们可以发现AR(1)自变量的t statistic约为2.887,p-value约为0.007,由此我们可知在5%的显著性水平下,我们可以拒绝零假设,我们认为误差项存在序列相关性。

二、高阶序列相关性的检验

第一节的内容我们假设误差之间的序列相关性满足AR(1)模型,我们当然也可以假设误差之间存在更高阶的序列相关性。检验的过程和刚才一样,同样是先进行线性回归,然后将所得到的残差对所有自变量(前文说过把自变量加进来是考虑到自变量未必是严格外生)和AR(q)进行回归,使用F test检验AR(q)的系数是否同时等于0。我们也可以使用LM test进行检验,LM test一般称为Breusch-Godfrey Test。前面的章节我们在讲到横截面数据回归的F test和LM test时有出现过Breusch-Pagan Test,这个是第八章异方差与加权最小二乘法中讲到的检验异方差性的,两者千万不要搞混了。

在R语言中,我们可以直接使用lmtest包里面的bgtest( )命令符执行Breusch-Godfrey Test,参数order用来设定所需检测的序列相关性的阶数,其默认值为1,即为检验AR(1),我们也可以自行设置阶数,参数type可选择是计算F test(参数设置为”F”)还是LM test(参数设置为”Chisq”)。

我们首先使用命令符检验第一节我们举的AR(1)的例子:

### 菲利普斯曲线回归结果 进行检验bgtest(reg_phil)

### 最低工资与就业率回归结果 进行检验bgtest(reg_minwage)

结果和我们之前手动回归得出来的结论是一样的,即存在序列相关性。

下面我们以书上的eg 12.3: Testing for AR(3) Serial Correlation为例展示高阶序列相关性的检验,使用的数据为barium,我们首先手动计算,然后使用bgtest( )自动计算。

### 将数据设置为时间序列barium_ts

### 使用bgtest()自动计算### 设置阶数为3 计算F testbgtest(reg_barium, order = 3, type = "F")

### 设置阶数为3 默认计算LM即Breusch-Godfrey Testbgtest(reg_barium, order = 3)

根据结果可知我们在5%显著性水平下拒绝零假设,我们认为误差项存在AR(3)序列相关性。

三、消除序列相关性

如果我们在时间序列回归中检测到了误差项的序列相关性,我们就必须对回归公式进行调整以求消除序列相关性,否则原有的回归得到的推断会有很大偏差。消除序列相关性用的是类似于差分的方法quasi differencing,中文我不会翻译。具体就是,假定我们知道误差项遵循AR(1),那么我们通过回归估计出系数以后,让原有的时间序列回归乘以这个系数然后再进行差分。假如我们的时间序列为:

已知误差项满足:

我们让刚才的时间序列前一期乘以AR(1)系数:

然后进行差分:

我们此时得到一个新的不存在序列相关性的误差项et,这种差分获得系数估计值的方法和我们在第八章中讲到的加权最小二乘法一样,都属于GLS estimator。但是我们并不知道真正的AR(1)系数是多少,所以想要消除序列相关性,我们需要估计出AR(1)系数的值,根据估计值进行时间序列回归得到的结果我们称为Feasible GLS estimator。课本介绍了两种估计计算FGLS estimator的方法,分别是Cochrane-Orcutt estimation和Prais-Winsten estimation,这两种方法的区别在于差分过后的时间序列回归是否考虑第一期的变量值,具体的讲解可参见课本。

这里我就不演示手动计算FGLS estimator的过程了,我们直接使用Cochrane-Orcutt estimation和Prais-Winsten estimation的命令符计算。使用相应的命令符都需要单独下载对应的包,orcutt包的命令符cochrane.orcutt( )可以执行Cochrane-Orcutt estimation,使用此命令符我们需要先执行OLS时间序列回归,然后再使用此命令符转换结果,prais包的命令符prais_winsten( )可以执行Prais-Winsten estimation,使用方法和执行回归命令的lm( )以及dynlm( )相同。我们以书中的eg 12.4: Prais-Winsten Estimation in the Event Study为例,使用的数据为barium,分别计算OLS和两种FGLS的结果。

### 下载相应的包install.packages("prais")install.packages("orcutt")### 加载包library(prais)library(orcutt)### 设置时间序列barium_ts

### Cochrane-Orcutt Estimationbarium_ts_co

### Prais-Winsten Estimationbarium_ts_pw

我们可以使用stargazer( )命令符将所得到的三种回归结果汇总在一起,不过由于命令符prais_winsten( )返回的结果的格式和OLS不一样,所以命令符stargazer( )没办法识别,所以我在输出结果时,输入了两次Cochrane-Orcutt的回归结果,这样可以让输出的表格有三列,然后我们把系数和标准差替换为Prais-Winsten即可。

### 设定输出回归结果stargazer(barium_ts_ols, barium_ts_co, barium_ts_co, type = "text",### 改变第三列的系数值为Prais-Winstencoef = list(NULL, NULL, barium_ts_pw$coefficients),### 改变第三列的标准差se = list(NULL, NULL, sqrt(diag(vcovHC.prais(barium_ts_pw, type = "const")))),### 设置每列的标题column.labels = c("OLS", "Cochrane-Orcutt", "Prais-Winsten"))

四、OLS回归后调整序列相关性

第三节我们有提到通过类似差分的形式消除序列相关性,但是使用这种方法我们需要假设变量是严格外生的,这个假设过于严格。由于序列相关性主要影响的是标准差和其相关的一些检验,所以现在很多人还是更喜欢用OLS回归,但是在回归之后会对估计的标准差进行调整以消除序列相关性的影响,有点类似于我们之前在复习横截面数据时为了消除异方差性所使用的robust回归。

调整估计的标准差的理论推导有点复杂,这里就不再重复叙述课本上的过程了。在R语言中获得robust standard error的方法和之前横截面数据的robust回归类似,我们首先进行时间序列回归,然后使用sandwich包里面的命令符vcovHAC( )得到方差协方差矩阵 (HAC是heteroskedasticity and autocorrelation consistent),算出robust standard error,之前的横截面数据调整异方差时,我们使用的是vcovHC( )命令符,这里的HC是heteroskedasticity consistent不包括autocorrelation,注意区别。

下面我们使用命令符查看刚才的OLS回归调整过后的robust standard error

### 加载包library(sandwich)### 方差协方差矩阵vcovHAC(barium_ts_ols)

### 单独计算robust standard error### 矩阵对角线为方差 开平方即可sqrt(diag(vcovHAC(barium_ts_ols)))

### 使用coeftest()命令符可以查看调整过后的回归表格coeftest(barium_ts_ols, vcov = vcovHAC)

五、ARCH

这一章的最后一个部分是关于大名鼎鼎的ARCH模型的,但凡学过金融的小伙伴想必对ARCH和GARCH这两个名字再熟悉不过了,不管懂不懂,至少都是听过名字的。在我刚刚接触计量的时候,ARCH和GARCH模型相关的材料对我来说简直就是天书,直到今年的春季学期又从头系统学习了一遍时间序列以后,才对这两个模型有了较深的理解,但是平时不太常用,所以忘得也特别快。

ARCH和GARCH模型简单来说就是解决时间序列回归中的异方差性问题,在之前的横截面数据回归中,我们有简单提到解决横截面数据回归的异方差性问题可以使用加权最小二乘法,而在时间序列中,解决异方差性就是ARCH和GARCH。

对于ARCH模型来说,我们认为残差的平方存在如下关系:

由此计算OLS回归的方差(这里的方差应该为条件方差,我把条件省略了):

根据结果可知此时的方差不再是恒定的,出现了异方差。

我们以书上的eg 12.9: ARCH in Stock Returns为例,检验股票数据是否存在ARCH,使用的数据为nyse,我们首先进行时间序列回归,然后对残差的平方进行回归,检验系数的显著性。

### 设置时间序列nyse_ts

根据回归结果,我们可以发现残差平方回归的系数显著,即代表存在ARCH,这里我们只检验了一个滞后期,也即代表ARCH(1)。

R语言有可以自动检测ARCH和GARCH的命令符,也有可以执行ARCH和GARCH相关命令符,相关的包有比如tseries包,fGarch包等等。因为所涉及的内容实在太多,所以今天的笔记就随着课本的内容到这里。书上关于ARCH的部分并不算多,时间序列常见的AR模型,MA模型,ARMA模型等,伍德里奇的教材并没有讲很多甚至一点都没有提到。如果之后有时间,我会单独更新我的春季学期时间序列课程的笔记,到时我们会再更详细的讲解ARCH和GARCH,先在这里挖个坑~

r语言找不到cochrane函数_R语言——伍德里奇计量经济导论案例实践 第十二章 时间序列的序列相关和异方差问题...相关推荐

  1. r语言 面板数据回归_R语言——伍德里奇计量经济导论案例实践 第十三章 横截面与面板数据(一)...

    哈喽,停更了大概有三周的计量笔记又要重新开始啦!虽然美国的疫情没有停歇的迹象,可是依旧阻挡不了大学开学的热情.从8月3号开始上课到现在,也经历了很多事情,每天都是抱着死猪不怕开水烫的心情,暗地里安慰自 ...

  2. r语言找不到cochrane函数_网状meta必备技能之6-利用R中的meta包实现meta分析

    我们仅仅是代码的编辑者.整合者.搬运工,仅免费传授方法,下文数据和代码取自于网络和免费软件"R语言说明书",如果您觉得我们侵犯了您的版权,请通知我们撤稿.请大家谅解,谢谢! 相信大 ...

  3. window系统下C语言找不到fork()函数

    window系统下C语言找不到fork()函数 有次模拟进程时,想在window系统下调用fork()函数,但是就是引入相关头文件都无法找到函数,一开始是怀疑是否引入的头文件有误或者缺失,发现并没有缺 ...

  4. R语言实战笔记--第十二章 重抽样(置换检验)与自助法

    R语言实战笔记–第十二章 重抽样(置换检验)与自助法 标签(空格分隔): R语言 重抽样 自助法 置换检验 置换检验 双样本均值检验的时候,假设检验的方法就是,检查正态性.独立性.方差齐性,分别对应的 ...

  5. matlab的meadian函数_24 第二十四章 时间序列模型_W

    <24 第二十四章 时间序列模型_W>由会员分享,可在线阅读,更多相关<24 第二十四章 时间序列模型_W(31页珍藏版)>请在人人文库网上搜索. 1.第二十四章时间序列模型 ...

  6. 第八十二章 Caché 函数大全 $ZCSC 函数

    文章目录 第八十二章 Caché 函数大全 $ZCSC 函数 大纲 参数 描述 参数 n 示例 第八十二章 Caché 函数大全 $ZCSC 函数 余割函数. 大纲 $ZCSC(n) 参数 n 弧度角 ...

  7. 第七十二章 Caché 函数大全 $WISWIDE 函数

    文章目录 第七十二章 Caché 函数大全 $WISWIDE 函数 大纲 参数 描述 示例 第七十二章 Caché 函数大全 $WISWIDE 函数 返回一个标志,该标志指示字符串是否包含代理对. 大 ...

  8. 谭浩强c语言不讲位运算呢,谭浩强C语言教程第十二章-位运算.doc

    谭浩强C语言教程第十二章-位运算 12位运算1 12.1位运算符C语言提供了六种位运算符:1 12.1.1按位与运算1 12.1.2按位或运算2 12.1.3按位异或运算2 12.1.4求反运算3 1 ...

  9. 第十二章 SQL聚合函数 VARIANCE, VAR_SAMP, VAR_POP

    文章目录 第十二章 SQL聚合函数 VARIANCE, VAR_SAMP, VAR_POP 大纲 参数 描述 当前事务期间所做的更改 示例 第十二章 SQL聚合函数 VARIANCE, VAR_SAM ...

最新文章

  1. 利用php比较精确的统计在线人数的办法
  2. 数据结构——双向链表的实现
  3. python判断题题库大数据技术_智慧树_大数据分析的python基础_搜题公众号
  4. idea2021部署maven+javaweb项目到jboss(diy)
  5. 【读书笔记】浪潮之巅——公司史篇
  6. 联想电脑管家和驱动人生 驱动版本对比
  7. Landsat 8卫星波段介绍以及波段组合
  8. sqlserver 建表语句
  9. 百分比布局得应用 —— 模仿京东移动端首页
  10. android timepicker 时间上限,利用Android TimePicker 和 DatePicker 实现对时间的限制
  11. 如何使用Outlook创建带有超链接的图片签名
  12. 树莓派外挂ESP32-USB
  13. 外贸人如何快速学好英语
  14. SecureCRTSecureFX Portable远程连接Linux;上传下载文件
  15. 社会实践活动报告—06暑假饭店打工
  16. elasticsearch之地理位置查询geo_shape
  17. 【TV Picture Quality - 01】TV背景知识
  18. 组策略应用—屏幕保护我做主
  19. 微信微网站的服务器ip地址查询,微信开发之(三)获取微信服务器IP地址
  20. 声明:请各位领导不要再看到我的文章瞎指挥了

热门文章

  1. 我是一只it小小鸟阅读笔记
  2. 让你了解INTEL发展和一些专有名词
  3. socket使用(recv踩坑)
  4. 全黄的碟~~~~~~~~~~~~~~····
  5. Qihoo 360 altas 实践
  6. 怪兽地牢---(有趣的探索型Roguelike游戏)
  7. 明白这3点,普通人也能用知识赚钱
  8. gitcafe for Eclipse的环境配置
  9. 微软的一道经典逻辑推理题 小明和小强都是张老师的学生,张老师的生日是M月N日
  10. 任何时代都需要创客,人人都可以是创客