i use 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)
然而,这需要相对较长的时间。所以我的问题是:有没有一种方法可以加快速度?
-
最近版本有一个错误rollapply
(例如zoo 1.7-6)不会导致错误的答案,但确实会导致其运行速度比需要的慢得多。尝试开发版本(成为zoo 1.7-7),看看是否足以满足您的需求:
install.packages("zoo", repo = "http://r-forge.r-project.org")
您还可以尝试测量函数占用的时间百分比(请参阅?Rprof
)并且如果它很大,即total.pct
for FUN
很大,那么寻找就没有意义了rollapply
备择方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)