如何解决如何按组应用 auto.arima?
假设我有以下数据框:
column_a<-c("A","A","B","C","C")
column_b<-c("AA","AA","BB","CC","CC")
column_c<-c("AAA","BBB","AAA","CCC","CCC")
Quarter<- c(3/31/2020,6/30/2020,9/30/2020,3/31/2020,9/30/2020)
Amount<-c(5,10,20,30,25,30)
data.frame(column_a,column_b,column_c,Quarter,Amount)
假设 A、B 和 C 列的组合是一个单独的产品。有没有办法可以在 r 中对 A、B 和 C 进行分组并应用 auto.arima 来预测接下来的 3 个季度的金额?我是否必须将它们连接成一列才能完成这项工作?
解决方法
使用 tsibble
和 fable
包。像这样:
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter,lag
#> The following objects are masked from 'package:base':
#>
#> intersect,setdiff,setequal,union
library(tsibble)
#>
#> Attaching package: 'tsibble'
#> The following objects are masked from 'package:base':
#>
#> intersect,union
library(fable)
#> Loading required package: fabletools
df <- tibble(
column_a = c("A","A","B","C","C"),column_b = c("AA","AA","BB","CC","CC"),column_c = c("AAA","BBB","AAA","CCC","CCC"),Quarter = c("3/31/2019","6/30/2019","9/30/2019","12/31/2019","3/31/2020","6/30/2020","9/30/2020","12/31/2020","3/31/2021"),Amount = c(5,10,20,30,25,30)
)
df <- df %>%
mutate(Quarter = yearquarter(lubridate::mdy(Quarter))) %>%
as_tsibble(index=Quarter,key=column_c) %>%
fill_gaps()
df %>%
model(ARIMA(Amount))
#> # A mable: 3 x 2
#> # Key: column_c [3]
#> column_c `ARIMA(Amount)`
#> <chr> <model>
#> 1 AAA <ARIMA(0,2,0)>
#> 2 BBB <ARIMA(0,0)>
#> 3 CCC <ARIMA(1,0) w/ mean>
由 reprex package (v1.0.0) 于 2021 年 2 月 4 日创建
有关使用寓言进行预测的详细信息,请参阅 OTexts.com/fpp3。 fable::ARIMA()
函数等效于 forecast::auto.arima()
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。