У меня большой набор данных (19945862 объекта из 3 переменных), и я строю модель временного ряда для примерно 50 000 членов.Ниже приведен скрипт, который я использую.
memeberid date amount
165595 17471 2
165596 17471 1.99
165596 17471 1.29
165597 17471 0.88
...... 19945858 obs
library(sweep)
library(tidyquant)
library(forecast)
library(timetk)
yearweek <- function(x) structure(floor(52*x + .00001)/52, class = "yearweek")
перегруппировка данных по неделям
ts$date <- as.numeric(ts$date)
weekly_amt_by_member <- ts %>%
mutate(order.week = as_date(yearweek(date))) %>%
group_by(memberid, order.week) %>%
summarise(total.amt = sum(amount))
связывание данных по мемебериду с помощью nest ()
weekly_amt_by_member_nest <- weekly_amt_by_member %>%
group_by(memberid) %>%
nest(.key = "data.tbl")
преобразование и отображение связок и функций-членов в объект класса ts
weekly_amt_by_member_ts <- weekly_amt_by_member_nest %>%
mutate(data.ts = map(.x = data.tbl ,
.f = tk_ts ,
select = -order.week ,
start = 2017 ,
freq = 52))
моделирование модели
weekly_amt_by_member_fit <- weekly_amt_by_member_ts %>%
mutate(fit.ets = map(data.ts , ets))
прогнозирование модели
weekly_amt_by_member_fcast <- weekly_amt_by_member_fit %>%
mutate(fcast.ets = map(fit.ets , forecast , h = 52))
Все вышеперечисленные детали работают без ошибок, кроме последней части (прогнозирование модели), которая дает мне следующую ошибку:
Ошибкав mutate_impl (.data, dots): Ошибка оценки: 'from' должно быть конечным числом.