modeltime_forecast(): New argument
keep_new_data. This is useful when the
new_datahas imprtamt information needed in analyzing the forecast.
modeltime_calibrate(quiet = FALSE).
parsnip >= 0.1.3.9000. Uses
modeltime_refit()- Changes to improve fault tolerance and error handling / messaging when making ensembles.
modeltime.ensemble, a new R package designed for forecasting with ensemble models.
New Workflow Helper Functions
add_modeltime_model()- A helper function making it easy to add a fitted parsnip or workflow object to a modeltime table
pull_modeltime_model()- A helper function making it easy to extract a model from a modeltime table
prophet_reg()can now have regressors controlled via
set_engine()using the following parameters:
regressors.mode- Set to
regressors.prior.scale- Set to 10,000 by default.
regressors.standardize- Set to “auto” by default.
Modeltime now includes 4 new data sets:
m750- M750 Time Series Dataset
m750_models- 3 Modeltime Models made on the M750 Dataset
rsplitobject containing Train/test splits of the M750 data
m750_training_resamples- A Time Series Cross Validation
time_series_cvobject made from the
plot_modeltime_forecast()fix issue with “ACTUAL” data being shown at bottom of legend list. Should be first item.
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_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.
seasonal_reg() and set engine to “tbats”.
nnetar_reg() and set engine to “nnetar”.
Prophet Model - Logistic Growth Support
growth = 'logistic'and one or more of
logistic_floorto valid saturation boundaries.
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)”).
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”.
actual_datareconciliation strategies when recipe removes rows. Strategy attempts to fill predictors using “downup” strategy to prevent
NAvalues from removing rows.
modeltime_accuracy(): Fix issue with
new_data not recalibrating.
modeltime_forecast(): Now estimates confidence intervals using centered standard deviation. The mean is assumed to be zero and residuals deviate from mean = 0.
nthreads = 1(default) to ensure parallelization is thread safe.