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

加速提前一步的预测(而不是使用rollapply),r,time-series,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

我使用
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)
require(fGarch)
需要(动物园)
数据(欧洲股票市场)
达克斯
  • 最近版本的
    rollapply
    (如zoo 1.7-6)中存在一个bug,该bug没有导致错误答案,但确实导致其运行速度比需要的慢得多。尝试开发版本(成为zoo 1.7-7),看看是否足以满足您的需求:

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

  • 您还可以尝试测量函数占用的时间百分比(请参见
    ?Rprof
    ),如果它很大,即
    total.pct
    for
    FUN
    很大,那么寻找
    rollapply
    替代方案是毫无意义的

  • 最近版本的
    rollapply
    (如zoo 1.7-6)中存在一个bug,该bug没有导致错误答案,但确实导致其运行速度比需要的慢得多。尝试开发版本(成为zoo 1.7-7),看看是否足以满足您的需求:

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

  • 您还可以尝试测量函数占用的时间百分比(请参见
    ?Rprof
    ),如果它很大,即
    total.pct
    for
    FUN
    很大,那么寻找
    rollapply
    替代方案是毫无意义的


  • 谢谢!它把整个事情削减了大约一半。之前:
    用户系统已运行206.36 2.46 226.04
    ;之后:
    用户系统运行122.30 0.31 123.04
    。所以这很有帮助。但可能还有更多的可能性:)现在我有了很多,我是否认为将整个东西转换成
    ts
    对象需要很大的一部分?是否有解释
    Rprof
    输出的资源。谢谢!非常感谢你!因为我们似乎已经在一个答案上达成一致,所以我删除了我的评论,并将它们转移到一个答案上。非常感谢!它把整个事情削减了大约一半。之前:
    用户系统已运行206.36 2.46 226.04
    ;之后:
    用户系统运行122.30 0.31 123.04
    。所以这很有帮助。但可能还有更多的可能性:)现在我有了很多,我是否认为将整个东西转换成
    ts
    对象需要很大的一部分?是否有解释
    Rprof
    输出的资源。谢谢!非常感谢你!因为我们似乎已经在一个答案上达成了共识,所以我删除了我的评论,并将它们转移到了一个答案中。