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.

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.

There is some progress in the community, see e.g. : https://towardsdatascience.com/arima-models-with-turing-jl-81dcf2a1094c

In `ChaosTools`

, there is some basic nonlinear timeseries analysis techniques as well: https://juliadynamics.github.io/DynamicalSystems.jl/dev/chaos/nlts/

Have a look in the “related software” section of this website as well: https://juliadynamics.github.io/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!

1 Like

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.

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!

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.

2 Likes