我使用rollapply
来创建GARCH(1,1)模型(garchFit
)的一步预测。下面提供了一个示例:
require(fGarch)
require(zoo)
data(EuStockMarkets)
dax <- diff(log(EuStockMarkets))[,"DAX"]
gfit <- function(df)
{
series <- df
capture.output(gf <- garchFit(formula=~arma(0,0) + garch(1,1), data=series), file='NUL')
g <- predict(gf, n.ahead=1)[,2]
attributes(g) <- NULL
return(g)
}
rolling <- rollapply(dax, width=250, FUN=gfit)
然而,这需要相当长的时间。所以我的问题是:有没有一种加速这种方法的方法?
答案 0 :(得分:4)
rollapply
的最新版本(例如动物园1.7-6)中存在一个错误,该错误未导致错误答案但确实导致其运行速度比需要的慢得多。尝试开发版本(成为动物园1.7-7),看看它是否足以满足您的需求:
install.packages(“zoo”,repo =“http://r-forge.r-project.org”)
您还可以尝试衡量您的函数占用的时间百分比(请参阅?Rprof
),如果它的大,即total.pct
FUN
很大,那么它没有意义寻找rollapply
替代品。