精华内容
下载资源
问答
  • 这个工具箱由萨克勒意识科学中心开发, 英国萨塞克斯大学提供 MATLAB 例程以实现高效准确多元格兰杰因果关系的估计和统计推断时间序列数据,如下所述: Lionel Barnett 和 Anil K. Seth,“MVGC 多元格兰杰因果关系...
  • 块状格兰杰因果关系和块状新因果关系
  • 该压缩包内为非线性格兰杰因果关系检验代码,欢迎大家下载
  • 格兰杰因果关系与新因果关系揭示了沪深300现货与其指数期货之间的因果关系
  • 格兰杰(Granger)于 1969 年提出了一种基于“预测”的因果关系(格兰杰因果关系),后经西蒙斯(1972 ,1980)的发展,格兰杰因果检验作为一种计量方法已经被经济学家们普遍接受并广泛使用,尽管在哲学层面上人们对...
  • 比较分析:格兰杰因果关系和新因果关系及其在运动意象中的应用
  • Kutz于2016年9月发表在《物理评论E》上的“推断网络动态系统中的连接性:使用格兰杰因果关系的挑战”所使用的代码。 我们对因果网络结构已知的非线性模型生成的数据进行成对条件格兰杰因果关系测试。 具体来说,我们...
  • 逐段格兰杰因果关系的缺点/局限性和逐段新因果关系的进展
  • 格兰杰因果关系检验的局限性

    万次阅读 2018-08-08 17:19:59
    好久没有写博客了,今天翻译一篇描述格兰杰因果关系检验局限性的文章,前面关于格兰杰因果关系检验的介绍来自我个人的经验,原文看这里:Limits of Granger Causality。 一. 格兰杰因果关系 格兰杰因果关系是由...

    好久没有写博客了,今天翻译一篇描述格兰杰因果关系检验局限性的文章,前面关于格兰杰因果关系检验的介绍来自我个人的经验,原文看这里:Limits of Granger Causality

    一. 格兰杰因果关系

    格兰杰因果关系是由格兰杰提出的一种基于预测的因果关系。可以简单理解为如果某个信息可以影响某一个事件的发生,则这个信息便于这个事件有因果关系,公式如下:

    举个例子:A和B是两只不相上下的球队,小明在赌球下注的时候,选择A或B胜的概率各为0.5,但是假如这个时候,小明知道了本场球赛A球队参与了赌球,此时小明在下注的时候选择B胜的概率就会大很多,这个时候,我们可以认为小明知道的这个信息与小明下注存在着因果关系。

    二. 格兰杰因果关系检验

    格兰杰因果关系检验的基本思想:格兰杰因果关系+向量自回归模型

    格兰杰因果关系检验的步骤如下:

    通过这种方法,就可以检测两个序列之间是否存在一个序列的变动引起另一个序列的变动,如下图:

    注意,格兰杰因果关系检验要求序列必须是平稳的。

    三. 格兰杰因果关系检验的局限性

    (1)格兰杰因果关系检验对时间的选取十分敏感。

    这个地方我理解为格兰杰因果关系检验的稳健性比较差。

     

    举个例子,如果夏季伊利诺伊州和印第安纳州出现干旱,那么爱荷华州的玉米价格可能会上涨。这个例子在过去几十年的美国市场中总是成立的,但是自08年左右,美国推广使用了地下水灌溉技术,因此08年之后,干旱高温等天气状况对爱荷华州的玉米价格的影响就不是那么明显了。这个时候,如果对整个时间段使用格兰杰因果关系检验,你就会发现,格兰杰因果关系检验得不到爱荷华州的玉米价格和干旱或气温之间的关系。

    这说明格兰杰因果关系检验极其脆弱,几个不符合规律的坐标就可能导致整个检验模型的失效。

    未完待续

    展开全文
  • 格兰杰因果关系检验

    千次阅读 2020-02-13 16:53:22
    进行格兰杰因果关系检验的一个前提条件是时间序列必须具有平稳性,否则可能会出现虚假回归问题。 因此在进行格兰杰因果关系检验之前首先应对各指标时间序列的平稳性进行单位根检验(unit root test)。 常用增广的迪基...

    进行格兰杰因果关系检验的一个前提条件是时间序列必须具有平稳性,否则可能会出现虚假回归问题
    因此在进行格兰杰因果关系检验之前首先应对各指标时间序列的平稳性进行单位根检验(unit root test)。
    常用增广的迪基—富勒检验(ADF检验)来分别对各指标序列的平稳性进行单位根检验。

    实证检验步骤:
    (1)先做单位根检验,看变量序列是否平稳序列,
    若平稳,可构造回归模型等经典计量经济学模型;
    若非平稳,进行差分,当进行到第i次差分时序列平稳,则服从i阶单整(注意趋势、截距不同情况选择,根据P值和原假设判定)。

    (2)若所有检验序列均服从同阶单整,可构造VAR模型,做协整检验(注意滞后期的选择),判断模型内部变量间是否存在协整关系,即是否存在长期均衡关系。
    如果有,则可以构造VEC模型或者进行Granger因果检验,检验变量之间“谁引起谁变化”,即因果关系。

    缺陷:
    格兰杰因果对时间的选取很敏感

    【比如】:每年菜到了供应不足的季节,价格就会升高。但是由于大棚技术,任何时候都保持稳定价格,格兰杰因果关系检验则无法检测出供给与价格之间的因果关系。

    Granger-Geweke 因果关系:
    两个平稳的一维时间序列Xt和Yt,相对于只从序列Yt获得的信息,如果由Xt和Yt共同获得的信息可以提高对Yt的预测精度,那么就存在由Xt到Yt的Granger-Geweke 因果关系。Xt和Yt r 的p 阶自回归形式如下:

    在这里插入图片描述

    展开全文
  • 格兰杰因果关系 这个库是 CWJ Grangers 流行的因果关系指标指标的 Java 实现,也称为 。 实现遵循他 1969 年的论文 [1]。 格兰杰因果关系的简单描述如下:“变量x的历史信息有助于预测变量y吗?” 还有其他 Granger-...
  • 研究了大规模无线局域网内的流量特性,发现不同接入点间的流量存在格兰杰因果关系。流量的格兰杰因果关系说明,可以通过多个存在因果关系的接入点的历史流量,提高对目标接入点的当前流量预测的准确性。通过贝叶斯...
  • 昨日,一位朋友来问我格兰杰因果关系检验的操作问题,帮助完后发现,格兰杰因果关系检验非常具有实际意义,今天通过比特币的案例分享给大家。 本篇文章将会给大家介绍格兰杰因果关系检验的理论原理和python操作流程...

    昨日,一位朋友来问我格兰杰因果关系检验的操作问题,帮助完后发现,格兰杰因果关系检验非常具有实际意义,今天通过比特币的案例分享给大家。

    本篇文章将会给大家介绍格兰杰因果关系检验的理论原理和python操作流程。

    Python操作流程

    导入数据

    首先,我们需要加载所需的包,并导入数据

    import pandas as pd
    import statsmodels.tsa.stattools as sm
    data = pd.read_csv('F:\\公众号\\python\\【案例】数据分析---格兰杰因果关系检验\\虚拟货币数据.csv',header = 0)
    

    在这里插入图片描述
    说明:
    pd.read_csv(filepath_or_buffer,header=0,names=None)
    (1)filepath_or_buffer : 路径 URL 可以是http, ftp, s3, 和 file;
    (2)header:指定第几行作为列名(忽略注解行),如果没有指定列名,默认header=0; 如果指定了列名header=None;
    (3)names:指定列名,如果文件中不包含header的行,应该显性表示header=None。
    pd.read_csv()的其它参数的介绍可看文末链接

    格兰杰因果关系检验

    接下来,就可以利用统计工具包里的.grangercausalitytests()进行检验了,这里呢我就以比特币(BTC)和以太币(ETC)来进行检验,其它的检验可由读者们自行操作。
    首先,我们先以BTC为“果”,以ETC为“因”进行检验

    result_1 = sm.grangercausalitytests(data[['BTC','ETC']],25)
    

    在这里插入图片描述
    从结果可以发现,不论滞后多少期,都没有足够的证据拒绝原假设,说明以太币都不是比特币价格的影响原因;

    紧接着我们再以ETC为“果”,以比特币为“因”进行检验:

    result_2 = sm.grangercausalitytests(data[['BCH','BTC']],25)
    

    在这里插入图片描述
    我们发现,在滞后期为6、7、8时,拒绝了原假设,说明比特币是以太币价格的影响原因。

    使用grangercausalitytests()时常见的错误

    在这次案例的过程中,曾发生过一个错误,因为比特币的数据文件里的数据储存是按货币的规则储存,即:
    在这里插入图片描述
    因此在使用grangercausalitytests()时产生了下图的报错:
    在这里插入图片描述
    这是因为数据文件中的数字包含了其它符号例如“,”,无法将该字符串转换为浮点类型的数字,所以在导入数据前,各位小伙伴务必先检查数据。

    格兰杰因果关系检验理论原理

    格兰杰因果关系检验介绍

    格兰杰因果关系检验方法为2003年诺贝尔经济学奖得主克莱夫·格兰杰(Clive W. J. Granger)所开创,用于分析经济变量之间的格兰杰因果关系。

    在时间序列情形下,两个经济变量X、Y之间的格兰杰因果关系定义为:若在包含了变量X、Y的过去信息的条件下,对变量Y的预测效果要优于只单独由Y的过去信息对Y进行的预测效果,即变量X有助于解释变量Y的将来变化,则认为变量X是引致变量Y的格兰杰原因。

    进行格兰杰因果关系检验的一个前提条件是时间序列必须具有平稳性,否则可能会出现虚假回归问题。因此在进行格兰杰因果关系检验之前首先应对各指标时间序列的平稳性进行单位根检验(unit root test)。常用增广的迪基—富勒检验(ADF检验)来分别对各指标序列的平稳性进行单位根检验。

    格兰杰因果关系检验的步骤

    (1)利用OLS法,估计两个回归模型
    在这里插入图片描述
    并计算各自的残差平方和RSS1和RSS2;

    (2)原假设是H0:β1=β2=⋯=βk=0,即滞后项x不能显著增加回归模型的解释能力。因此,构造统计量:
    在这里插入图片描述
    其中n为样本容量,s,k均为参数个数;
    (3)利用F统计量检验原假设,对于给定的显著性水平α,若F=Fα则拒绝H0,认为βi中至少有一个显著的不为零,即X是引起Y变化的原因。反之,则不认为。

    pd.read_csv()的参数介绍:https://blog.csdn.net/weixin_44056331/article/details/89366105

    获取代码

    以下是我的个人公众号,该篇的数据和代码可在公众号中回复“格兰杰因果关系检验”即可获得,谢谢大家支持。
    在这里插入图片描述

    展开全文
  • 格兰杰因果关系在经济学和生物学领域已有广泛的应用,其在计算过程中要求变量的个数远远小于时间序列的长度.为了解决实际应用中“维数灾难”的难题,把格兰杰因果关系法应用到复杂网络中.首先,利用两变量格兰杰因果...
  • 漫谈格兰杰因果关系(Granger Causality)

    万次阅读 多人点赞 2018-07-02 11:41:10
    二:格兰杰因果关系原理是什么? 1).预测究竟是怎样实现的? 2).误差究竟是怎样产生的? 3).X和Y是怎样共同联合预测的 ? 三:求解格兰杰因果关系的标准化流程是什么 ? 简介 ...

    #目录

    文章目录


    #简介
    格兰杰因果关系作为一种可以衡量时间序列之间相互影响关系的方法,最近十几年备受青睐。无论是经济学[1],气象科学[2],神经科学[3]都有广泛的应用,尽管后两者(气象和神经科学)连格兰杰自己都反对(格兰杰反对将格兰杰因果关系用在除经济学以外的其他领域,这就是本文题目所谓的“野火”)[4]。鉴于笔者从未在气象学有过半分建树,所以不敢妄谈。不过庆幸的是,经过神经科学家数十载的辛苦“洗地”,他们纷纷找到了自己‘合法’使用格兰杰因果关系的理由[5]。除了由克里夫·格兰杰本人提出的格兰杰因果关系之外,还有数种围绕格兰杰因果关系方法产生的变体,本文也将对这些变体分门别类,做出一些简介。当然,也正是因为胡先生认为应当遵从格兰杰爵士的论文,所以才创立了‘新因果关系’专门解决神经科学中的因果关系使用问题,不过这是后话了。
    一般口头上所称的格兰杰因果关系全称是“格兰杰因果关系检验”(Granger causality test),看到这里,诸位看官大可以感叹一句“啊哈!原来格兰杰因果关系是统计假设检验的一种!”。那么“因果”二字又要从何谈起呢?这就要从时间序列间的关系开始说起。格兰杰是这样定义“因果”的。现在我们假设有一个时间序列X,它是由不同时间的采样点{x1,x2,x3,……,xn}共同组成的。同X一样,我们假设有时间序列Y,它形如X,由{y1,y2,y3,……,yn}共同组成。现在我们利用X的过去预测X的未来,比如用x1 xn-j(这就是X的过去)预测xn-j+1xn(这就是X的未来),预测的过程中产生一个误差δ1(请先忽略预测的具体方法和误差产生的具体方法),然后把这个误差视为我们得到的第一个结果。再然后利用X和Y共同的过去预测X的未来,比如用{x1 xn-j(这就是X的过去)|y1yn-j(这就是Y的过去)}预测xn-j+1~xn(这就是X的未来),预测的过程中产生一个误差δ2(请先忽略“X和Y是怎样共同的 ?”这个问题) ,然后把这个误差视为我们得到的第二个结果。如果δ1大于δ2,也就是说X和Y的联合预测误差小于X自身的预测误差,那么,必然是因为Y对X的预测起到了帮助,所以才减小了预测误差。在这种情况下,我们称Y对X有格兰杰因果关系。
    ##二:格兰杰因果关系原理是什么?
    这一节里,我们要重点解决上一节中出现的几个问题。即1).预测究竟是怎样实现的?;2).误差究竟是怎样产生的?;3)X和Y是怎样共同联合预测的 ? 在讲解这些问题之前。有一个非常重要的概念——回归问题,必须预先铺垫,否则,这三个问题无从下手。为了方便理解,我们在二维空间中表述这个问题,当然这个问题也可以被拓展到高维空间。当然,如果某位看官确保自己已经弄清楚了回归问题,那么可以直接跳到回归问题讲完之后的部分。
    自回归问题讲解开始:
    现假设存在一系列二维空间点的集合S={x1,x2,x3,……,xn }。如图1所示。现在我们想找到一条线,这条线最好穿过点集S中的每一个点。这些点包含一个隐变量T。这样,当找到这条线的时候,我们实际上找到了代表这条二维空间中的线的一个表示函数x = f(t)。
    这里写图片描述
    那么怎样找到这条线呢?
    STEP1,你需要假定这条线来源于一个阶数为m的函数。如果你的假设是阶数为3,那么这个函数就是一个形如x = f(t) = a0+a1t1+a2t2+a3t3 的函数。集合S中的每一个点都必须要满足(或尽力满足)x = f(t)这个公式。就拿第一个点[t1,x1]举个栗子:x1 = f(t) = a0+a1t11+a2t12+a3t13。当然,我们知道这条线y=f(x)完美的经过每一个点近乎是不可能的,因此我们允许误差的存在。只要y = f(x)+ε 即可,其中ε代表误差项,并且ε服从正态分布(有时也称高斯白噪声,高斯分布)。
    STEP2,尝试求出系数a0~am满足STEP1的要求,使得对于点集S中所有的点满足x = f(t)+ε。一般情况下,求解系数a0~am 最常见的方法就是最小二乘法。最小二乘法的具体步骤这里不再描述。一般可以通过matlab函数polyfit进行求解,代码如下。求解结果如图2。

    X=[4,3.5,3.6,2.1,4,6,5.7,5,4];
    a = polyfit(1:9,X,3);
    T_new = 0:0.1:10;
    X_new = polyval(a,T_new);
    plot(1:9,X,'r*');hold on;
    plot(T_new,X_new,'b-');
    

    在上述代码中,polyfit就是拟合参数,它负责根据时间变化1:9以及自变量X将参数a求解出来,注意,a在此处是个数组,由a0~a3组成。polyval函数根据参数数组a和点集T_new求解X_new。而绘制[T_new, X_new]就是图2中的蓝色曲线。
    这里写图片描述

    图2
    可能细心的同学能发现,图1和图2中,时间轴T的值域不一样。在图1中,T轴的值域是19;图2中,x轴的值域110。而这多余出来的X10其实可以被视为我们根据已有数据集[X1-9]预测出来的未来的数据[X10]。
    总之,自回归问题的一般形式就是给出一系列点集[T,X],然后想办法找到一个函数X = f(T) 。我们要想法找到一系列参数a,使得函数代表的这条线尽可能经过点集。
    自回归问题讲解结束。
    讲完了自回归问题,以下两个问题就可以得到完美的解答:
    同本文的开始相同,现在我们假定拥有两个时间序列X:{x1,x2,x3,……,xn }下标代表时间T从1到n,n是实数。
    ###1).预测究竟是怎样实现的?
    读到这里时,我假设各位看官已经弄清楚了我在上面所述的回归问题。但是格兰杰因果关系中的回归问题同原问题的原理相同但过程有所不同。且听我慢慢道来他们的不同之处:
    不同之处一:在回归的原问题中,我们以时间轴T为横坐标尽力求解自变量X。试图找到时间轴T同自变量X之间的关系。即X = f(T)。比如我们在上式中举出的例子里X = f(T) = a0+a1T1+a2T2+a3T3(请注意:这个问题实际上是三阶问题,‘阶’ 是指除了a0之外,还有几个参数a。例子中的回归问题其实是一个非线性回归(次数为一才是线性的))。在回归问题的末尾,我们说过,回归问题的本质是要找到一系列的参数a,因此,我们在例子中举到的3阶形式,存在的具体形式如下:
    X = f(T) = a0+a1t11+a2t12+a3t13(式一)······普通回归问题(三阶一次问题(线性回归))
    在格兰杰因果关系中,自回归模型就是类似于这种的一阶形式。但是它不再是T映射到X上的函数,而是过去的X映射到现在的X上的函数,即
    X_now = f(X_past),在考虑过去三个点的情况下,这个问题就变成了
    xt =a1xt-1+a2xt-2 +a3xt-3(式二)······格兰杰回归问题(注意到没有常数项)
    既然在式一中,知晓T和X,进而求解一些列参数a不成问题,那么在这里,知晓时间序列上的X,进而求解一系列参数a也不是问题。
    不同之处二:
    既然是回归问题就要涉及到回归阶数order的选择问题。通过不同之处一,我们知晓,在格兰杰因果关系检验中,阶数的作用更像是在指明采用过去的多少个点对当前点的点求解回归问题。因此阶数order有了一个崭新的名字:lag(迟延,迟滞)。在阐述回归问题的时候,我们假设迟滞lag=3,然后使用最小二乘法拟合了点集S。实际上,为了简化最小二乘拟合的问题,笔者武断的设置了迟滞lag=3而并没有采取适当地方法对lag应有的值做出选择。在格兰杰因果关系的计算过程中,针对阶数的选择方法大致可以分为三类:I. Akaike information criterion(赤池信息准则,简称AIC);II. Bayes information criterion(贝叶斯信息准则,简称BIC);III Rule of thumb(凭经验选择lag)。虽然最后一种给人感觉似乎不正规,但实际上,最后一种方法也是获得专家认可的(详见Anil Seth的论文对格兰杰因果关系的描述 )。为了保证讲解的条理清晰性,这三种lag选择方法的具体计算流程这里不再详表,而是放到第五章代码实现中直接给出。这里请把阶数的获得方法当做一个黑盒过程。我们通过某种阶数选择方法得到迟延lag = m(在这里注意一个隐含条件,迟延m一定小于数据段长度n,且m是实数),那么针对这个迟延lag,预测流程即为:
    利用时间范围T:1lag上[X1lag]的点预测[lag+1]上的点[Xlag+1],这里Xplag+1是通过预测得出来的Xlag+1 ,Xlag+1-Xplag+1产生误差ε1。
    利用时间范围T:2lag+1上[X2lag+1]的点预测[lag+2]上的点[Xlag+2],这里Xplag+2是通过预测得出来的Xlag+2 ,Xlag+2-Xplag+2产生误差ε2。
    利用时间范围T:3lag+2上[X3lag+2]的点预测[lag+3]上的点[Xlag+3],这里Xplag+3是通过预测得出来的Xlag+3 ,Xlag+3-Xplag+3产生误差ε3。
    …………
    利用时间范围T:n-lagn-1上[Xn-lagn-1]的点预测[n]上的点[Xn ],这里Xpn是通过预测得出来的Xn ,Xn-Xpn产生误差εn-lag。
    以上的过程可以看作是一个预测窗函数不断滑动实现的,如图三:

    这里写图片描述
    图3
    到这里,我们便知道,所谓的预测,就是通过最小二乘法注意预测紧挨着滑动窗口之后的那个点的值。与此同时产生预测值的预测误差ε
    ###2).误差究竟是怎样产生的?
    在上一节里,我们了解了预测的来源。本节里,我们解释总体误差的产生方式。从第一个问题我们可以得知,对一个长度为n的数据段,我们需要进行n-lag次预测,每一次预测都会产生一个误差项。而在文章的一开始,我们提到过对一个长度为n的数据段,我们只需要得出一个误差δ1而不是n-lag个误差。那么总体误差δ1和这n-lag个误差究竟有什么关系呢。答案是,δ1 是自回归误差ε1 ~εn-lag的无偏估计。他们之间的关系表述:
    这里写图片描述

    ###3).X和Y是怎样共同联合预测的 ?
    联合回归问题讲解开始:
    有了自回归问题的基础,相信理解联合回归问题不会是一件难事。为了不失一般性,我们仍然从高阶高次的联合回归讲起,然后回到高阶一次的形式。与自回归问题不同,现在我们假定拥有三个时间序列X:{x1,x2,x3,……,xn },Y:{y1,y2,y3,……,yn },Z:{z1,z2,z3,……,zn } 下标代表时间T从1到n,n是实数。问题从自回归问题的X = f(T)变成了Z = f(X,Y)。我们试图找到自变量X,Y同另一个自变量Z的关系。在限定问题为2次的情况下,针对点集中的第一个点,我们的问题要求解的具体形式为:z1 = a1x12+a2y12+a3x1+a4y1+a5x1y1+a6+ε,拟合函数的目的就是要求出参数
    a1~a6。具体的求解过程不再细说。求解可以通过matlab函数regress实现。该问题在一次状态下的方程为
    z1 = a1x12+a2y12+a3x1+a4y1+a5x1y1+a6+ε (式三) ······联合回归问题
    在格兰杰因果关系中,我们将状态方程转化为X_new = f(X_past,Y_past),假设lag = 3 ,则具体的形式是
    xt = a1xt-1+a2xt-2+a3xt-3+a4yt-1+a5yt-2+ε(式四)······格兰杰联合回归问题(注意到没有常数项)
    注意到,式四中y的lag不一定等于x的lag。(备注:在我们漫谈格兰杰因果关系的最后一章所推荐的GCCN工具箱(Anil Seith著,matlab版)里,y的lag等于x的lag。)
    联合回归问题讲解结束。


    这里,我们给出格兰杰因果关系下的一个一般性的回归公式:
    这里写图片描述

    式五即为式二的一般化形式,而式六就是式四的一般化形式。
    最后我们采用union-regression替代autoregression方法重复‘不同之处二’一节中叙述过的过程:
    利用时间范围T:1lag上[X1lag ,Y1~lag]的点预测[lag+1]上的点[Xlag+1],这里Xplag+1是通过预测得出来的Xlag+1 ,Xlag+1-Xplag+1产生误差ε1。
    利用时间范围T:2lag+1上[X2lag+1 ,Y2~lag+1]的点预测[lag+2]上的点[Xlag+2],这里Xplag+2是通过预测得出来的Xlag+2 ,Xlag+2-Xplag+2产生误差ε2。
    利用时间范围T:3lag+2上[X2lag+2 ,Y2~lag+2]的点预测[lag+3]上的点[Xlag+3],这里Xplag+3是通过预测得出来的Xlag+3 ,Xlag+3-Xplag+3产生误差ε3。
    …………
    利用时间范围T:n-lagn-1上[Xn-lagn-1 ,Yn-lag~n-1]的点预测[n]上的点[Xn ],这里Xpn是通过预测得出来的Xn ,Xn-Xpn产生误差εn-lag。
    在得到一系列的误差后,再一次利用前文中提到的无偏估计方法求解联合回归产生的无偏误差估计δ2。

    最后,一切仿佛又回到了开始:
    假如δ2<δ1则认为,变量Y对变量X有格兰杰因果关系。否则Y对变量X没有格兰杰因果关系。看到这一步,我们已经弄懂了格兰杰因果关系的绝大部分基本原理。大部分看官可以长吁一口气了。然而,事情真的完了吗?答案是:没有完成,还差最后一步。在得到δ2和δ1的值并比较大小之后,我们必须做自回归和联合回归误差的F检验,否则无法判断δ2和δ1值的大小是否有意义。因此,千万不要忘记最后一步F_test(δ2,δ1 )。至于为何要做F检验和F检验的具体方法,请参见笔者之前写的另一篇博文。我确信,如果你是一名研究人员,那篇博文值得一读。

    ##三:求解格兰杰因果关系的标准化流程是什么 ?
    在讲过了格兰杰因果关系的核心思想后,我们就要开始了解一下格兰杰因果关系的标准化流程[6]。可能有人会发出疑问:“我们不是已经在上面介绍了格兰杰因果关系处理的基本流程了吗?这里的标准化过程又是指什么?”这里的标准化流程是指为了求解时间序列间的因果关系而对时间序列数据所做一些基本预处理过程。而这个过程主要是为了保证格兰杰因果关系检验结果的有效性。下面给出格兰杰因果关系的标准化流程的框架图,每一步的原因以及相关的知识点放在之后解释。

    这里写图片描述
    图4

    首先,普及一个概念。什么叫做平稳时间序列?
    粗略的讲,平稳时间序列需要满足以下两个条件
    1)时间序列没有变化趋势(含周期性变化趋势),换言之,它不可以是那种看起来有明显增加或减少的线条。像以下两种就绝非平稳
    这里写图片描述
    这里写图片描述

    2)在时间序列中,任意取出若干段数据并对该若干段数据求方差。则方差间不应该有显著性差异。
    STEP1:数据去趋势化
    由于格兰杰因果关系要求所处理的时间序列必须是平稳时间序列,所以必须要去趋势化。一个去除了趋势化的数据应该如下图所示。可以注意到,该时间序列围绕y=3轴上下波动。
    这里写图片描述

    去趋势化的方法有很多,这里不再详细介绍,第五节提供的matlab工具箱会有相关工具。
    STEP2:数据去均值
    格兰杰因果关系要求时间序列数据必须围绕y=0轴波动而不是像上图中围绕y=3波动,一个去过均值的时间序列应该如下图所示

    这里写图片描述
    在讲解STEP3之前,率先普及一个概念
    平稳时间序列里不含有单位根,非平稳时间序列里一定含有单位根。
    STEP3:ADF检验和KPSS检验
    ADF检验全称 Augmented-Dickey-Fuller test(增广迪肯富乐检验),KPSS检验全称 Kwiatkowski-Phillips-Schmidt-Shin test。这两种检验均称为单位根检验。如果对时间序列数据做单位根检验得出的结论是该时间序列有单位根,则可以肯定该序列一定不是平稳的。
    这里产生了四个问题:
    1)我们不是经过STEP1和STEP2了吗,为何序列仍是不平稳的?
    答:STEP1和STEP2并不保证序列的平稳性,只能使序列看似平稳。因此在完成STEP1和STEP2后,必须进行STEP3以便找到时间序列平稳数学上的证据。
    2)如果时间序列经过STEP1和STEP2后仍然检验不平稳该怎么办?
    答:问得好!解决这个问题正是STEP3的任务。
    3)ADF检验和KPSS检验有什么区别?
    KPSS 是右侧单边检验,原假设是序列是平稳的(不存在单位根)。
    ADF是双边检验,原假设是序列是非平稳的(存在单位根)。
    4)ADF检验和KPSS检验结果不一致怎么办?
    不得不说,这事儿常发生。笔者在网上也好好搜索了一番(2017年7月25日搜索)。网友给出的结论基本分为两派:
    A.“看情况自己选”
    B.“有一个通过就算通过”
    STEP4:一阶差分
    正如同STEP3中所提到的一样,只有当经过STEP1和STEP2后仍然检验不平稳时才会对时间序列数据做差分。那么怎么做差分呢?
    给定时间序列X{x1,x2,x3,……,xn }。则定义差分过的时间序列X_diff为{x2-x1, x3-x2, x4-x3, …, xn-xn-1}。说白了就是后项减前项,这就是差分。差分带来的唯一问题是经过差分后的时间序列长度会缩减1个单位。另一个问题是,如果时间序列仍然不是平稳的该怎么办?答案是再差分一次知道平稳为止。根据笔者的经验,一般差分一次就足够了,很少有出现差分两次的。
    STEP5:通过AIC准则求阶数lag
    AIC信息准则的公式是:AIC=2*lag+nln(RSS/n)。其中,RSS是拟合的残差和(就是之前的误差无偏估计量), n是数据段的长度。我们的目标是搜索在1~n的范围内搜索lag,使AIC的值取得最小。而那个取得AIC最小值的lag就是我们想要的阶数lag
    STEP6:杜尔滨怀特讯检验
    英文名称为Durbin-Watson test。相必大家还记得我们采用最小二乘法求回归问题时曾假设回归后理论值与实际值的误差为ε,且ε服从正态分布。实际上,误差服从正态分布是使用最小二乘法求解回归问题的先决条件。而杜尔滨怀特讯检验的目的就是检测回归完成后的残差是否服从正态分布。如果不服从则该段数据不满足使用最小二乘法的先决条件,也就不满足求解格兰杰因果关系的基础。
    STEP7:一致性检验
    当对时间序列的数据值点完成回归以后。并不能确定回归得出的理论值和实际值是否来自于同一分布。此时,应采用一致性检验。如果一致性检验的结论表明理论值和实际值差距较大,则回归结果失败,需要重新确定回归。

    到这里,格兰杰因果关系的基本原理部分相信大家已经明白了。如果还有不明白的问题以及其他需求,请在站内给笔者留言。笔者将尽快给予相应的回复。后续部分笔者也将抽时间尽快完成。除此之外,本文中如有其它不妥之处,希望诸位看官不吝赐教,小生愿洗耳恭听。

    [1] Testing for Linear and Nonlinear Granger Causality in the Stock Price-Volume Relation
    [2] Spatial-temporal causal modeling for climate change attribution
    [3] Mapping directed influence over the brain using Granger causality and fMRI
    [4] 维基百科,“格兰杰因果关系 ”词条中格兰杰原话:“ Of course, many ridiculous papers appeared”
    [5] Causality connectivity of evolved neural networks during behavior
    [6] RESTING-STATE BRAIN NETWORKS REVEALED BY GRANGER CAUSAL CONNECTIVITY IN FROGS

    展开全文
  • ngc 实现估计图形格兰杰因果关系的方法
  • Granger Causality 格兰杰因果关系

    千次阅读 2017-09-06 17:50:00
    格兰杰(Granger)于 1969 年提出了一种基于“预测”的因果关系(格兰杰因果关系),后经西蒙斯(1972 ,1980)的发展,格兰杰因果检验作为一种计量方法已经被经济学家们普遍接受并广泛使用,尽管在哲学层面上人们对...
  • 格兰杰因果关系检验(原理及R语言应用实例)

    万次阅读 多人点赞 2010-05-14 13:00:00
    诺贝尔经济学奖获得者,计量经济学大师克莱夫·格兰杰(Clive Granger)从预测的角度给出了因果关系的一种描述性定义,这就是我们现在所熟知的Granger因果关系...格兰杰因果关系检验是计量经济方法中常用的一种检验方法
  • 基于格兰杰因果关系磁刺激穴位对亚健康失眠的脑功能网络分析
  • 格兰杰因果检验 matlab代码 Granger Matlab code for frequency-domain Granger causality with significance testing
  • 神经格兰杰因果关系 Neural-GC存储库包含用于在多元时间序列中发现Granger因果网络的基于深度学习的方法的代码。 介绍了此处实现的方法。 安装 要安装代码,请克隆存储库。 您只需要Python 3 , PyTorch (>= 0.4.0) ...
  • matlab_格兰杰因果关系检验

    千次阅读 热门讨论 2018-06-03 22:53:05
    格兰杰因果关系检验:“依赖于使用过去某些时点上所有信息的最佳最小二乘预测的方差。" 主要适用于经济变量。 其统计学本质上是对平稳时间序列数据一种预测,仅适用于计量经济学的变量预测,不能作为检验真正...
  • 文章目录 例子 结果 说明 see also 例子 ##################################################################################### # 构造格兰杰因果关系对,x是因,y是果,y_not不是x的果 import numpy as np np....
  • 本文使用均值和分位数格兰杰因果关系检验,基于2005年至2017年的季度统计数据,研究了企业家信心指数与生产者价格指数(PPI)之间的关系。结果表明,企业家信心指数与PPI之间存在单向因果关系指数。 在不同的分位数...
  • 格兰杰因果关系(Granger causality)是以统计假设检验为基础的,这一观点认为因变量能够帮助目标变量进行预测。更具体地说,如果根据变量x和变量y的过去值的y的自回归模型比仅基于y的过去值的y的自回归模型有更准确...
  • 格兰杰因果关系的内涵:若在包含了变量X、Y的过去信息的条件下,对变量Y的预测效果要优于只单独由Y的过去信息对Y进行的预测效果,即变量X有助于解释变量Y的将来变化,则认为变量X是引致变量Y的格兰杰原因。...
  • 从非线性动态格兰杰因果关系的角度来看,中国的股票价格可以被视为“国民经济晴雨表”。 一方面,这项研究将鼓励研究人员在研究股票价格与宏观经济之间的相关性时考虑到非线性和动力学。 另一方面,我们的研究可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 413
精华内容 165
关键字:

格兰杰因果关系