我在数据上实现了引导,但当我想打印方差协方差HAC矩阵时,结果有点混乱:
tbs <- tsbootstrap(u, nb= 199, b=8, type=c("block")) #bootstrap on residuals
ytbs = tbs
fmtbs <- lm(ytbs ~ x1 + x2 + x3)
covHACtbs <- NeweyWest(fmtbs, lag = 10, prewhite= FALSE, sandwich = TRUE)
数据由< code>rnorm(n)生成,我们假设存在自相关。我希望每个自举都有不同的var-covar HAC矩阵,因为我需要对每个矩阵进行Wald测试。我该如何解决这个问题?
您的代码当前为您创建的所有 199 个引导响应同时估计单个多变量线性模型对象。如果你想对每个复制执行推理,你可以用一些for(i in 1:
199)或lapply(1:199, function(i) ...)
方法循环。然后,每个模型将是
fmtbs <- lm(ytbs[,i] ~ x1 + x2 + x3)
coeftest(fmtbs, vcov = NeweyWest(fmtbs,
lag = 10, prewhite= FALSE, sandwich = TRUE))
或类似的东西。具体细节取决于您想要存储的内容。
由于您已经修复了lag
并使用noeprewhite
ning,从单个lm
(如上所述)和多变量mlm
中获得的标准误差(您使用的)实际上是一致的。所以,如果你用多元方法做每一件事,你甚至可以节省一点时间。然而,如果使用效率较低的循环/apply,代码及其结果可能会更智能。如果时间不是一个严重的问题,我会这么做。