TSAnalysis: time series analysis and state-space modelling

I have been following this discussion thread. A time series analysis package for Julia would be an excellent addition to the Julia community!

As I have it understood, there are packages in Julia, like TimeModels.jl under JuliaStats, but nothing specific to time series, as you are doing, @fipelle.

Thank you, and I am very much looking forward to this :smiley: .

2 Likes

@fipelle Is there any way you could provide an “auto.arima”-like function, as can be found in R?

I did not like how after running an MCMC on my differenced time series data, I wasn’t getting the results I was expecting. Sometimes, the “standard error” doesn’t apply, in which case, I can always try a Student’s T random variable, with more degrees of freedom, yet…

It’s tough getting the right p, d, q parameters. I have already plotted the correlograms and found some seasonal behavior in the data. Should I try a periodogram also? For reference, I was following this online guide: https://towardsdatascience.com/arima-models-with-turing-jl-81dcf2a1094c.

2 Likes

Sure. There are different ways to do it. For instance, you could use the techniques I described in my latest paper. I think I will implement something similar and based on implementations in https://github.com/fipelle/ElasticNetVAR.jl. I will also try to add a version of the Politis and Romano’s stationary bootstrap.

I am afraid it won’t be in the next release. As you can see in the dev branch I am currently working on implementing the VARIMA. I will do it, once this is in production. Would you mind adding an issue on the git page?

4 Likes

Sounds like great progress. I look forward to test driving your VARIMA.
Btw, it would be awesome if @ some point it can be extended to VARFIMA.

1 Like

That’s great!

Before getting into fractional methods I think it would be a good idea to implement state-space approaches to model seasonality and other features in the data (jointly with the VARIMA). I did not see many packages around that allow for these hybrids.

1 Like

Not a problem. I can do this.

You can start the test drive by adding the dev version of TSAnalysis via ]add TSAnalysis#dev.

I am finishing the debugging. I will register the new version soon enough.

Note: the readme in the dev branch explains how to use the VARIMA functions.

1 Like

Looks really cool! Rn I only have time to test out the examples in the readme.
Quick question, in

Y = Y_df[:,2:end] |> JArray{Float64};

what does JArray do?

It is just a lazy alias:

const JArray{T, N} = Array{Union{Missing, T}, N};

I am using it to refer to data with (potentially) missing observations.

I have noticed that people are still following / liking this old post. I just wanted to stress that the package was renamed to MessyTimeSeries as described in https://discourse.julialang.org/t/messytimeseries-jl-and-messytimeseriesoptim-jl.