Я пытаюсь работать над проектом прогнозирования сезонности. В моем примере данных ниже у меня есть 3 переменные (A, B, C) с января 2016 года по май 2020 года. Я превращаю набор данных в тиббл, я снимаю тренд данных, используя первые различия, а затем использую TSLM
функция для регрессии значений с исключенным трендом для группы ежемесячных фиктивных переменных.
Моя проблема в том, что я хочу построить график прогнозируемых значений против фактических значений, но я столкнулся с этой ошибкой: Error: Can't proceed with the key of multiple variables.
Эта ошибка вызывает у меня выключен, потому что два дня go я смог выполнить свой код без каких-либо проблем, но сегодня я получаю сообщение об ошибке. Приветствуются любые указания по этой ошибке.
Мой код с данными:
library(fable)
library(fabletools)
library(tibble)
library(dplyr)
library(forecast)
df<-data.frame(
A=c(27.9938, 28.0004,28.03154, 28.04374, 28.08446, 28.12364, 28.15138, 28.15892, 28.15968, 28.07314, 28.04036, 28.08632, 27.98332, 27.96234, 27.97982, 28.0106, 28.02084, 28.06482, 28.0602, 28.05052, 28.05138, 27.99212, 27.96588, 27.97364, 27.90562, 27.87026, 27.88142, 27.89572, 27.9344, 27.99952, 28.02304, 28.01158, 28.0443, 28.04298, 28.00724, 28.01248, 27.95378, 27.95702, 27.95918, 27.98758, 28.0348, 28.05396, 28.07982, 28.07998, 28.06708, 28.08386, 28.04272, 28.03444, 27.98222, 27.96958, 28.0002),
B=c(27.92668, 27.9936, 28.02364, 28.04648, 28.04492, 28.05294, 28.0191, 28.00362, 27.96778, 27.96118, 27.8963, 27.93334, 27.9451, 27.94296, 28.00206, 28.05464, 28.04646, 28.07908, 28.02212, 27.94902, 27.93564, 27.87986, 27.87676, 27.93026, 27.91306, 27.96704, 27.95872, 28.0064, 27.98354, 28.00128, 27.94422, 27.89578, 27.9424, 27.89796, 27.90042, 27.91856, 27.9423, 28.00996, 28.03854, 28.10654, 28.1248, 28.24094, 28.1972, 28.1662, 28.18706, 28.19138, 28.1637, 28.14834, 28.17378, 28.187, 28.22642),
C=c(27.7977, 27.94492, 27.89732, 27.7361, 27.9497, 27.80912, 27.8867, 27.8085, 27.96406, 27.96548, 27.99574, 27.93068, 27.95904, 27.96142, 28.17876, 28.16956, 28.14324, 28.0869, 28.17692, 28.15626, 27.83046, 28.02534, 28.10704, 28.2005, 27.981, 28.46818, 28.32172, 28.23436, 27.93638, 27.87202, 28.04238, 27.76178, 27.14638, 27.42408, 27.65992, 28.0452, 27.97926, 28.18418, 28.24784, 27.87126, 27.5862, 27.60312, 27.92416, 28.05302, 27.70676, 27.87256, 27.54304, 27.72288, 27.6785, 27.47676, 27.36466))
df <- df %>%
mutate(Month = yearmonth(seq(as.Date("2016-01-01"), by = "1 month", length = NROW(df))))%>% > pivot_longer(-Month, names_to = "Series", values_to = "value") %>%
as_tsibble(index = Month, key = Series)
df<-df%>%group_by(Series)%>%mutate(det=c(NA,diff(value)))
df<-df%>%as_tsibble(index = Month, key = Series)
train<-df%>%dplyr::filter(Month<=as.Date('2019-03-01'))
seas<-function(data, det){
seasonality=data%>%model(TSLM(det~season()))
}
x<-seas(data = train, det = det)
forag<-x%>%forecast(h=12,bias_adjust=TRUE)%>%filter(Series=="A")%>%autoplot(df)`