Extending
broom
to time series forecasting
The sweep
package extends the broom
tools (tidy, glance, and
augment) for performing forecasts and time series analysis in the
“tidyverse”. The package is geared towards “tidying” the forecast
workflow used with Rob Hyndman’s forecast
package.
tidyverse
tools in R for Data Sciencebroom
for model analysis (ARIMA, ETS, BATS, etc)forecast
objects for easy plotting and “tidy” data
manipulationtimetk
to enable dates and datetimes (irregular time
series) in the tidied forecast outputThe package contains the following elements:
model tidiers: sw_tidy
, sw_glance
, sw_augment
,
sw_tidy_decomp
functions extend tidy
, glance
, and augment
from the broom
package specifically for models (ets()
,
Arima()
, bats()
, etc) used for forecasting.
forecast tidier: sw_sweep
converts a forecast
object to a
tibble that can be easily manipulated in the “tidyverse”.
sweep
enables converting a forecast
object to tibble
. The result
is ability to use dplyr
, tidyr
, and ggplot
natively to manipulate,
analyze and visualize forecasts.
Often forecasts are required on grouped data to analyse trends in
sub-categories. The good news is scaling from one time series to many is
easy with the various sw_
functions in combination with dplyr
and
purrr
.
A common goal in forecasting is to compare different forecast models
against each other. sweep
helps in this area as well.
If you are familiar with broom
, you know how useful it is for
retrieving “tidy” format model components. sweep
extends this benefit
to the forecast
package workflow with the following functions:
sw_tidy
: Returns model coefficients (single column)sw_glance
: Returns accuracy statistics (single row)sw_augment
: Returns residualssw_tidy_decomp
: Returns seasonal decompositionssw_sweep
: Returns tidy forecast outputs.The compatibility chart is listed below.
| Object | sw_tidy() | sw_glance() | sw_augment() | sw_tidy_decomp() | sw_sweep() | |:------------|:---------:|:-----------:|:------------:|:----------------:|:----------:| | ar | | | | | | | arima | X | X | X | | | | Arima | X | X | X | | | | ets | X | X | X | X | | | baggedETS | | | | | | | bats | X | X | X | X | | | tbats | X | X | X | X | | | nnetar | X | X | X | | | | stl | | | | X | | | HoltWinters | X | X | X | X | | | StructTS | X | X | X | X | | | tslm | X | X | X | | | | decompose | | | | X | | | adf.test | X | X | | | | | Box.test | X | X | | | | | kpss.test | X | X | | | | | forecast | | | | | X |
Function Compatibility
Here’s how to get started.
Development version with latest features:
# install.packages("devtools")
devtools::install_github("business-science/sweep")
The sweep
package includes several vignettes to help users get up to
speed quickly:
sweep
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.