加速提前一步的预测(而不是使用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
forFUN
很大,那么寻找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
forFUN
很大,那么寻找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
输出的资源。谢谢!非常感谢你!因为我们似乎已经在一个答案上达成了共识,所以我删除了我的评论,并将它们转移到了一个答案中。