时间序列中Stata的格兰杰因果检验

在实证分析中,因果关系经常需要判断。对此,Granger提出了一种解决方法:如果x是y的原因,且不存在反向因果,则x过去值可以预测y未来值,反之则不然。具体即建立时间序列的滞后回归模型,分析x的滞后项是否对y有明显的预测能力。此检验可分为四步操作:

设置时间序列

第一步,设置时间序列,注意此处若时间不连续会对后续滞后回归有影响。

#设置时间序列
tsset var~

结果大概这样

. tsset trade_datetime variable:  trade_date, 03jan2018 to 27may2020, but with gapsdelta:  1 day

判断最佳滞后阶数

第二步,判断最佳滞后阶数,此处可加判断条件取符合条件部分,至于判断取决于其AIC与BIC,一般AIC值即可判断(AIC越小越好)。

#判断滞后阶数
varsoc var~1 var~2 (if 条件1)

结果这样

. varsoc log_return stk_log_return if time==0Selection-order criteriaSample:  12jan2018 - 13mar2020, but with gapsNumber of obs      =        96+---------------------------------------------------------------------------+|lag |    LL      LR      df    p      FPE       AIC      HQIC      SBIC    ||----+----------------------------------------------------------------------||  0 |  680.432                      2.5e-09   -14.134  -14.1124  -14.0806* ||  1 |  687.212  13.561    4  0.009  2.4e-09  -14.1919  -14.1271  -14.0317  ||  2 |  698.272  22.119*   4  0.000  2.0e-09*  -14.339*  -14.231* -14.0719  ||  3 |  701.008  5.4713    4  0.242  2.1e-09  -14.3127  -14.1615  -13.9387  ||  4 |  702.141  2.2668    4  0.687  2.2e-09  -14.2529  -14.0586  -13.7721  |+---------------------------------------------------------------------------+Endogenous:  log_return stk_log_returnExogenous:  _cons

阶数判断有找标星星的就好了,这个就是两阶滞后较优。

也可以一个个回归试一试,报告AIC和BIC比较:

#回归后报告AIC BIC
estat ic
 estat ic
Akaike's information criterion and Bayesian information criterion
-----------------------------------------------------------------------------Model |          N   ll(null)  ll(model)      df        AIC        BIC
-------------+---------------------------------------------------------------. |        334    1080.45   1100.915       5  -2191.831  -2172.775
-----------------------------------------------------------------------------
Note: BIC uses N = number of observations. See [R] BIC note.

进行滞后回归

第三步,开始回归,对于滞后二阶回归:

#二阶滞后回归①
reg y l.y l.x l2.y l2.x (if 条件1)
#二阶滞后回归②
var y x,lag(n)

上面两种方法均可,其中①中可以加条件筛选:方法②不能加if判断语句,其中的n即为第二部判断的滞后阶数。

 reg log_return l.log_return l.stk_log_return l2.log_return l2.stk_log_returnSource |       SS           df       MS      Number of obs   =       334
-------------+----------------------------------   F(4, 329)       =     10.72Model |  .003495038         4   .00087376   Prob > F        =    0.0000Residual |  .026808292       329  .000081484   R-squared       =    0.1153
-------------+----------------------------------   Adj R-squared   =    0.1046Total |   .03030333       333  .000091001   Root MSE        =    .00903--------------------------------------------------------------------------------log_return |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
---------------+----------------------------------------------------------------log_return |L1. |   .1295246   .0483182     2.68   0.008     .0344729    .2245763|
stk_log_return |L1. |   .0418571    .044596     0.94   0.349    -.0458722    .1295863|log_return |L2. |  -.3160259   .0569197    -5.55   0.000    -.4279985   -.2040534|
stk_log_return |L2. |   .0892175   .0450037     1.98   0.048     .0006862    .1777488|_cons |   .0000102   .0004966     0.02   0.984    -.0009668    .0009871
--------------------------------------------------------------------------------

我使用的数据为2018年1月3日到2020年5月27日的数据,有效数据条数为581,但此时显示:

 Number of obs = 334

581条记录两阶滞后回归后只剩334个观测值?被吞了?注意,知识点来了,又一个小细节。

并不是计算有问题,只是由于滞后阶数的设置为2,也就是说接下来两天 (注意!不是接下来两个交易日或者有观测数据的日期) 有数据才能计入有效进入回归。而我使用的数据是可转债和股票交易数据,周末没有交易,周五周四的滞后两天是周末,没有观测值就被跳过了,遇到节假日也是同理。也就是说非交易日前两天都没了,所以观测数比实际数据少了40%以上。

如果想要对上一个交易日或者上一个观测进行回归,自行构造虚拟时间序列设置为第一步即可。

报告检验结果

第四步,对于使用第三步中方法①的可以使用test命令,对于使用第三步中方法②的可以使用

#报告结果
vargranger
vargrangerGranger causality Wald tests+------------------------------------------------------------------+|          Equation           Excluded |   chi2     df Prob > chi2 ||--------------------------------------+---------------------------||        log_return     stk_log_return |  2.3602     1    0.124    ||        log_return                ALL |  2.3602     1    0.124    ||--------------------------------------+---------------------------||    stk_log_return         log_return |  .15784     1    0.691    ||    stk_log_return                ALL |  .15784     1    0.691    |+------------------------------------------------------------------+

结果报告就有了,最后一个是p值。

Stata:时间序列中的格兰杰因果检验相关推荐

  1. 格兰杰检验的基本步骤_【Stata教程】格兰杰因果检验

    原标题:[Stata教程]格兰杰因果检验 "社会科学中的数据可视化"第432篇推送 引言 在实证分析中,我们经常需要确定因果关系是x导致y,还是y导致x.对此,Granger提出了 ...

  2. 格兰杰因果检验-Eviews实现

    首先了解格兰杰因果检验基本概念 一共分为两步,数据导入或因果检验 首先新建一个workfile 选择数据类型,一般会根据时间,但是由于本次需要排除节假日,而选取工作日后数据无法剔除,因此此处选择了无结 ...

  3. stata F值缺失_一文读懂Stata做格兰杰因果检验命令总结

    来源:http://dss.princeton.edu/training/,部分资源整理自:百度文库.CDA数据分析师.社会科学中的数据可视化 在实证分析中,我们经常需要确定因果关系是x导致y,还是y ...

  4. R语言EG(Engle-Granger)两步法协整检验、RESET、格兰杰因果检验、VAR模型分析CPI和PPI时间序列关系...

    全文链接:http://tecdat.cn/?p=31108 作为衡量通货膨胀的基本指标,消费者价格指数CPI和生产者价格指数PPI的作用关系与传导机制一直是宏观经济研究的核心问题.(点击文末&quo ...

  5. 格兰杰检验的基本步骤_如何在STATA中做格兰杰因果关系检验

    格兰杰因果检验相关的stata命令可以有三种. 方法一: reg y L.y L.x (滞后1 期) estat ic (显示AIC 与BIC 取值,以便选择最佳滞后期) reg y L.y L.x ...

  6. python时间序列因果检验_用python做时间序列预测八:Granger causality test(格兰杰因果检验)...

    如果想知道一个序列是否对预测另一个序列有用,可以用Granger causality test(格兰杰因果检验). Granger causality test的思想 如果使用时间序列X和Y的历史值来 ...

  7. 用python做时间序列预测八:Granger causality test(格兰杰因果检验)

    如果想知道一个序列是否对预测另一个序列有用,可以用Granger causality test(格兰杰因果检验). Granger causality test的思想 如果使用时间序列X和Y的历史值来 ...

  8. python时间序列因果检验_用python做时间序列预测8:Granger causality test(格兰杰因果检验)...

    如果想知道一个序列是否对预测另一个序列有用,可以用Granger causality test(格兰杰因果检验). Granger causality test的思想 如果使用时间序列X和Y的历史值来 ...

  9. xtgranger:面板格兰杰因果检验

    全文阅读:https://www.lianxh.cn/news/ef4384a5266fb.html 目录 1. 背景介绍 2. 基本原理 2.1 理论模型与假设 2.2 蒙特卡罗模拟 3. Stat ...

最新文章

  1. 基于时间卷积神经网络的概率预测
  2. Nginx综合介绍以及配置文件详解
  3. C语言写出生命游戏什么水平,我也来汇报~~~生命游戏。
  4. 从10亿光年到0.1飞米的世界 (经典!震撼!)
  5. 不同浏览器隐藏默认表单样式
  6. 关于在hue当中执行定时任务,时间的设置。
  7. 织梦手机软件应用app下载排行网站模板
  8. onedrive-cf-index 搭建教程
  9. Linux入门学习(六)
  10. Jenkins 新版本及插件在Windows下的安装
  11. [选择性翻译][HDP Ambari 2.2.2安装使用说明][1]
  12. Firefox浏览器个人用的插件
  13. AutoSar软件文档阅读
  14. 三菱PLC QCPU用户手册(功能解说/程序基础篇)
  15. 基于java springboot校园二手交易平台源码
  16. 三种迷宫算法(深度优先、随机Prim、递归分割)
  17. Oracle ERP 模块
  18. 【案例分析】PCB行业产业服务平台开发案例分析
  19. 什么是远程访问?怎样在任何地方连接到您的电脑
  20. Hexo 好看且实用的主题推荐

热门文章

  1. Java高并发三部曲
  2. keras+ ctpn 原理流程图
  3. Variational graph auto-encoders (VGAE)
  4. 8瓶水和3只小老鼠的故事(python解决)思路
  5. 五分之一金融机构将从2018年开始探索加密货币交易
  6. [OAuth2.0三方登录系列文章-1]OAuth2.0与三方登录的端到端方案
  7. 《零基础入门学习Python》读书笔记
  8. ROS系列——关于OpenCV读取和设置网络摄像头参数的问题
  9. python爬取汽车之家_python爬取 汽车之家(汽车授权经销商)
  10. paypal 主要的html 表格变量的含义