Применение rollapply() к функции с несколькими столбцами

Я пытаюсь использовать rollapply() с использованием скользящего окна шириной 12 с недавно созданной функцией STABFUN (Мульти-колонки). Используемые данные - это набор данных timeSeries (индекс S&P 500 возвращает = SPY). Хотя вновь созданная функция, кажется, работает хорошо, когда я применяю rollapply()Я получаю случайным NaN значения в столбце "pmean".

Вопрос 1: Почему это происходит и как я могу решить проблему?

Вопрос 2: есть ли лучший / более эффективный способ его кодирования?

Вот мой код:

library("quantmod")
library("timeSeries")

data <- na.omit(as.timeSeries(getSymbols("SPY", src = "yahoo")))
returns <- returns(daily2monthly(data[,6]), method = "continuous") # quantifies "continuous" returns

STABFUN <- function(x){
  bcp.x <- bcp(x) # applies the function bcp() to the data
  rtrn <- x[length(x)] # last return value of data
  pmean <- bcp.x$posterior.mean[length(x)] # last posterior mean value
  output <- cbind(rtrn, pmean)
  return(output)
}

# STABFUN(returns) # check that STABFUN works well

rollapply(returns, width = 12, STABFUN, by.column = FALSE) # -> I GET NAN VALUES

Я также понял, что если я использую ширину> 12, я больше не получаю значения NAN.

0 ответов

Другие вопросы по тегам