[ANN] Durbyn.jl — Time Series Forecasting in Julia

The Performance problem of tbats is resolved.
The code will be pushed by end of the week.

Update:

We have moved Plots.jl to package extension Thanks to @nilshg suggestion, such inputs are very valuable to us, please test the package and give us feedback.

I removed Plots from direct dependencies, add as weak dependency which reduces package load time for users who don’t need plotting.

At the moment Durbyn.jl has only 3 external dependencies: Distributions.jl, Polynomials.jl, Tables.jl all very established packages. Only Distributions.jl is heavy, which pulls in several dependencies.

3 Likes

TBATS now has grammar interface:

using Durbyn
using Durbyn.ModelSpecs

# Create sample data
data = (sales = randn(120) .+ 15,)

# Basic TBATS with defaults
spec = TbatsSpec(@formula(sales = tbats()))
fitted = fit(spec, data)
fc = forecast(fitted, h = 12)

# TBATS with monthly seasonality
spec = TbatsSpec(@formula(sales = tbats(seasonal_periods=12)))
fitted = fit(spec, data)
fc = forecast(fitted, h = 12)

# TBATS with multiple seasonal periods (e.g., hourly data with daily and weekly)
spec = TbatsSpec(@formula(sales = tbats(seasonal_periods=[24, 168])))
fitted = fit(spec, data)
fc = forecast(fitted, h = 12)

# TBATS with specific component selection
spec = TbatsSpec(@formula(sales = tbats(
    seasonal_periods=12,
    use_box_cox=true,
    use_trend=true,
    use_damped_trend=false,
    use_arma_errors=true
)))
fitted = fit(spec, data)
fc = forecast(fitted, h = 12)

# Additional options at fit time
fitted = fit(spec, data, bc_lower=0.0, bc_upper=1.5, biasadj=true)
2 Likes

:rocket: We just shipped the Theta and auto Theta forecasting models in Durbyn.jl
What’s inside:

  • Full suite of Theta variants (STM, OTM, DSTM, DOTM)
  • Automatic model selection + seasonal adjustment
  • Forecasts with prediction intervals in pure Julia
7 Likes