【问题标题】:How to get df2 in causality() Granger test in R如何在R中的因果关系()格兰杰测试中获得df2
【发布时间】:2013-09-06 20:58:28
【问题描述】:

我使用带有两个变量 (f,m) 的 VAR(1) 模型,每个变量有 59 个观察值; 我已经看过 R 帮助和几本关于这个主题的书,但不知道如何df2 = 108

library(vars)
var.causal.m <- causality(ajustVAR1FM, cause = "m")
> var.causal.m
$Granger

    Granger causality H0: m do not Granger-cause f

data:  VAR object ajustVAR1FM 
F-Test = 5.9262, df1 = 1, df2 = 108, p-value = 0.01656

【问题讨论】:

    标签: r time-series


    【解决方案1】:

    如果你看到manual这个包,上面写得很清楚,测试分布为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
    

    Cause variable is 1 so 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.

    【讨论】:

      猜你喜欢
      • 2021-09-02
      • 1970-01-01
      • 2017-12-11
      • 2016-06-14
      • 1970-01-01
      • 2021-10-26
      • 1970-01-01
      • 2016-10-25
      • 1970-01-01
      相关资源
      最近更新 更多