Python Granger因果关系F测试理解

如何解决Python Granger因果关系F测试理解

我正在为我的固定时间序列尝试格兰杰因果关系。我很难理解它的置信度。

对于例如1:

grangercausalitytests(filter_df[['transform_y_x','transform_y_y']],maxlag=15)

gives result:

Granger Causality
number of lags (no zero) 1
ssr based F test:         F=3.7764,p=0.0530,df_denom=286,df_num=1
ssr based chi2 test:   chi2=3.8161,p=0.0508,df=1
likelihood ratio test: chi2=3.7911,p=0.0515,df=1
parameter F test:         F=3.7764,df_num=1

Granger Causality
number of lags (no zero) 2
ssr based F test:         F=2.1949,p=0.1133,df_denom=283,df_num=2
ssr based chi2 test:   chi2=4.4673,p=0.1071,df=2
likelihood ratio test: chi2=4.4330,p=0.1090,df=2
parameter F test:         F=2.1949,df_num=2

Granger Causality
number of lags (no zero) 3
ssr based F test:         F=7.5713,p=0.0001,df_denom=280,df_num=3
ssr based chi2 test:   chi2=23.2818,p=0.0000,df=3
likelihood ratio test: chi2=22.3856,df=3
parameter F test:         F=7.5713,df_num=3

Granger Causality
number of lags (no zero) 4
ssr based F test:         F=2.3756,p=0.0523,df_denom=277,df_num=4
ssr based chi2 test:   chi2=9.8113,p=0.0437,df=4
likelihood ratio test: chi2=9.6467,p=0.0468,df=4
parameter F test:         F=2.3756,df_num=4

Granger Causality
number of lags (no zero) 5
ssr based F test:         F=1.4871,p=0.1941,df_denom=274,df_num=5
ssr based chi2 test:   chi2=7.7338,p=0.1715,df=5
likelihood ratio test: chi2=7.6307,p=0.1778,df=5
parameter F test:         F=1.4871,df_num=5

Granger Causality
number of lags (no zero) 6
ssr based F test:         F=1.2781,p=0.2675,df_denom=271,df_num=6
ssr based chi2 test:   chi2=8.0363,p=0.2355,df=6
likelihood ratio test: chi2=7.9247,p=0.2437,df=6
parameter F test:         F=1.2781,df_num=6

Granger Causality
number of lags (no zero) 7
ssr based F test:         F=1.7097,p=0.1067,df_denom=268,df_num=7
ssr based chi2 test:   chi2=12.6378,p=0.0814,df=7
likelihood ratio test: chi2=12.3637,p=0.0892,df=7
parameter F test:         F=1.7097,df_num=7

Granger Causality
number of lags (no zero) 8
ssr based F test:         F=1.4672,p=0.1692,df_denom=265,df_num=8
ssr based chi2 test:   chi2=12.4909,p=0.1306,df=8
likelihood ratio test: chi2=12.2222,p=0.1416,df=8
parameter F test:         F=1.4672,df_num=8

Granger Causality
number of lags (no zero) 9
ssr based F test:         F=2.0761,p=0.0320,df_denom=262,df_num=9
ssr based chi2 test:   chi2=20.0400,p=0.0177,df=9
likelihood ratio test: chi2=19.3576,p=0.0223,df=9
parameter F test:         F=2.0761,df_num=9

Granger Causality
number of lags (no zero) 10
ssr based F test:         F=1.8313,p=0.0556,df_denom=259,df_num=10
ssr based chi2 test:   chi2=19.7977,p=0.0312,df=10
likelihood ratio test: chi2=19.1291,p=0.0387,df=10
parameter F test:         F=1.8313,df_num=10

Granger Causality
number of lags (no zero) 11
ssr based F test:         F=1.8893,p=0.0410,df_denom=256,df_num=11
ssr based chi2 test:   chi2=22.6493,p=0.0198,df=11
likelihood ratio test: chi2=21.7769,p=0.0262,df=11
parameter F test:         F=1.8893,df_num=11

Granger Causality
number of lags (no zero) 12
ssr based F test:         F=2.0157,p=0.0234,df_denom=253,df_num=12
ssr based chi2 test:   chi2=26.5779,p=0.0089,df=12
likelihood ratio test: chi2=25.3830,p=0.0131,df=12
parameter F test:         F=2.0157,df_num=12

Granger Causality
number of lags (no zero) 13
ssr based F test:         F=1.8636,p=0.0347,df_denom=250,df_num=13
ssr based chi2 test:   chi2=26.8434,df=13
likelihood ratio test: chi2=25.6211,p=0.0191,df=13
parameter F test:         F=1.8636,df_num=13

Granger Causality
number of lags (no zero) 14
ssr based F test:         F=1.5283,p=0.1013,df_denom=247,df_num=14
ssr based chi2 test:   chi2=23.9090,p=0.0470,df=14
likelihood ratio test: chi2=22.9296,p=0.0614,df=14
parameter F test:         F=1.5283,df_num=14

Granger Causality
number of lags (no zero) 15
ssr based F test:         F=0.9749,p=0.4823,df_denom=244,df_num=15
ssr based chi2 test:   chi2=16.4815,p=0.3508,df=15
likelihood ratio test: chi2=16.0065,p=0.3816,df=15
parameter F test:         F=0.9749,df_num=15

例如:

grangercausalitytests(filter_df[['transform_y_y','transform_y_x']],maxlag=15)

it says:
Granger Causality
number of lags (no zero) 1
ssr based F test:         F=70.4932,df_num=1
ssr based chi2 test:   chi2=71.2326,df=1
likelihood ratio test: chi2=63.6734,df=1
parameter F test:         F=70.4932,df_num=1

Granger Causality
number of lags (no zero) 2
ssr based F test:         F=47.3519,df_num=2
ssr based chi2 test:   chi2=96.3771,df=2
likelihood ratio test: chi2=83.1351,df=2
parameter F test:         F=47.3519,df_num=2

Granger Causality
number of lags (no zero) 3
ssr based F test:         F=33.6081,df_num=3
ssr based chi2 test:   chi2=103.3450,df=3
likelihood ratio test: chi2=88.2665,df=3
parameter F test:         F=33.6081,df_num=3

Granger Causality
number of lags (no zero) 4
ssr based F test:         F=24.1709,df_num=4
ssr based chi2 test:   chi2=99.8248,df=4
likelihood ratio test: chi2=85.6260,df=4
parameter F test:         F=24.1709,df_num=4

Granger Causality
number of lags (no zero) 5
ssr based F test:         F=15.6663,df_num=5
ssr based chi2 test:   chi2=81.4760,df=5
likelihood ratio test: chi2=71.6615,df=5
parameter F test:         F=15.6663,df_num=5

Granger Causality
number of lags (no zero) 6
ssr based F test:         F=11.5874,df_num=6
ssr based chi2 test:   chi2=72.8595,df=6
likelihood ratio test: chi2=64.8565,df=6
parameter F test:         F=11.5874,df_num=6

Granger Causality
number of lags (no zero) 7
ssr based F test:         F=9.7282,df_num=7
ssr based chi2 test:   chi2=71.9090,df=7
likelihood ratio test: chi2=64.0753,df=7
parameter F test:         F=9.7282,df_num=7

Granger Causality
number of lags (no zero) 8
ssr based F test:         F=8.3121,df_num=8
ssr based chi2 test:   chi2=70.7626,df=8
likelihood ratio test: chi2=63.1365,df=8
parameter F test:         F=8.3121,df_num=8

Granger Causality
number of lags (no zero) 9
ssr based F test:         F=7.7863,df_num=9
ssr based chi2 test:   chi2=75.1583,df=9
likelihood ratio test: chi2=66.6028,df=9
parameter F test:         F=7.7863,df_num=9

Granger Causality
number of lags (no zero) 10
ssr based F test:         F=6.9230,df_num=10
ssr based chi2 test:   chi2=74.8427,df=10
likelihood ratio test: chi2=66.3278,df=10
parameter F test:         F=6.9230,df_num=10

Granger Causality
number of lags (no zero) 11
ssr based F test:         F=6.7168,df_num=11
ssr based chi2 test:   chi2=80.5233,df=11
likelihood ratio test: chi2=70.7452,df=11
parameter F test:         F=6.7168,df_num=11

Granger Causality
number of lags (no zero) 12
ssr based F test:         F=6.8729,df_num=12
ssr based chi2 test:   chi2=90.6239,df=12
likelihood ratio test: chi2=78.4393,df=12
parameter F test:         F=6.8729,df_num=12

Granger Causality
number of lags (no zero) 13
ssr based F test:         F=6.0868,df_num=13
ssr based chi2 test:   chi2=87.6748,df=13
likelihood ratio test: chi2=76.1718,df=13
parameter F test:         F=6.0868,df_num=13

Granger Causality
number of lags (no zero) 14
ssr based F test:         F=5.6246,df_num=14
ssr based chi2 test:   chi2=87.9896,df=14
likelihood ratio test: chi2=76.3759,df=14
parameter F test:         F=5.6246,df_num=14

Granger Causality
number of lags (no zero) 15
ssr based F test:         F=5.3775,df_num=15
ssr based chi2 test:   chi2=90.9098,df=15
likelihood ratio test: chi2=78.5443,df=15
parameter F test:         F=5.3775,df_num=15

从 eg.1 几个滞后来看,p 值低于 0.05,
那么我可以说 y_x Granger 导致 y_y 吗?
从 eg.2,所有的 p 值都是 0.0000, 所以 y_y Granger 导致 x_y?

所以这意味着因果关系是双向的?
如何给格兰杰因果关系打分?
F-test 值在这里有什么作用吗?
在 eg.1 中,所有 f-test 值都非常低,而 eg.2 都非常高。 在这种情况下,我可以考虑 F 检验值来得出结论吗?
如果是这样,那么 F 检验要考虑的重要价值是什么?

TIA

解决方法

从 eg.1 几个滞后,p 值低于 0.05, 那么我可以说 y_x Granger 导致 y_y 吗?

根据您的问题,我假设您想将 p 值阈值设置为 0.05。在示例 1 中,对于 number of lags (no zero) 1,当 p 值显示为 p=0.0530 时,这意味着 y_y(第二列)的过去 1 值(滞后 1)对 y_x 的当前值没有统计显着影响(第一列)。对于 number of lags (no zero) 3,当 p 值显示为 p=0.0001 时,这意味着 y_y(第二列)的过去 3 个值(共同)对 y_x(第一列)的当前值具有统计显着影响。

从 eg.2,所有 p 值都是 0.0000,所以 y_y Granger 导致 y_x?

与上述答案类似,在所有情况下,例如 2,p 值

所以这意味着因果关系是双向的?

这取决于您要解决的问题,典型的假设是因果关系是单向的。从您的结果来看,您似乎最有可能从 y_x 预测 y_y 的值,而不是相反。如果两个输入信号都是具有相似周期性的循环,则可能会看到 y_y 的过去值和 y_x 的当前值之间存在弱相关性。

如何给出格兰杰因果关系的置信度? F-test 值在这里有什么作用吗? 在 eg.1 中,所有 f-test 值都非常低,而 eg.2 都非常高。在这种情况下,我可以考虑 F 检验值来得出结论吗? 如果是这样,那么 F 检验要考虑的重要价值是什么?

根据自由度,F 值和 p 值相互关联,因为您使用的是 p 值阈值,这意味着您正在设置 F 值阈值。

参考文献:

  1. https://stats.stackexchange.com/questions/476536/interpreting-statsmodel-granger-causality-test-results-ssr-chi2test
  2. source code
  3. Granger causality
  4. f-value calculator

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)> insert overwrite table dwd_trade_cart_add_inc > select data.id, > data.user_id, > data.course_id, > date_format(
错误1 hive (edu)> insert into huanhuan values(1,'haoge'); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive> show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 <configuration> <property> <name>yarn.nodemanager.res