Modeltime unlocks time series forecast models and machine learning in one framework
Nested (Iterative) Forecasting is aimed at making it easier to perform forecasting that is traditionally done in a for-loop with models like ARIMA, Prophet, and Exponential Smoothing. Functionality has been added to:
extend_timeseries()
, nest_timeseries()
, and split_nested_timeseris()
.modeltime_nested_fit()
: Fits many models to nested time series data and organizes in a "Nested Modeltime Table". Logs Accuracy, Errors, and Test Forecasts.
control_nested_fit()
: Used to control the fitting process including verbosity and parallel processing.
Logging Extractors: Functions that retrieve logged information from the initial fitting process. extract_nested_test_accuracy()
, extract_nested_error_report()
, and extract_nested_test_forecast()
.
modeltime_nested_select_best()
: Selects the best model for each time series ID.
Logging Extractors: Functions that retrieve logged information from the model selection process. extract_nested_best_model_report()
modeltime_nested_refit()
: Refits to the .future_data
. Logs Future Forecasts.
control_nested_refit()
: Used to control the re-fitting process including verbosity and parallel processing.
Logging Extractors: Functions that retrieve logged information from the re-fitting process. extract_nested_future_forecast()
.
extended_forecast_accuracy_metric_set()
: Adds the new MAAPE metric for handling intermittent data when MAPE returns Inf.maape()
: New yardstick metric that calculates "Mean Arctangent Absolute Percentage Error" (MAAPE). Used when MAPE returns Inf typically due to intermittent data.modeltime_fit_workflowset()
: Improved handling of Workflowset Descriptions, which now match the wflow_id
.We've expanded Panel Data functionality to produce model accuracy and confidence interval estimates by a Time Series ID (#114). This is useful when you have a Global Model that produces forecasts for more than one time series. You can more easily obtain grouped accuracy and confidence interval estimates.
modeltime_calibrate()
: Gains an id
argument that is a quoted column name. This identifies that the residuals should be tracked by an time series identifier feature that indicates the time series groups.
modeltime_accuracy()
: Gains a acc_by_id
argument that is TRUE
/FALSE
. If the data has been calibrated with id
, then the user can return local model accuracy by the identifier column. The accuracy data frame will return a row for each combination of Model ID and Time Series ID.
modeltime_forecast()
: Gains a conf_by_id
argument that is TRUE
/FALSE
. If the data has been calibrated with id
, then the user can return local model confidence by the identifier column. The forecast data frame will return an extra column indicating the identifier column. The confidence intervals will be adjusted based on the local time series ID variance instead of the global model variance.
temporal_hierarchy()
: Implements the thief
package by Rob Hyndman and
Nikolaos Kourentzes for "Temporal HIErarchical Forecasting". #117modeltime_fit_workflowset()
where the workflowset (wflw_id) order was not maintained.Parallel Processing
New Vignette: Parallel Processing
parallel_start()
and parallel_stop()
: Helpers for setting up multicore processing.
create_model_grid()
: Helper to generate model specifications with filled-in parameters from a parameter grid (e.g. dials::grid_regular()
).
control_refit()
and control_fit_workflowset()
: Better printing.
Bug Fixes
cores > cores_available
.modeltime_fit_workflowset()
(#85) makes it easy to convert workflow_set
objects to Modeltime Tables (mdl_time_tbl
). Requires a refitting process that can now be performed in parallel or in sequence.
exp_smoothing()
.exp_smoothing()
.exp_smoothing()
gained 3 new tunable parameters:
smooth_level()
: This is often called the "alpha" parameter used as the base level smoothing factor for exponential smoothing models.smooth_trend()
: This is often called the "beta" parameter used as the trend smoothing factor for exponential smoothing models.smooth_seasonal()
: This is often called the "gamma" parameter used as the seasonal smoothing factor for exponential smoothing models.modeltime_refit()
: supports parallel processing. See control_refit()
modeltime_fit_workflowset()
: supports parallel processing. See control_workflowset()
boost_tree(mtry)
: Mapping switched from colsample_bytree
to colsample_bynode
. prophet_boost()
and arima_boost()
have been updated to reflect this change. https://github.com/tidymodels/parsnip/pull/499
exp_smoothing()
models produced in prior versions may require refitting with modeltime_refit()
to upgrade their internals with the new parameters.This release includes significant advances in forecasting with recursive panel data.
recursive()
(#71) - Received a full upgrade to work with Panel Data.modeltime::metric_tweak()
for yardstick::metric_tweak()
. The yardstick::metric_tweak()
has a required .name
argument in addition to .fn
, which is needed for tuning.