改变 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
的输入。
我是 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
的输入。