Stata:时间序列中的格兰杰因果检验
时间序列中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:时间序列中的格兰杰因果检验相关推荐
- 格兰杰检验的基本步骤_【Stata教程】格兰杰因果检验
原标题:[Stata教程]格兰杰因果检验 "社会科学中的数据可视化"第432篇推送 引言 在实证分析中,我们经常需要确定因果关系是x导致y,还是y导致x.对此,Granger提出了 ...
- 格兰杰因果检验-Eviews实现
首先了解格兰杰因果检验基本概念 一共分为两步,数据导入或因果检验 首先新建一个workfile 选择数据类型,一般会根据时间,但是由于本次需要排除节假日,而选取工作日后数据无法剔除,因此此处选择了无结 ...
- stata F值缺失_一文读懂Stata做格兰杰因果检验命令总结
来源:http://dss.princeton.edu/training/,部分资源整理自:百度文库.CDA数据分析师.社会科学中的数据可视化 在实证分析中,我们经常需要确定因果关系是x导致y,还是y ...
- R语言EG(Engle-Granger)两步法协整检验、RESET、格兰杰因果检验、VAR模型分析CPI和PPI时间序列关系...
全文链接:http://tecdat.cn/?p=31108 作为衡量通货膨胀的基本指标,消费者价格指数CPI和生产者价格指数PPI的作用关系与传导机制一直是宏观经济研究的核心问题.(点击文末&quo ...
- 格兰杰检验的基本步骤_如何在STATA中做格兰杰因果关系检验
格兰杰因果检验相关的stata命令可以有三种. 方法一: reg y L.y L.x (滞后1 期) estat ic (显示AIC 与BIC 取值,以便选择最佳滞后期) reg y L.y L.x ...
- python时间序列因果检验_用python做时间序列预测八:Granger causality test(格兰杰因果检验)...
如果想知道一个序列是否对预测另一个序列有用,可以用Granger causality test(格兰杰因果检验). Granger causality test的思想 如果使用时间序列X和Y的历史值来 ...
- 用python做时间序列预测八:Granger causality test(格兰杰因果检验)
如果想知道一个序列是否对预测另一个序列有用,可以用Granger causality test(格兰杰因果检验). Granger causality test的思想 如果使用时间序列X和Y的历史值来 ...
- python时间序列因果检验_用python做时间序列预测8:Granger causality test(格兰杰因果检验)...
如果想知道一个序列是否对预测另一个序列有用,可以用Granger causality test(格兰杰因果检验). Granger causality test的思想 如果使用时间序列X和Y的历史值来 ...
- xtgranger:面板格兰杰因果检验
全文阅读:https://www.lianxh.cn/news/ef4384a5266fb.html 目录 1. 背景介绍 2. 基本原理 2.1 理论模型与假设 2.2 蒙特卡罗模拟 3. Stat ...
最新文章
- 基于时间卷积神经网络的概率预测
- Nginx综合介绍以及配置文件详解
- C语言写出生命游戏什么水平,我也来汇报~~~生命游戏。
- 从10亿光年到0.1飞米的世界 (经典!震撼!)
- 不同浏览器隐藏默认表单样式
- 关于在hue当中执行定时任务,时间的设置。
- 织梦手机软件应用app下载排行网站模板
- onedrive-cf-index 搭建教程
- Linux入门学习(六)
- Jenkins 新版本及插件在Windows下的安装
- [选择性翻译][HDP Ambari 2.2.2安装使用说明][1]
- Firefox浏览器个人用的插件
- AutoSar软件文档阅读
- 三菱PLC QCPU用户手册(功能解说/程序基础篇)
- 基于java springboot校园二手交易平台源码
- 三种迷宫算法(深度优先、随机Prim、递归分割)
- Oracle ERP 模块
- 【案例分析】PCB行业产业服务平台开发案例分析
- 什么是远程访问?怎样在任何地方连接到您的电脑
- Hexo 好看且实用的主题推荐
热门文章
- Java高并发三部曲
- keras+ ctpn 原理流程图
- Variational graph auto-encoders (VGAE)
- 8瓶水和3只小老鼠的故事(python解决)思路
- 五分之一金融机构将从2018年开始探索加密货币交易
- [OAuth2.0三方登录系列文章-1]OAuth2.0与三方登录的端到端方案
- 《零基础入门学习Python》读书笔记
- ROS系列——关于OpenCV读取和设置网络摄像头参数的问题
- python爬取汽车之家_python爬取 汽车之家(汽车授权经销商)
- paypal 主要的html 表格变量的含义