我想在包含两个滞后的回归模型中进行回归系数的自举。我有一个snp_ret向量,它的返回值是从quantmod获得的。数据如下:
head(snp_ret)
ret
1998-10-13 -0.2920975
1998-10-14 1.0728374
1998-10-15 4.0882022
1998-10-16 0.8489058
1998-10-19 0.5635226
1998-10-20 0.1448549
获得系数的引导应该很简单:
getC=function(myData){
return(coef(lm(formula = dyn(ret ~ lag(ret, c(-1,-9))), data=myData) ))
}
tsboot(snp_ret, getC, R = 100, l = 18, sim = "fixed")
出现以下错误:
合并时出错。zoo(ret,lag(ret,c(-1,-9((,retclass="list",all=TRUE(:序列不能与序列中的非唯一索引项合并
我怀疑这与回归有两个滞后有关,但不知道如何进行。
如果可能的话,请帮忙。
好吧,我找到了一个变通方法,所以也许其他人会对此感兴趣。。。使用arima函数而不是滞后运算符有帮助。
getC <- function(myData) {
reg <- suppressWarnings(arima(myData, order = c(9, 0, 0), fixed = c(NA, 0,0,0,0,0,0,0,NA,NA)))
return((coef(reg)[c(1,9,10)]))
请注意,arima有一种奇怪的选择滞后的方法——你必须强制将不想包括的滞后系数为零