Granger因果关系检验是研究两个变量是否存在因果关系的常用方法。因果性检验假定了有关x和y每一变量预测的信息全部包含在这些变量的时间序列中,检验构造的回归模型为:
式中:
和
分别为时间序列,
和
分别为白噪声,并假设它们之间不相关,
和
分别为滞后阶数,
分别为系数。
两个回归模型的原假设是:
,
如果
在总体上显著不为0,而
在总体上显著等于0,那么可认为存在x到y的单向因果,即x是引起y变化的原因,反之,可认为存在y到x的单向因果,即 y是引起x变化的原因。如果
,
在总体上都显著不为0,那么可认为y,x存在双向因果关系。
怎么检验
呢?再增加一个模型:
原假设:
我们可以构造统计量
定义:Times_Granger(Y:Array,X:Array;Q:Integer,Alpha:Real):Array
说明:Granger因果检验,原假设:X不是Y的Granger原因,输出检验的F统计量,P值,以及Hypothesis值,Hypothesis为1表示接受原假设,0表示拒绝原假设
参数:
Y:被解释变量,为一维数组类型
X:解释变量,为一维数组类型
Q:滞后阶数,为整数类型
Alpha:显著性水平,为实数类型,一般在0-1之间
定义:Times_GrangerCausality(Y:Array, Q:Integer):Array
说明:进行多元时间序列的Granger因果分析,原假设:输出结果的第二列不是第一列的Granger原因
参数:
Y:多元时间序列数据,二维数组,每行为一时间,每列为一指标
Q:滞后阶数,为整数类型
输出结果:
第["result"]列 :Granger因变量,结果
第["cause"]列 :Granger自变量,原因
第["F-Stat"]列 :F统计量
第["P-Value"]列:F统计量的P值
只说明该函数的用法,不考虑实际背景应用,我们继续使用招商银行,浦发银行的收盘价数据来做Granger因果检验。
return Times_GrangerCausality(close1|close2,2);
结果:
array(("result":0,"cause":1,"F-Stat":123.8121,"P-Value":0.00),
("result":1,"cause":0,"F-Stat":1.5181,"P-Value":0.2201))
1是0的Granger原因,0不是1的Granger原因。即浦发银行是招商银行股价波动的原因。