改变 tsibble 数据框中的列,应用 Box-Cox 转换

Mutate a column in a tsibble dataframe, applying a Box-Cox transformation

我是 Hyndman 包的忠实粉丝,但在 Box-Cox 转换中迷路了。

我有一个数据框

class(chicago_sales)
[1] "tbl_ts"     "tbl_df"     "tbl"        "data.frame"

我正在尝试改变一个额外的列,其中 Mean_price 变量将被转换。

foo <- chicago_sales %>% 
mutate(bc = BoxCox(x = chicago_sales$Median_price, lambda = 
BoxCox.lambda(chicago_sales$Median_price)))

给了我一些结果(也可能是错误的)并且无法应用 autoplot

我也尝试应用 Hyndman's book 中的代码,但失败了。

我做错了什么?谢谢!

更新:

问题,在 tsibbles 中,当使用 dplyr 时,您不调用 chicago_sales$Median_price,而只调用 Median_price。当使用 tsibbles 时,我建议使用 fable 和 fabletools,但如果你使用 forecast,它应该像这样工作:

library(tsibble)
library(dplyr)
library(forecast)

pedestrian %>% 
  mutate(bc = BoxCox(Count, BoxCox.lambda(Count)))
# A tsibble: 66,037 x 6 [1h] <Australia/Melbourne>
# Key:       Sensor [4]
   Sensor         Date_Time           Date        Time Count    bc
   <chr>          <dttm>              <date>     <int> <int> <dbl>
 1 Birrarung Marr 2015-01-01 00:00:00 2015-01-01     0  1630 11.3 
 2 Birrarung Marr 2015-01-01 01:00:00 2015-01-01     1   826  9.87
 3 Birrarung Marr 2015-01-01 02:00:00 2015-01-01     2   567  9.10
 4 Birrarung Marr 2015-01-01 03:00:00 2015-01-01     3   264  7.65
 5 Birrarung Marr 2015-01-01 04:00:00 2015-01-01     4   139  6.52
 6 Birrarung Marr 2015-01-01 05:00:00 2015-01-01     5    77  5.54
 7 Birrarung Marr 2015-01-01 06:00:00 2015-01-01     6    44  4.67
 8 Birrarung Marr 2015-01-01 07:00:00 2015-01-01     7    56  5.04
 9 Birrarung Marr 2015-01-01 08:00:00 2015-01-01     8   113  6.17
10 Birrarung Marr 2015-01-01 09:00:00 2015-01-01     9   166  6.82
# ... with 66,027 more rows

我使用了 tsibble 包中的内置数据集,因为您没有提供 chicago_sales 的输入。