TimeSeriesClassification.jl icon indicating copy to clipboard operation
TimeSeriesClassification.jl copied to clipboard

TS feature requests

Open azev77 opened this issue 5 years ago • 4 comments

Hi @aa25desh and welcome to MLJ.jl! Here are some time series forecasting features I find very valuable: Check out @robjhyndman's free book on forecasting: https://otexts.com/fpp2/

Univariate time-series:

  1. naive & seasonal naive models
  2. auto.arima model
  3. ets model
  4. thetam model
  5. nnetar model
  6. stlm model
  7. tbats model
  8. their hybrids. Also check out Forecast Benchmarks. All the above belong to @robjhyndman's forecast.r which is being refactored in the new fable.r. -it is valuable to understand where forecast went wrong & what fable is doing different so we don't make the same mistakes

Multivariate time-series:

  1. vector auto regression: @fipelle's TSAnalysis.jl is nice (also ElasticNetVAR.jl). PS: I've never seen automated multivariate models (VARIMA) the same way we have automated univariate models (auto.arima() etc).

Volatility models:

  1. @s-broda's ARCHModels.jl is very neat! Hansen has nice slides on volatility forecasting & a paper that compares 330 ARCH-type models.

Impulse Response Functions: I usually do this in R. Two Julia packages: VARmodels.jl & VectorAutoregressions.jl

In general Julia has great libraries in many domains. Unfortunately time series is one of the least well organized. It also means this is the area w/ the biggest opportunities to make a lasting impact on the worth through open source!

azev77 avatar May 12 '20 03:05 azev77

@aa25desh @ablaom it turns out @s-broda's ARCHModels.jl already allows auto.arma() with: auto.arma(df, bic)=selectmodel(ARCH{0}, df, meanspec=ARMA, criterion=bic)

This is likely the most well-funded & well written TS pkg in the Julia ecosystem so it may be a good idea for MLJ to wrap ARCHModels.jl

Btw, this package currently can predict: :volatility/:variance/:return/:VaR It does not yet predict the conditional distribution.

I have an idea for a nice tutorial (possibly small paper) I can contribute or work w/ you guys if you'd like...

Here are the major TS packages I believe are worth wrapping:

  • [ ] ARCHModels.jl
  • [ ] fable.r
  • [ ] rugarch.r
  • [ ] sktime.py

Also check out TimeSeriesClustering.jl

azev77 avatar Jun 22 '20 01:06 azev77

@azev77 Do you have any more details/references on their assessment where forecast went wrong and reason for developing fable?

mloning avatar Jun 22 '20 07:06 mloning

@mloning

  1. A discussion about the upgrade from Forecast to Fable is here.
  2. More generally it is crucial for MLJ to see where other ML frameworks went wrong in previous versions. MLR was refactored into MLR3 Caret was refactored into TidyModels Discussion here.

azev77 avatar Jun 22 '20 21:06 azev77

FYI https://github.com/tidyverts/fable/issues/282

mloning avatar Jun 23 '20 08:06 mloning