BoxCox.lambda 未返回与寓言功能相同的结果

BoxCox.lambda not returning same results as fable features

我正在比较 forecast 包中的自动 lambda 选择函数 BoxCox.lambdafable 包自动 lambda 选择 features

的结果

正如您在下面看到的,这两个函数没有return相同的结果。此外,当我将 BoxCox.lamda 应用于同一数据,但一次应用于 ts 对象,一次应用于向量时,结果不同。

有人可以解释为什么它会这样吗?

library(tidyverse)
library(tsibble)
library(lubridate)
library(fable)
library(tsibbledata)

library(forecast)


vic_cafe <- tsibbledata::aus_retail %>%
  filter(
    State == "Victoria",
    Industry == "Cafes, restaurants and catering services"
  ) %>%
  select(Month, Turnover)


lambda_fable <- vic_cafe %>% features(Turnover, guerrero) %>% pull(lambda_guerrero)
lambda_fable
#> [1] 0.1240828

lambda_forecast <- BoxCox.lambda(vic_cafe$Turnover, method = "guerrero")
lambda_forecast
#> [1] 0.02686482

lambda_forecast_ts <- BoxCox.lambda(as.ts(vic_cafe), method = "guerrero")
lambda_forecast_ts
#> [1] 0.1734189

feasts::guerrero() 函数使用所有可用数据,而 forecast::BoxCox.lambda() 忽略不完全符合年份的数据。

您的 vic_cafe 数据集从 4 月开始,因此 feasts 包将季节分组为 April-March,但预测将使用 January-December 并删除数据的第一部分。

可以找到更多的讨论here, and I've added a mention of these differences in the documentation: https://github.com/tidyverts/feasts/commit/830fe4095cf6231e7bb179519cddfeadd9cd7531