I’m writing a little package for time series simulations. It’s one of those packages that does just ONE thing: simulate time series, possibly complicated ones, and possibly with anomalies.
It’s still in early development, so it might be quite unstable. For the moment it can do sarima and sarimax with a undetermined amount of seasonal and/or auxiliary components; and has a pre-built “mixed Dirac Normal” (something that is exactly zero most of the time, and it’s a Normal sometime) to create additive anomalies.
The generative noise of the processes (often called z or \omega in the literature) can either be created on the fly from a given distribution (usually gaussian), or passed by the user.
It tries to be fast, both in sampling trajectories for the time series and for the user to define the stochastic process.
Compare to the wonderful ecosystem of libraries out there, Stranbo does NOT do fitting, does NOT do learning, does NOT (easily) do forecastic. It does NOT do anything else but simulating. There are some similarities with ARFIMA.jl, but ARFIMA, while allowing for fractional integration, does not allow for seasonal or auxiliary processes (nor seems to be oriented to include explicitly anomaly processes).
PS I’m announcing it before registration as I’m happily open to the idea of integrating Stranbo into some other package, if the community prefers that to a dedicated package. I wrote it because I couldn’t find these features anywhere else, but I’m not strongly opinionated about its fate.
Thanks! I wrote the initial code for ARFIMA. I think it is better for everyone if we manage to combine both packages into one. If you would like to open an issue and post a design idea of how to combine them, and then tag me, I would review it.
ARFIMA was designed with multiple dispatch: this is how it decides which processes to incorporate. Surely there is a way to use multiple dispatch to add one more “option” for s (seasonal) and x (mixed Dirac Normal").
The complexity here manifests itself when trying to be very general (i.e., allowing for user defined distributions in generative noise, a possibly large number of seasonality effects/ auxiliary effects with different coefficients, …).
I wonder if it might be faster to go in the other direction and add the fractional integration component into Stranbo.