Package for time series?

Are there any Julia packages for time series analysis? Like arma, arima, vector autoregressions etc.

I’ve tried looking around a bit, but didn’t find anything. Thanks.

4 Likes

There is some progress in the community, see e.g. : ARIMA Models with Turing.jl. Using the Probabilistic Programming… | by Saumya Shah | Towards Data Science

In ChaosTools, there is some basic nonlinear timeseries analysis techniques as well: Nonlinear Timeseries Analysis · DynamicalSystems.jl

Have a look in the “related software” section of this website as well: JuliaDynamics

I am interested in time series analysis tools in general, and always want to bring more stuff like that to Julia. If you have any updates on this, please let me know either via here or the #dynamics-bridge Slack channel!

1 Like

Thanks for the info. I might translate some models from Python or R then if I get the time. Might be a good opportunity to learn Julia properly!

4 Likes

If you do go that route you may be very interested in the following package: https://github.com/joshday/OnlineStats.jl

In my package I have some really rudimentary time series models… Moving average, control charts, echo state networks… No ARIMA/ARX/Holt Winter/etc because I got lazy.

1 Like

Something like https://pkg.julialang.org/docs/ControlSystemIdentification/FH1SZ/0.1.5/ ?

This package is no longer maintained, but updating it to work on Julia 1+ could be a good learning project if you’re looking for one!
https://github.com/JuliaStats/TimeModels.jl

Some great tips, thanks guys!

I have a small little package for efficiently simulating univariate, vector-, and matrix-valued ARMA processes here. I have some other convenient things implemented for univariate processes, and I really ask that everything be on the stack for vector- and matrix-valued series. So if you want to work on a giant vector ARMA process, this might not immediately be useful (although I do plan to deal with that at some point soon-ish).

I haven’t implemented estimation yet, but could very quickly make an example file for doing maximum likelihood for a univariate process, for example.

EDIT: just a quick note that I have updated the internals of this package and no longer require the vector-/matrix-/tensor-valued processes to have things living on the stack. There is a serious efficiency cost to not doing that, but the code is still probably as efficient as one might hope for if you want to sample from a 100x100 matrix-valued ARMA process, for example. The univariate sampling is even faster than before, and I doubt it could be made faster.

3 Likes

We have built GitHub - LAMPSPUC/StateSpaceModels.jl: StateSpaceModels.jl is a Julia package for time-series analysis using state-space models. it is still under development but we do have some unobserved components models and an ARIMA. We are going to merge a SARIMA soon and maybe exploit more general unobserved components models.

2 Likes

See also the TSAnalysis.jl package announced here.

2 Likes