我在数据上实现了一个自举,但是当我想打印方差 - 协方差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)
数据是用rnorm(n)
生成的,我们假设存在自相关。
我想为每个引导程序提供不同的var-covar HAC矩阵,因为我需要对每个引导程序执行Wald测试。我该如何解决这个问题?
答案 0 :(得分:1)
您的代码当前为您创建的所有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
并使用noe prewhite
ning,从个人lm
(如上所述)和多变量mlm
获得的标准错误(你用的)实际上会重合。因此,如果您采用多变量方法,您甚至可以节省一些时间。但是,如果使用效率较低的循环/应用,则代码及其结果可能更易于理解。如果时间不是一个严重的问题,我会怎么做。