Rus*_*nte 0 r time-series decomposition
我正在使用 R 和 fpp3 包进行时间序列分析,但没有找到计算整个数据集的趋势和季节性的方法。例如,这个数据集看起来有趋势和季节性,但是如何找到整个数据集的趋势和季节性值呢?
library(tidyverse)
library(fpp3)
us_gasoline %>%
autoplot(Barrels)
Run Code Online (Sandbox Code Playgroud)
如果使用分解,它会返回每行的趋势和季节性数字,但整个数据集的季节性是多少?是每月吗?季刊?每年?一些不寻常的价值?对于整个数据集的趋势也是同样的问题。例如,这段代码:
us_gasoline %>%
model(
STL(Barrels)
) %>%
components()
Run Code Online (Sandbox Code Playgroud)
返回此数据:
如何计算整个数据集的趋势(或多个趋势,如果多个)和季节性(或多个季节性,如果多个)?
STL 分解将产生时间序列的单一趋势以及一个或多个季节性。您可以使用 可视化这些分解的组件autoplot(<dable>),例如:
library(fpp3)\n#> \xe2\x94\x80\xe2\x94\x80 Attaching packages \xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 fpp3 0.4.0 \xe2\x94\x80\xe2\x94\x80\n#> \xe2\x9c\x94 tibble 3.1.8 \xe2\x9c\x94 tsibble 1.1.1 \n#> \xe2\x9c\x94 dplyr 1.0.9 \xe2\x9c\x94 tsibbledata 0.4.0 \n#> \xe2\x9c\x94 tidyr 1.2.0 \xe2\x9c\x94 feasts 0.2.2 \n#> \xe2\x9c\x94 lubridate 1.8.0 \xe2\x9c\x94 fable 0.3.1.9000\n#> \xe2\x9c\x94 ggplot2 3.3.6\n#> \xe2\x94\x80\xe2\x94\x80 Conflicts \xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 fpp3_conflicts \xe2\x94\x80\xe2\x94\x80\n#> \xe2\x9c\x96 lubridate::date() masks base::date()\n#> \xe2\x9c\x96 dplyr::filter() masks stats::filter()\n#> \xe2\x9c\x96 tsibble::intersect() masks base::intersect()\n#> \xe2\x9c\x96 tsibble::interval() masks lubridate::interval()\n#> \xe2\x9c\x96 dplyr::lag() masks stats::lag()\n#> \xe2\x9c\x96 tsibble::setdiff() masks base::setdiff()\n#> \xe2\x9c\x96 tsibble::union() masks base::union()\nus_gasoline %>% \n model(\n STL(Barrels)\n ) %>% \n components() %>%\n autoplot()\nRun Code Online (Sandbox Code Playgroud)\n
由reprex 包于 2022 年 8 月 22 日创建(v2.0.1)
\n使用的默认季节性周期STL基于常见的季节性周期,并不特定于任何特定数据集。对于每周观察的数据,合理的季节周期是每年。这在季节性成分的列名称中表示:season_year。
您可以使用season()模型特殊指定一个或多个季节周期。例如,分解年度和 4 周模式:
library(fpp3)\n#> \xe2\x94\x80\xe2\x94\x80 Attaching packages \xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 fpp3 0.4.0 \xe2\x94\x80\xe2\x94\x80\n#> \xe2\x9c\x94 tibble 3.1.8 \xe2\x9c\x94 tsibble 1.1.1 \n#> \xe2\x9c\x94 dplyr 1.0.9 \xe2\x9c\x94 tsibbledata 0.4.0 \n#> \xe2\x9c\x94 tidyr 1.2.0 \xe2\x9c\x94 feasts 0.2.2 \n#> \xe2\x9c\x94 lubridate 1.8.0 \xe2\x9c\x94 fable 0.3.1.9000\n#> \xe2\x9c\x94 ggplot2 3.3.6\n#> \xe2\x94\x80\xe2\x94\x80 Conflicts \xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 fpp3_conflicts \xe2\x94\x80\xe2\x94\x80\n#> \xe2\x9c\x96 lubridate::date() masks base::date()\n#> \xe2\x9c\x96 dplyr::filter() masks stats::filter()\n#> \xe2\x9c\x96 tsibble::intersect() masks base::intersect()\n#> \xe2\x9c\x96 tsibble::interval() masks lubridate::interval()\n#> \xe2\x9c\x96 dplyr::lag() masks stats::lag()\n#> \xe2\x9c\x96 tsibble::setdiff() masks base::setdiff()\n#> \xe2\x9c\x96 tsibble::union() masks base::union()\nus_gasoline %>% \n model(\n STL(Barrels ~ season(period = "year") + season(period = "4 weeks"))\n ) %>% \n components() %>%\n autoplot()\nRun Code Online (Sandbox Code Playgroud)\n
由reprex 包于 2022 年 8 月 22 日创建(v2.0.1)
\n请注意,此数据不呈现 4 周模式,因此您通常不想从中提取 4 周季节性模式。
\n