modeltime (development version) Unreleased

Improvements

  • modeltime_forecast(): New argument keep_new_data. This is useful when the new_data has imprtamt information needed in analyzing the forecast.

Error Messaging

Compatibility

  • Compatibility with parsnip >= 0.1.3.9000. Uses set_encodings() new parameter allow_sparse_x.

modeltime 0.2.1 2020-10-08

Ensembles

  • modeltime_refit() - Changes to improve fault tolerance and error handling / messaging when making ensembles.

modeltime 0.2.0 2020-09-28

Ensembles

  • Integrates modeltime.ensemble, a new R package designed for forecasting with ensemble models.

New Workflow Helper Functions

Improvements

  • Documentation - Algorithms now identify default parameter values in the “Engine Details” Section in their respective documentation. E.g. ?prophet_boost
  • prophet_reg() can now have regressors controlled via set_engine() using the following parameters:
    • regressors.mode - Set to seasonality.mode by default.
    • regressors.prior.scale - Set to 10,000 by default.
    • regressors.standardize - Set to “auto” by default.

Data Sets

Modeltime now includes 4 new data sets:

  • m750 - M750 Time Series Dataset
  • m750_models - 3 Modeltime Models made on the M750 Dataset
  • m750_splits - An rsplit object containing Train/test splits of the M750 data
  • m750_training_resamples - A Time Series Cross Validation time_series_cv object made from the training(m750_splits)

Bug Fix

modeltime 0.1.0 2020-09-02

New Features

Forecast without Calibration/Refitting

Sometimes it’s important to make fast forecasts without calculating out-of-sample accuracy and refitting (which requires 2 rounds of model training). You can now bypass the modeltime_calibrate() and modeltime_refit() steps and jump straight into forecasting the future. Here’s an example with h = "3 years". Note that you will not get confidence intervals with this approach because calibration data is needed for this.

# Make forecasts without calibration/refitting (No Confidence Intervals)
# - This assumes the models have been trained on m750
modeltime_table(
    model_fit_prophet,
    model_fit_lm
) %>%
    modeltime_forecast(
        h = "3 years",
        actual_data = m750
    ) %>%
    plot_modeltime_forecast(.conf_interval_show = F)

Residual Analysis & Diagonstics

A common tool when forecasting and analyzing residuals, where residuals are .resid = .actual - .prediction. The residuals may have autocorrelation or nonzero mean, which can indicate model improvement opportunities. In addition, users may which to inspect in-sample and out-of-sample residuals, which can display different results.

New Models

TBATS Model

Use seasonal_reg() and set engine to “tbats”.

seasonal_reg(
    seasonal_period_1 = "1 day",
    seasonal_period_2 = "1 week"
) %>% 
    set_engine("tbats")

NNETAR Model

Use nnetar_reg() and set engine to “nnetar”.

model_fit_nnetar <- nnetar_reg() %>%
    set_engine("nnetar") 

Prophet Model - Logistic Growth Support

  • prophet_reg() and prophet_boost():
    • Now supports logistic growth. Set growth = 'logistic' and one or more of logistic_cap and logistic_floor to valid saturation boundaries.
    • New arguments making it easier to modify the changepoint_num, changepoint_range, seasonality_yearly, seasonality_weekly, seasonality_daily, logistic_cap, logistic_floor

New Workflow Helper Functions

Improvements

  • modeltime_refit(): When modeltime model parameters update (e.g. when Auto ARIMA changes to a new model), the Model Description now alerts the user (e.g. “UPDATE: ARIMA(0,1,1)(1,1,1)[12]”).

  • modeltime_calibrate(): When training data is supplied in a time window that the model has previously been trained on (e.g. training(splits)), the calibration calculation first inspects whether the “Fitted” data exists. If it iexists, it returns the “Fitted” data. This helps prevent sequence-based (e.g. ARIMA, ETS, TBATS models) from displaying odd results because these algorithms can only predict sequences directly following the training window. If “Fitted” data is being used, the .type column will display “Fitted” instead of “Test”.

Bug Fixes

  • modeltime_forecast():

    • Implement actual_data reconciliation strategies when recipe removes rows. Strategy attempts to fill predictors using “downup” strategy to prevent NA values from removing rows.
    • More descriptive errors when external regressors are required.
  • modeltime_accuracy(): Fix issue with new_data not recalibrating.

  • prophet_reg() and prophet_boost() - Can now perform logistic growth growth = 'logistic'. The user can supply “saturation” bounds using logistic_cap and/or logisitc_floor.

Breaking Changes

modeltime 0.0.2 2020-07-03

Confidence Interval Estimation

  • modeltime_forecast(): Now estimates confidence intervals using centered standard deviation. The mean is assumed to be zero and residuals deviate from mean = 0.

Fixes

  • Updates to work with parsnip 0.1.2.
  • prophet_boost(): Set nthreads = 1 (default) to ensure parallelization is thread safe.

modeltime 0.0.1 2020-06-22

  • Initial Release