alan-turing-institute / TimeSeriesClassification.jl

Machine Learning with Time Series in Julia
MIT License
27 stars 5 forks source link

TS feature requests #1

Open azev77 opened 4 years ago

azev77 commented 4 years ago

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 commented 4 years ago

@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:

Also check out TimeSeriesClustering.jl

mloning commented 4 years ago

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

azev77 commented 4 years ago

@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.
mloning commented 4 years ago

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