Мой вопрос: если бы у меня был tsibble с более чем одним ключом (n_keys ›1) и одной или несколькими ключевыми переменными (key_vars› = 1), может ли набор tidyverts выполнить box_cox преобразование для каждого временного ряда (одно преобразование box_cox на временной ряд) с использованием соответствующего значения lambda_guerrero для каждого временного ряда? Ниже моя (первая) попытка минимально воспроизводимого примера.
Например: Мне интересно, возможен ли шаг 5 с использованием набора tidyverts без получения сообщения об ошибке. Вместо того, чтобы применять лямбда1 = 0,36 к льготному, общему и агрегированному, как показано на шаге 4 без ошибок, я хотел бы применить 0,25 к льготному, 0,66 к общему и 0,36 к агрегированному, если это возможно.
Спасибо!
library(tidyverse)
library(lubridate)
library(tsibble)
library(tsibbledata)
library(fabletools)
library(fable)
library(feasts)
library(distributional)
шаг 1: один ключ, без преобразования:
tsibbledata::PBS %>% summarize(Cost = sum(Cost)) %>% autoplot(Cost)
шаг 2: один ключ с преобразованием:
Аналогично примеру из FPP3, глава 3.1. Для справки: https://otexts.com/fpp3/transformations.html.
lambda1 <- tsibbledata::PBS %>%
summarize(Cost = sum(Cost)) %>%
features(Cost, features = guerrero) %>%
pull(lambda_guerrero) # [1] 0.3642197
tsibbledata::PBS %>% summarize(Cost = sum(Cost)) %>% autoplot(box_cox(Cost,lambda1))
шаг 3: три ключа без преобразования:
tsibbledata::PBS %>% aggregate_key(Concession, Cost = sum(Cost)) %>% autoplot(Cost)
шаг 4: три ключа с одним преобразованием:
tsibbledata::PBS %>%
aggregate_key(Concession, Cost = sum(Cost)) %>%
autoplot(box_cox(Cost,lambda1))
Шаг 5: три ключа с тремя преобразованиями:
lambda2 <- tsibbledata::PBS %>%
aggregate_key(Concession, Cost = sum(Cost)) %>%
features(Cost, features = guerrero) %>%
pull(lambda_guerrero) # [1] 0.2518823 0.6577645 0.3642197
lambda2
A tibble: 3 x 2
Concession lambda_guerrero
<chr*> <dbl>
1 Concessional 0.252
2 General 0.658
3 <aggregated> 0.364
tsibbledata::PBS %>%
aggregate_key(Concession, Cost = sum(Cost)) %>%
autoplot(box_cox(Cost,lambda2)) # caused an error