tq_mutate и растущая ширина окна? - PullRequest
0 голосов
/ 18 февраля 2019

с использованием tq_mutate для запуска модели скользящего окна lm с внутридневными данными.Функция отлично работает, когда я хочу скользящее окно фиксированного размера.

Как запустить окно, которое остается фиксированным, скажем, в первой точке данных, в 9:30 утра по восточному стандартному времени, затем начинает увеличиваться в размере окна.Пример: ширина окна составляет 720 тиков.Каждый тик происходит за 5 секунд, поэтому 1 час - это окно.После тика 720 окно увеличивается до 721, 722 и т. Д. К концу дня.Это как период обжига, затем увеличьте окно, чтобы закрыть.

Поддерживает ли tq_mutate окно, подобное этому.Фиксируется на дату начала (открытие), начинает выполняться при достижении ширины и увеличивается до конца данных.Опять же только для внутридневных данных.

Это работает ниже для фиксированной ширины.

pair.ratio <- as.tibble(runif(4000, min = 1, max = 5) / runif(4000,min=1,max=5))

tq_mutate(data = pair.ratio,mutate_fun = rollapply, width = 720, align='right', FUN = regr_fun,col_rename="coefficient")

regr_fun <- function(data) {
coef(lm(data[,1] ~ 1))
}

1 Ответ

0 голосов
/ 12 апреля 2019

Вы можете дать width векторный аргумент, который имеет размер окна для каждого окна:

    tq_mutate(data = pair.ratio,
              mutate_fun = rollapply, 
              width = seq(nrow(pair.ratio)), 
              align='right', 
              FUN = regr_fun,
              col_rename="coefficient")

Я не создал рабочий пример, pair.ratio. Мне кажется, нужен индекс даты, но выможет создать функцию для генерации запрошенного вами вектора, а затем использовать результат.

...