加快提前一步预测(而不是使用rollapply)

时间:2011-12-13 11:09:32

标签: r time-series

我使用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)

然而,这需要相当长的时间。所以我的问题是:有没有一种加速这种方法的方法?

1 个答案:

答案 0 :(得分:4)

  1. rollapply的最新版本(例如动物园1.7-6)中存在一个错误,该错误未导致错误答案但确实导致其运行速度比需要的慢得多。尝试开发版本(成为动物园1.7-7),看看它是否足以满足您的需求:

    install.packages(“zoo”,repo =“http://r-forge.r-project.org”)

  2. 您还可以尝试衡量您的函数占用的时间百分比(请参阅?Rprof),如果它的大,即total.pct FUN很大,那么它没有意义寻找rollapply替代品。