(Granger Causality)
格兰杰(Granger)于 1969 年提出了一种基于“预测”的因果关系(格兰杰因果关系),后经西蒙斯(1972 ,1980)的发展,格兰杰因果检验作为一种计量方法已经被经济学家们普遍接受并广泛使用,尽管在哲学层面上人们对格兰杰因果关系是否是一种“真正”的因果关系还存在很大的争议。
简单来说它通过比较“已知上一时刻所有信息,这一时刻X的概率分布情况”和“已知上一时刻除Y以外的所有信息,这一时刻X的概率分布情况”,来判断Y对X是否存在因果关系。(在发展和简化版本中:“所有信息”这个理论上的过强条件被减弱,比较概率分布这个困难的操作也被减弱)
它的主要使用方式在于以此定义进行假设检验,从而判断X与Y是否存在因果关系。
 
要探讨因果关系,首先当然要定义什么是因果关系。这里不再谈伽利略抑或休谟等人在哲学意义上所说的因果关系,只从统计意义上介绍其定义。
从统计的角度,因果关系是通过概率或者分布函数的角度体现出来的:在宇宙中所有其它事件的发生情况固定不变的条件下,如果一个事件A的发生与不发生对于另一个事件B的发生的概率(如果通过事件定义了随机变量那么也可以说分布函数)有影响,并且这两个事件在时间上有先后顺序(A前B后),那么我们便可以说A是B的原因。早期因果性是简单通过概率来定义的,即如果P(B|A)>P(B)那么A就是B的原因(Suppes,1970);然而这种定义有两大缺陷:一、没有考虑时间先后顺序;二、从P(B|A)>P(B)由条件概率公式马上可以推出P(A|B)>P(A),显然上面的定义就自相矛盾了(并且定义中的“>”毫无道理,换成“<”照样讲得通,后来通过改进,把定义中的“>”改为了不等号“≠”,其实按照同样的推理,这样定义一样站不住脚)。
事实上,以上定义还有更大的缺陷,就是信息集的问题。严格讲来,要真正确定因果关系,必须考虑到完整的信息集,也就是说,要得出“A是B的原因”这样的结论,必须全面考虑宇宙中所有的事件,否则往往就会发生误解。最明显的例子就是若另有一个事件C,它是A和B的共同原因,考虑一个极端情况:若P(A|C)=1,P(B|C)=1,那么显然有P(B|AC)=P(B|C),此时可以看出A事件是否发生与B事件已经没有关系了。
因此,Granger于1967年提出了Granger因果关系的定义(均值和方差意义上的均值因果性)[2]  并在1980年发展将其进行了扩展(分布意义上的全民因果性)[3]  ,他的定义是建立在完整信息集以及发生时间先后顺序基础上的。
从便于理解的角度上按照从一般到特殊的顺序讲:
最一般的情况是根据分布函数(条件分布)判断。约定

  

是到n期为止宇宙中的所有信息,

  

为到n期为止所有的

 

(t=1…n),

  

为第n+1期X的取值,

  

为除Y之外的所有信息。Y的发生影响X的发生的表达式为:

后来认为宇宙信息集是不可能找到的,于是退而求其次,找一个可获取的信息集J来替代Ω:
再后来,大家又认为验证分布函数是否相等实在是太复杂,于是再次退而求其次,只是验证期望是否相等(这种叫做均值因果性,上面用分布函数验证的因果关系叫全面因果性):
也有一种方法是验证Y的出现是否能减小对

  

的预测误差,即比较方差是否发生变化:

检验

(Granger Causality Test)
上面因果关系的最后一种表达方法已经接近我们最常用的格兰杰因果检验方法,统计上通常用残差平方和来表示预测误差,于是常常用X和Y建立回归方程,通过假设检验的方法(F检验)检验Y的系数是否为零。[1] 
可以看出,我们所使用的Granger因果检验与其最初的定义已经偏离甚远,削减了很多条件(并且由回归分析方法和F检验的使用我们可以知道还增强了若干条件),这很可能会导致虚假的因果关系。因此,在使用这种方法时,务必检查前提条件,使其尽量能够满足。此外,统计方法并非万能的,评判一个对象,往往需要多种角度的观察。正所谓“兼听则明,偏听则暗”。诚然真相永远只有一个,但是也要靠科学的探索方法。
 
 

Granger Causality 格兰杰因果关系的更多相关文章

  1. 漫谈格兰杰因果关系(Granger Causality)——第一章 野火烧不尽,春风吹又生

    2017年7月9日上午6点10分,先师胡三清同志--新因果关系的提出者.植入式脑部电极癫痫治疗法的提出者.IEEE高级会员,因肺癌医治无效于杭州肿瘤医院去世,享年50岁.余蒙先师厚恩数载,一朝忽闻先师 ...

  2. 格兰杰因果 Granger causality

    格兰杰因果关系(Granger causality )是基于预测的因果关系统计概念.根据格兰杰因果关系,如果信号X1“格兰杰Causes”(或“G-Causes”)信号X2,则X1的过去值应该包含有助 ...

  3. VAR模型学习笔记

    目录 1 定义 VAR模型的具体步骤 建模步骤及公式 代码实现 1 定义 VAR模型除了分析自身滞后项的影响外,还分析其他相关因素的滞后项对未来值产生的影响参考 用来分析随机扰动对系统的动态冲击的大小 ...

  4. 《零起点,python大数据与量化交易》

    <零起点,python大数据与量化交易>,这应该是国内第一部,关于python量化交易的书籍. 有出版社约稿,写本量化交易与大数据的书籍,因为好几年没写书了,再加上近期"前海智库 ...

  5. Econ 493 A1 - Fall 2019

    Econ 493 A1 - Fall 2019Homework 4Assignment InformationThis assignment is due on Monday November 18 ...

  6. Causal Corpus 事件因果关系语料统计

    Causal Corpus 事件因果关系语料统计 本文是对因果关系抽取领域数据库标注及开源情况的统计.除了对因果关系的标注,一些类似的语料也包含在内,从而为语料的使用提供灵活性,可以根据不同的目标选取 ...

  7. 有相关性就有因果关系吗,教你玩转孟德尔随机化分析(mendelian randomization )

    流行病学研究常见的分析就是相关性分析了. 相关性分析某种程度上可以为我们提供一些研究思路,比如缺乏元素A与某种癌症相关,那么我们可以通过补充元素A来减少患癌率.这个结论的大前提是缺乏元素A会导致这种癌 ...

  8. VAR向量自回归模型学习笔记2

    向量自回归模型 今天的你 和昨天的你 和前天的你,是否具有相关性. 1. 定义 向量自回归(VAR,Vector Auto regression)分析联合内生变量间的动态关系 联合:n个变量间的相互影 ...

  9. Vector Clock/Version Clock

    physical clock 机器上的物理时钟,不同的机器在同一个时间点取到的physical clock不一样,之间会存在一定的误差,NTP可以用来控制这个误差,同一个机房内的机器之间的时钟误差可以 ...

随机推荐

  1. Spring Boot 访问到页面返回数据乱码

    在@RequestMapping注解中增加produces="application/json;charset=UTF-8"即可 例如:@RequestMapping(value ...

  2. @清晰掉 swap函数

    swap函数估计是一个各种各样程序都会频繁用到的子程序,可是你知道它究竟有多少种不同的写法吗?下面我就列举我知道的几种swap函数来跟大家分享一下. (1)经典型---嫁衣法 无论是写程序还是干其他事 ...

  3. PostgreSQL 实现按月按年,按日统计 分组统计

    endtime 是 timestamp select to_char(endtime, 'YYYY-MM-DD') as d , count(objectid) FROM sde.polygon wh ...

  4. Spring Cloud的几个组件

    在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现.服务消费.负载均衡.断路器.智能路由.配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统.一个简答的微服务系统如下图: ...

  5. symbol,iterator,generator

    1.symbol是在ES6中引入的一种基本数据类型,因为symbol是不重复.唯一的数据特性,symbol设计是被用来表示对象内部的私有属性的.     symbol.for与symbol.keyfo ...

  6. 阶段3 1.Mybatis_09.Mybatis的多表操作_3 完成account的一对一操作-通过写account的子类方式查询

    先把多表查询的sql语句写出来 想要显示的字段 创建一个AccountUser类 继承Account.这样它就会从父类上继承一些信息 这里只需要定义username和address就可以了 .然后生成 ...

  7. ES6标准入门 第三章:变量的解构赋值

    解构赋值:从数组和对象中提取值,对变量进行赋值. 本质上,这种写法属于“匹配模式”:只要等号两边的模式相同,左边的变量就会被赋予对应的值. 1.数组的结解构赋值 基本用法 let [foo, [[ba ...

  8. Java中的内存泄露 和 JVM GC(垃圾回收机制)

    一.什么是Java中的内存泄露? 在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点, 首先,这些对象是可达的,即在有向图中,存在通路可以与其相连:其次,这些对象是无用的,即程序以 ...

  9. tensorflow学习之tf.assign

    tf.assign(ref, value, validate_shape=None, use_locking=None, name=None), 函数功能是将value赋值给ref ref必须是tf. ...

  10. linux/work

    0.切换用户 //默认root用户是无固定密码的,并且是被锁定的,如果想给root设置一个密码 sudo passwd root //输入密码 & 确认密码 //切换root用户 su roo ...