Modeltime Versions Save

Modeltime unlocks time series forecast models and machine learning in one framework

v1.0.0

2 years ago

modeltime 1.0.0

New Feature: Nested (Iterative) Forecasting

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:

Format data in a Nested Time Series structure

  • Data Preparation Utilities: extend_timeseries(), nest_timeseries(), and split_nested_timeseris().

Nested Model Fitting (Train/Test)

  • 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().

Nested Model Selection

  • 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()

Nested Model Refitting (Actual Data)

  • 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().

New Vignette

Vignette Improvements

  • Forecasting with Global Models: Added more complete steps in the forecasting process so now user can see how to forecast each step from start to finish including future forecasting.

New Accuracy Metric Set and Yardstick Functions

  • 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.

Improvements

  • modeltime_fit_workflowset(): Improved handling of Workflowset Descriptions, which now match the wflow_id.

v0.7.0

2 years ago

Group-Wise Accuracy and Confidence Interval by Time Series 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.

New Vignette

Forecasting Panel Data

New Algorithms

THIEF: Temporal Hierarchical Forecasting

  • temporal_hierarchy(): Implements the thief package by Rob Hyndman and Nikolaos Kourentzes for "Temporal HIErarchical Forecasting". #117

Bug Fixes

  • Issue #111: Fix bug with modeltime_fit_workflowset() where the workflowset (wflw_id) order was not maintained.

v0.6.1

2 years ago

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

  • Issue #110: Fix bug with cores > cores_available.

v0.6.0

3 years ago

Workflowset Integration

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.

New Algorithms

  • CROSTON (#5, #98) - This is a new engine that has been added to exp_smoothing().
  • THETA (#5, #93) - This is a new engine that has been added to exp_smoothing().

New Dials Parameters

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.

Parallel Processing

  • modeltime_refit(): supports parallel processing. See control_refit()
  • modeltime_fit_workflowset(): supports parallel processing. See control_workflowset()

Updates for parsnip >= 0.1.6

General Improvements

  • Improve Model Description of Recursive Models (#96)

Potential Breaking Changes

  • We've added new parameters to Exponential Smoothing Models. exp_smoothing() models produced in prior versions may require refitting with modeltime_refit() to upgrade their internals with the new parameters.

v0.5.1

3 years ago

Modeltime 0.5.1

Recursive Ensemble Predictions

  • Add support for recursive() for ensembles.

v0.5.0

3 years ago

This release includes significant advances in forecasting with recursive panel data.

Recursive Predictions

  • recursive() (#71) - Received a full upgrade to work with Panel Data.
  • New Vignette: "Recursive Forecasting" with Modeltime

Breaking Changes

  • Deprecating 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.