ускорить прогнозирование на один шаг вперед (вместо использования rollapply) - PullRequest
1 голос
/ 13 декабря 2011

Я использую rollapply для создания прогноза на 1 шаг вперед по модели 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 Ответ

4 голосов
/ 14 декабря 2011
  1. В последних версиях rollapply (таких как zoo 1.7-6) была ошибка, которая не приводила к неправильным ответам, но заставляла ее работать намного медленнее, чем нужно. Попробуйте версию для разработчиков (чтобы стать зоопарком 1.7-7) и посмотрите, достаточно ли этого для ваших нужд:

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

  2. Вы также можете попытаться измерить процент времени, затраченного вашей функцией (см. ?Rprof), и если он большой, то есть total.pct для FUN, значит, его бессмысленно искать rollapply альтернативы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...