【发布时间】:2020-02-28 11:36:48
【问题描述】:
我正在尝试为我的脉冲响应创建自举置信区间。基本上,对于每个变量的每个脉冲响应观察,我需要一个置信区间。用一个我被卡住的例子来展示给你看对我来说更容易。
library(vars)
library(varexternalinstrument)
data(GKdata)
gkvar <- VAR(GKdata[, c("logip", "logcpi", "gs1", "ebp")], p = 12, type = "const")
shockcol <- externalinstrument(gkvar, GKdata$ff4_tc, "gs1")
shockcol
ma_representation <- Phi(gkvar, 50)
irfs <- apply(ma_representation, 3, function(x) x %*% shockcol) #unclear
irfs <- as.data.frame(t(irfs))
colnames(irfs) <- names(shockcol)
irfs
到目前为止一切顺利,我们得到了数据集中 4 个变量的脉冲响应。现在,对于 each 变量中的 each 观察,我想计算自举置信区间。然而,我可能会卡在要插入函数的 statistics 上。我在缺失的代码下方用问号表示我写不出来
? <- function() # I need to create a function that says bootstrap for each observation of each variable, I don't know how to do it
boot <- boot(irfs, ?, R = 1000, stype = "w", sim = "ordinary")
boot_ci <- boot.ci(boot, conf = c(0.90, 0.95), type = c("norm", "basic", "perc", "bca"))
谁能帮我解决这个问题?
非常感谢!
【问题讨论】:
-
嘿,这不是一个简单的引导程序。我不熟悉 GKdata 中的内容,但我想有一些时间序列信息,您可以从中计算脉冲等。如果您引导,您需要对 GKdata 进行采样,以便保留此信息,这样您就可以计算理智的冲动
-
好吧,让我来表达这个问题,你能简单地从 GKdata 中取样并计算脉冲响应等吗?如果这样没问题,那我就可以写启动函数了
-
@StupidWolf 感谢您的关注。为了清楚起见,您是在说“而不是做我想做的事,而是从原始数据集中重新采样并从那里得到我需要的一切”?如果这就是你的意思并且我理解正确,是的,它有效
-
好吧,我想我明白数据是什么了。从参考上看,它是“1979:7至2012:6期间各种经济金融变量的月度数据”。因此,这意味着您以年为单位对数据进行采样。因此 p=12 参数
-
你可以在下面看到,引导程序或多或少是正确的,我不确定为什么你的 c.i 这么大,也许有一些异常值等等我不知道。你更熟悉这个功能比我还
标签: r var confidence-interval statistics-bootstrap