Skip to main content

RandomWalkGenerator

Bases: BaseGenerator Generate random walk time series. y_t = y_{t-1} + drift + ε_t, where ε_t has standard deviation volatility and is drawn from innovation_distribution. The first output value already includes one step: y_1 = start_value + drift + ε_1. Parameters:

RandomWalkGenerator.generate_single_series

Generate values for a single random walk time series. Parameters: Returns:

SeasonalGenerator

Bases: BaseGenerator Generate time series with seasonal patterns. y_t = base_level + amplitude · sin(2π t / period) + trend · t + ε_t, where ε_t has standard deviation noise_level. Parameters:

SeasonalGenerator.generate_single_series

Generate values for a single seasonal time series. Parameters: Returns:

SARIMAGenerator

Bases: BaseGenerator Generate time series based on Seasonal ARIMA (SARIMAX) processes. Creates time series using a Seasonal AutoRegressive Integrated Moving Average model with optional eXogenous regressors. The model is defined by (p,d,q)x(P,D,Q,s). The SARIMA model uses multiplicative seasonal structure:
  • AR polynomial: φ(B)Φ(B^s) where B is the backshift operator
  • MA polynomial: θ(B)Θ(B^s)
  • Differencing: (1-B)^d (1-B^s)^D
For SARIMA(1,1,1)(1,1,1)_12, this creates dependencies at lags:
  • AR: 1, 12, 13 (from φ₁, Φ₁, φ₁Φ₁)
  • MA: 1, 12, 13 (from θ₁, Θ₁, θ₁Θ₁)
Parameters:

SARIMAGenerator.generate_single_series

Generate values for a single SARIMA time series. The generation process:
  1. Generate white noise innovations
  2. Apply MA filtering to get MA component
  3. Apply AR filtering recursively
  4. Apply inverse differencing to get integrated process
  5. Add mean/drift and exogenous effects
Parameters: Returns:

SARIMAGenerator.get_model_info

Get information about the SARIMA model configuration. Returns:

ETSGenerator

Bases: BaseGenerator Generate time series based on ETS (Error, Trend, Seasonal) models. Creates time series from the innovations state space form of exponential smoothing (Hyndman, Koehler, Ord & Snyder, 2008). Each component is additive (A), multiplicative (M), or absent (N):
  • y_t = μ_t + ε_t (additive error) or y_t = μ_t (1 + ε_t) (multiplicative)
  • μ_t combines level l, trend b (optionally damped by φ), and seasonal s, e.g. ETS(A,A,A): μ_t = l_{t-1} + φ b_{t-1} + s_{t-m}
  • States update per the standard taxonomy, e.g. ETS(A,A,A): l_t = l_{t-1} + φ b_{t-1} + α ε_t; b_t = φ b_{t-1} + β ε_t; s_t = s_{t-m} + γ ε_t
Common models: ETS(A,N,N) simple exponential smoothing, ETS(A,A,N) Holt, ETS(A,A,A) additive Holt-Winters, ETS(M,A,M) multiplicative Holt-Winters, ETS(A,Ad,A) damped Holt-Winters. Parameters:

ETSGenerator.generate_single_series

Generate values for a single ETS time series. Parameters: Returns:

ETSGenerator.generate_with_states

Generate series and return both observations and hidden states. This is useful for analyzing the underlying ETS state evolution. Parameters: Returns:

ETSGenerator.get_model_info

Get information about the ETS model configuration. Returns:

INARGenerator

Bases: BaseGenerator Generate integer-valued time series with autoregressive structure. INAR(p) models use binomial thinning to maintain integer values while preserving autoregressive dynamics:
where ‘o’ is binomial thinning, alpha o X = sum_{i=1}^{X} Bernoulli(alpha), and epsilon_t are i.i.d. count innovations (Poisson or negative binomial). Stationarity requires sum(alpha) < 1, giving unconditional mean E[X] = E[epsilon] / (1 - sum(alpha)). The autocorrelation function follows the same Yule-Walker recursions as a Gaussian AR(p); for INAR(1), acf(k) = alpha^k. With Poisson innovations the INAR(1) stationary marginal is Poisson(innovation_mean / (1 - alpha)). Parameters:

INARGenerator.generate_single_series

Generate a single INAR time series. Parameters: Returns:

INARGenerator.get_model_info

Return information about the INAR configuration.