4

Rでパネルベクトル自己回帰を実行した後にグレンジャー因果関係テストを行う方法(panelvarパッケージを使用)?

パネル VAR を実行するには、次のようにします。

library(plm)
library(panelvar)

set.seed(12345)

x = rnorm(240)
z = x + rnorm(240)
y = rep(rnorm(15), each=16) + 2*x + 3*z + rnorm(240)
country = rep(c("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O"), each=16 )
year = rep(seq(1995, 2010), 15)

panel = cbind.data.frame(country,year,x,z,y)

model <- pvargmm(dependent_vars = c("y", "x", "z"),
                              lags = 1,
                              transformation = "fod",
                              data = panel,
                              panel_identifier=c("country", "year"),
                              steps = c("twostep"),
                              system_instruments = FALSE,
                              max_instr_dependent_vars = 99,
                              max_instr_predet_vars = 99,
                              min_instr_dependent_vars = 2L,
                              min_instr_predet_vars = 1L,
                              collapse = TRUE
)

私の質問は、グレンジャーの因果関係テストを実行する方法です (panelvar はこれを機能として提供しません)。パッケージの関数pgrangertestを使用する必要があるようです。plmただし、pVAR モデルは単純な線形モデルとは異なるため、「式」がどうなるかはわかりません。また、「順序」は、いくつかのラグ オプションを使用して pVAR を実行し、(Andrews_Lu_MMSC 関数によって提供される BIC、AIC などに基づいて) 最適なモデル フィットを提供するものを選択した後に最適であることが判明したラグの数である必要がありますか?

pgrangertest(inv ~ value, data = Grunfeld, order = 2L)

つまり、「inv ~ value」を別のものに置き換える必要があり、その方法が明確ではありません。

y、x、z の相互関係に関心がある場合、pgrangertest を 6 回実行する必要がありますか? 以下は意味がありますか?

pgrangertest(y ~ x, data = panel, order = 2L)
pgrangertest(y ~ z, data = panel, order = 2L)
pgrangertest(x ~ z, data = panel, order = 2L)
pgrangertest(x ~ y, data = panel, order = 2L)
pgrangertest(z ~ x, data = panel, order = 2L)
pgrangertest(z ~ y, data = panel, order = 2L)

pgrangertestでは一度に 2 つの変数しか使用できないことはわかっていますが、3 番目の変数も制御する必要はありませんか?

4

1 に答える 1