如果您查看包手册,则清楚地写明测试分布为F(pK1k2, KT-n*)
其中 K=k1+k2 和 n* 等于上述 VAR(p) 中的参数总数(包括确定性回归量)。此外,为了测试,内生变量 yt 的向量被分成两个子向量 y1t 和 y2t,维度为 (K1×1) 和 (K2×1),K=K1+K2。
您还可以输入causality
控制台并查看以下内容:
df1 <- p * length(y1.names) * length(y2.names)
df2 <- K * obs - length(PI)
示例:使用加拿大数据
library(vars)
var.2c <- VAR(Canada, p = 2, type = "const")
causality(var.2c, cause = "e")
> dim(Canada)
[1] 84 4
Causality(var.2c, cause = "e")
$Granger
Granger causality H0: e do not Granger-cause prod rw U
data: VAR object var.2c
F-Test = 6.2768, df1 = 6, df2 = 292, p-value = 3.206e-06
原因变量为 1,因此 k1=1,k2=3 (4-1) 其中 4 是变量总数,T 是有效观测数(这里 84-2(lag=2))=82,n*=36 (4 个方程,每个方程有 9 个参数)。所以,df1=2*1*3=6 和 df2=4*82-36=292
注意:在您的情况下 lag p=1,n*=8 (您估计两个模型,每个模型有 4 个参数(我怀疑您也有趋势,所以应该是 4),obs(有效 59-1(lag p=1) ) = 58, k1=1, k2=1 and K=2. 所以, df1=1*1*1=1 and df2=2*58-8=108.