Open mdancho84 opened 4 years ago
Dear @mdancho84,
I see a lot of parallelism between model time and the fable package. Even that fable is designed for multiple time series models I believe that sharing some of the structures could be very beneficial for both projects. I have noticed that for instance you have a model time table. Would it be possible that you look into the mable (mdl_df) class from fable?
BR /E
Yes, I agree there are parallels. I'm not sure what specifically to look at compared to fable
. I do plan to incorporate most of the forecast
package functionality into modeltime
. Scalable time series is something else I will look into down the road, but it becomes more complex when tuning is involved.
Hi @mdancho84
I think the main issue with tunning is that you will have a conflict when you are running fable in parallel as you will not have control over the forked processes that the HPO needs. However I am not an expert in the topic but I for sure understand the challenges here.
However I see now 3 main packages to perform forecasting in R:
forecastML: for direct forecasting of multiple grouped time series using machine learning and deep learning.
fable: for recursive forecasting of multiple grouped time series using time series models and prophet
modeltime: for recursive forecasting using machine learning and deep learning.
forecastML plans to be compatible with fable and there is even a vignette in order to explain reconciliation forecasts.
I think that it would be amazing if all of this packages become part of a modern time series forecasting ecosystem.
BR /E
I’m a big fan of fable
, I just couldn’t get it to work for anything using machine learning and deep learning.
The tidymodels
system is an amazing evolution of caret that is focused on integration and standardization of machine learning. This makes it much easier to control and simplify the vast ML & DL ecosystem. This is why it only takes minimal lines of code to go from idea to execution. Modeltime
and timetk
simply add a workflow for forecasting on top of the excellent tidymodels
ecosystem.
I don't know if there will be one framework that will consolidate all of these great ideas. I agree it would be amazing.
My goal is to first and foremost help those that want to create high-performance forecasts have the tools available to do so in as few lines of code as possible.
TBATS Model
TBATS is added to the seasonal_reg()
, seasonal time series regression model specification.
seasonal_reg(
seasonal_period_1 = 7,
seasonal_period_2 = 30,
seasonal_period_3 = 365
) %>%
set_engine("tbats")
The modeltime.gluonts
library has been created to handle Deep Learning by integrating the Time Series Deep Learning Library, GluonTS. Resources:
I don't recall if holtwinters works with modeltime, does it?
I don't recall if holtwinters works with modeltime, does it?
Yes, Holt-Winters is a special form of ETS. So you can use exp_smoothing()
to make a holt winters model.
Added Conformal Interval Evaluation #173
Modeltime Ecosystem Roadmap
The
modeltime
project roadmap tracks the overall development of the Modeltime Ecosystem of forecasting packages. Modeltime is a cutting-edge ecosystem for forecasting using strategies and best practices that won or placed highly in major forecasting competitions. We have a state-of-the-art Time Series Forecasting Course (DS4B 203-R) that teaches Machine Learning, Deep Learning, and Feature Engineering for Time Series. Take this course to become the forecasting expert for your organization.Forecasting Approaches
sknifedatar
package extends modeltime for iterative forecasting. We are also working on an iterative forecasting solution that can be tracked with Issue #122. Nested Forecasting has been implemented. Refer to the Nested Forecasting Tutorial.Ensembles (Stacking, Averaging)
Please refer to
modeltime.ensemble
R package: https://business-science.github.io/modeltime.ensemble/modeltime.ensemble::ensemble_model_spec()
modeltime.ensemble::ensemble_average()
modeltime.ensemble::ensemble_weighted()
Forecast
These algorithms are provided in the base
modeltime
package. Refer to included models in the model list: https://business-science.github.io/modeltime/articles/modeltime-model-list.htmlseasonal_reg()
seasonal_reg()
nnetar_reg()
exp_smoothing()
(#93)exp_smoothing()
(#98)GluonTS (Deep Learning)
Please refer to
modeltime.gluonts
R package: https://github.com/business-science/modeltime.gluontsmodeltime.gluonts::deep_ar()
modeltime.gluonts::nbeats()
Autoregressive (Recursive) Forecasting
Recursive forecasting is required when Lags of Features < Forecast Horizon. Please refer to the
recursive()
function that allows any model to be converted into a recursive prediction model: https://business-science.github.io/modeltime/reference/recursive.htmlrecursive()
modeltime.ensemble
for development efforts. https://business-science.github.io/modeltime.ensemble/Resampling & Backtesting
modeltime.resample
for backtesting and resampling time series: https://business-science.github.io/modeltime.resample/index.htmlHyper Parameter Tuning & Parallel Processing
Global Baseline Models
Refer to baseline algorithms #37
naive_reg()
window_reg()
H2O
This project is being managed via
modeltime.h2o
: https://github.com/business-science/modeltime.h2oGeneral Additive Models (GAMs)
GARCH Models
Refer to
garchmodels
(Website, GitHub).Bayesian Models
Refer to
bayesmodels
(Website, GitHub)bayesmodels
connects to thebayesforecast
package.bayesmodels
connects to thebayesforecast
package.bayesmodels
connects to thebayesforecast
package.bayesmodels
connects to thebayesforecast
andbsts
packages.bayesmodels
connects to thebayesforecast
package.bayesmodels
connects to thebrms
package.bayesmodels
connects to theBASS
package.bayesmodels
connects to theRglt
package.Boosted Models: CatBoost, LightGBM
Refer to
boostime
(GitHub).Conformal Predictions
probably
for Conformal Regression and Confidence Intervals. Follow GH Issue #173Vector Autoregression (VAR)
Hierarchical Time Series
hts
package. https://github.com/earowang/htsModeltime Targets
Spark: Distributed Compute
Investigate the possibility of adding Spark backend to improve scalability of modeltime, specifically for nested (iterative) forecasting.
Facebook Neural Prophet
LinkedIn Greykite
Uber Orbit
Facebook Kats
Temporal Hierachical Forecasting (THIEF)
thief
package for ensembling using temporal hierarchical forecast (THIEF) aggregations. #117Smooth
Investigate
smooth
Library. https://github.com/config-i1/smooth Thesmooth
library has several benefits including:es()
function that implements Exponential Smoothing with handling of xregs. This can be a new engine inexp_smoothing()
auto.ssarima()
/ssarima()
implemented in state space. These can be additional options inarima_reg()
.These methods have shown promising results in comparison to Facebook Prophet.
Follow #119.
Merlion
Pytorch Forecasting