Применение rollapply () к функции с несколькими столбцами - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь использовать 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.

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