python时间序列因果检验_用python做时间序列预测8:Granger causality test(格兰杰因果检验)...
如果想知道一个序列是否对预测另一个序列有用,可以用Granger causality test(格兰杰因果检验)。
Granger causality test的思想
如果使用时间序列X和Y的历史值来预测Y的当前值,比仅通过Y的历史值来预测Y的当前值得到的误差更小,并且通过了F检验,卡方检验,则X对Y的预测是有一定帮助的。 了解了Granger causality test的思想之后会发现,其实Granger causality test最多能推断出X对Y的预测是有一定帮助的,至于是否能说X和Y是因果关系,则不一定。 进一步了解可以去这里:https://www.zhihu.com/question/34787362
python代码
python的statsmodel包的grangercausalitytests函数中提供了很好的实现。
该方法接收一个包含2列的2维的数组作为主要参数: 第一列是当前要预测未来值的序列A,第二列是另一个序列B,该方法就是看B对A的预测是否有帮助。该方法的零假设是:B对A没有帮助。如果所有检验下的P-Values都小于显著水平0.05,则可以拒绝零假设,并推断出B确实对A的预测有用。
第二个参数maxlag是设定测试用的lags的最大值。
我们使用关于澳大利亚药物销售的数据集做预测,并利用Granger causality检测‘月份’这个序列是否对数据集的预测用。
from statsmodels.tsa.stattools import grangercausalitytests
df = pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/a10.csv', parse_dates=['date'])
df['month'] = df.date.dt.month
grangercausalitytests(df[['value', 'month']], maxlag=2)
输出结果: Granger Causality number of lags (no zero) 1 ssr based F test: F=54.7797 , p=0.0000 , df_denom=200, df_num=1 ssr based chi2 test: chi2=55.6014 , p=0.0000 , df=1 likelihood ratio test: chi2=49.1426 , p=0.0000 , df=1 parameter F test: F=54.7797 , p=0.0000 , df_denom=200, df_num=1 Granger Causality number of lags (no zero) 2 ssr based F test: F=162.6989, p=0.0000 , df_denom=197, df_num=2 ssr based chi2 test: chi2=333.6567, p=0.0000 , df=2 likelihood ratio test: chi2=196.9956, p=0.0000 , df=2 parameter F test: F=162.6989, p=0.0000 , df_denom=197, df_num=2
每个检验的p值都小于5%,所以可以说月份对澳大利亚药物销售的预测有用,或者说药物的销售可能存在季节性。
原文作者: 程序员一一涤生(云+社区)
python时间序列因果检验_用python做时间序列预测8:Granger causality test(格兰杰因果检验)...相关推荐
- 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怎么做q检验_关于eviews做时间序列模型的残差Q统计量检验我决定写一些!...
本文目的:1.做arima模型的时候你需要在模型拟合完之后做残差的Q统计量检验,但是你又不会看结果: 2.你会看结果,但是是否发现疑问:为什么直接在模型中选择残差检验中的Q统计量检验得出的结果与选择r ...
- python 分类变量xgboost_如何用XGBoost做时间序列预测?
作者:Jason Brownlee翻译:wwl校对:王雨桐本文约3300字,建议阅读10分钟本文介绍了如何用XGBoost做时间序列预测,包括将时间序列转化为有监督学习的预测问题,使用前向验证来做模型 ...
- python大数据免费_用python做大数据
不学Python迟早会被淘汰?Python真有这么好的前景? 最近几年Python编程语言在国内引起不小的轰动,有超越Java之势,本来在美国这个编程语言就是最火的,应用的非常非常的广泛,而Pytho ...
- python时间序列如何拟合曲线_【Python】keras使用LSTM拟合曲线
keras生成的网络结构如下图: 代码如下: from sklearn.preprocessing import MinMaxScaler from keras.models import Seque ...
- python 还原九宫格图片_用Python做一个好玩的朋友圈九宫格抽奖
最近在朋友圈看到个好玩的抽奖九宫格: 随便点开一个: 设计思路 以朋友圈中看到的1号图做参考,我们需要准备 300*900 的白色底图,搞笑表情图,广告语,中间一个醒目的数字编号,外加下方的嘲讽&qu ...
- 编程游戏python我的世界_乐学Python编程-做个游戏很简单
1.进入Python 编程世界/ 2 1.1 启动Python 编程环境/ 5 1.2 Python 之禅/ 9 1.3 送你几朵玫瑰花--运行Python 程序/ 16 1.4 Python 的由来 ...
- 用python自动办公 百度_用Python自动办公,做职场高手,16章完整版百度云盘
01.文件 [12.20更新课程代码]用Python自动办公做职场高手.rar [课程代码]从零写Python练手项目:实用脚本.zip [课程代码]四周实现爬虫网站.zip [课程代码]用NumPy ...
最新文章
- 线程的调度有抢占式或者非抢占 (转)
- 准备踏入Android开发的道路
- Ubuntu 16.04下Caffe-SSD的应用(一)——编译Caffe-SSD的CPU版本与GPU版本
- 深入Eureka/Feign/Hystrix原理学习(1)
- Linux系统时间与RTC时间【转】
- BZOJ #2874. 训练士兵(差分+离散化+主席树)
- 作者:石勇(1956-),男,中国科学院大学经济管理学院教授、博士生导师
- php 使用支付宝SDK报错解决
- 企业云网络安全解决方案的10条评估标准
- 华为网络篇 华为路由器的初始化配置-05
- 抖音短视频内容该如何创作
- python2/3 opencv的fitline函数
- postgresql 计算时间差
- Verilog HDL|实验项目六例
- FileInfo,DirectoryInfo
- Spire.XLS教程:在 Java 中接受或拒绝所有跟踪更改
- 如何利用 C# + KDTree 实现 K 最邻近算法?
- 苯酚物理化学性质及用途
- Python机器学习基础篇二《监督学习》
- Laravel源码解析之契约