1

それぞれ 59 個の観測値を持つ 2 つの変数 (f,m) を持つ VAR(1) モデルを使用します。私はすでに 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
4

1 に答える 1

1

パッケージのマニュアルを見ると、テストはF(pK1k2, KT-n*)K=k1+k2 であり、n* は上記の VAR(p) のパラメーターの総数に等しい (決定論的リグレッサーを含む)として配布されることが明確に書かれています。さらに、テストのために、内生変数 yt のベクトルは、次元 (K1×1) および (K2×1) (K=K1+K2) を持つ 2 つのサブベクトル y1t および y2t に分割されます。

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 (それぞれ 9 つのパラメーターを持つ 4 つの方程式)。したがって、df1=2*1*3=6 および df2=4*82-36=292

注:あなたの場合、ラグp = 1、n * = 8(それぞれに4つのパラメーターを持つ2つのモデルを推定します(トレンドもあると思われるので、4になるはずです)、obs(有効な59-1(ラグp = 1) ) = 58, k1=1 , k2=1 および K=2. したがって、df1=1*1*1=1 および df2=2*58-8=108.

于 2013-09-06T21:52:55.283 に答える