Skip to content
Ivan Svetunkov edited this page Feb 11, 2026 · 20 revisions

smooth Wiki

Welcome to the smooth package wiki! The smooth package implements Single Source of Error (SSOE) state-space models for forecasting and time series analysis, available for both R and Python (under development).

Quick Links

Main Forecasting Functions

Function Description Python R
ADAM Augmented Dynamic Adaptive Model - unified ETS/ARIMA/regression framework Yes Yes
auto.adam Automatic ADAM with distribution and ARIMA order selection TBA Yes
ES Exponential Smoothing (ETS) wrapper for ADAM Yes Yes
CES Complex Exponential Smoothing TBA Yes
SSARIMA State Space ARIMA TBA Yes
MSARIMA Multiple Seasonal ARIMA TBA Yes
GUM Generalised Univariate Model TBA Yes
SMA Simple Moving Average TBA Yes
OES Occurrence ETS for intermittent demand TBA Yes

Utility Functions

Function Description Python R
msdecompose Multiple seasonal decomposition (used for ADAM/ES initialization) Yes Yes
lowess Scatter plot smoothing from Cleveland, W. S. (1979) Yes in stats package

lowess was implemented in Python to exactly reproduce R's stats::lowess behaviour. The implementation is written in C++ based on R's original C code, producing identical results while running faster than other Python implementations.

Getting Started

Installation

See Installation for details.

Python

from smooth import ADAM, ES, msdecompose

# Automatic ETS model selection
model = ADAM(model="ZXZ", lags=12)
model.fit(y)
forecasts = model.predict(h=12)

# Simple Exponential Smoothing
model = ES(model="ZXZ")
model.fit(y)

# Time series decomposition
result = msdecompose(y, lags=[12], type='additive')

R

library(smooth)

# Automatic model selection
model <- adam(y, model="ZXZ", lags=12)
forecast(model, h=12)

# Automatic distribution and ARIMA selection
model <- auto.adam(y, model="ZZZ",
                   orders=list(ar=2, i=2, ma=2, select=TRUE),
                   distribution=c("dnorm","dlaplace","ds"))

# Exponential Smoothing
model <- es(y, model="ZXZ", h=12)

Recommended Function

ADAM is the recommended function for most forecasting tasks. It provides:

  • Unified ETS and ARIMA framework
  • Multiple seasonality support
  • Various error distributions
  • Intermittent demand handling
  • External regressors
  • Automatic model selection
  • ... and more

Common Parameters

These pages document parameters shared across multiple functions:

Methods and Tools

Output and Visualisation

Parameters and Forecasts

Residuals and Diagnostics

Model Comparison

Model Information

Advanced Methods

R vs Python Comparison

Main Functions

Function R Python Wiki
adam() Yes ADAM class ADAM
auto.adam() Yes TBA auto.adam
es() Yes ES class ES
ces() Yes TBA CES
gum() Yes TBA GUM
ssarima() Yes TBA SSARIMA
msarima() Yes TBA MSARIMA
sma() Yes TBA SMA
oes() Yes TBA OES
msdecompose() Yes Yes msdecompose
lowess() in stats Yes lowess

Available functionality

Function R Python Description Function
Estimate ETS model="ANN" model="ANN" Estimate a specific type of ETS model ADAM, ES
Default selection model="ZXZ" model="ZXZ" Select the best model from an automatically created pool ADAM, ES
Selection from a pool model=c("ANN","AAN","AAA") model=["ANN","AAN","AAA"] Select the best model from the defined pool ADAM, ES
Combination model="CCC" model="CCC" AIC-weighted combination of forecasts ADAM, ES
Combination from a pool model=c("ANN","AAN","AAA","CNN") model=["ANN","AAN","AAA","CNN"] AIC-weighted combination of forecasts from the pool of models ADAM, ES

Methods

Fitting and Forecasting:

Method R Python Description
fit adam() .fit() Fit the model
predict forecast() / predict() .predict() Generate forecasts
fitted fitted() .fitted Fitted values
actuals actuals() .actuals Original data
simulate simulate() TBA Simulate from model

Output and Visualisation:

Method R Python Description
summary summary() TBA Model summary with confidence intervals etc
print print() print() Basic output
plot plot() TBA Diagnostic plots
xtable xtable() TBA LaTeX tables

Coefficients and Parameters:

Method R Python Description
coef coef() .coef Extract coefficients
confint confint() TBA Confidence intervals
vcov vcov() TBA Variance-covariance matrix
coefbootstrap coefbootstrap() TBA Bootstrap coefficients

Residuals and Errors:

Method R Python Description
residuals residuals() .residuals Model residuals
rstandard rstandard() TBA Standardised residuals
rstudent rstudent() TBA Studentised residuals
rmultistep rmultistep() TBA Multi-step forecast errors
multicov multicov() TBA Multi-step error covariance
outlierdummy outlierdummy() TBA Outlier dummy variables

Likelihood and Information Criteria:

Method R Python Description
logLik logLik() .loglik Log-likelihood
pointLik pointLik() TBA Point log-likelihoods per observation
AIC / BIC AIC() / BIC() .aic / .bic Information criteria
AICc / BICc AICc() / BICc() .aicc / .bicc Corrected IC
pAIC / pBIC pAIC() / pBIC() TBA Point information criteria
accuracy accuracy() TBA Forecast accuracy measures

Model Information:

Method R Python Description
nobs nobs() .nobs Number of observations
nparam nparam() .nparam Number of parameters
sigma sigma() .sigma Residual standard deviation
extractScale extractScale() TBA Scale parameter (time-varying if sm used)
errorType errorType() .error_type Error type (A/M)
modelType modelType() .model_type Model specification
modelName modelName() .model_name Full model name
orders orders() .orders ARIMA orders
lags lags() .lags Model lags

Advanced Methods:

Method R Python Description
reapply reapply() TBA Refit with perturbed parameters
reforecast reforecast() TBA Forecast with parameter uncertainty
sm sm() TBA Scale model (heteroscedasticity)
implant implant() TBA Merge location and scale models

Simulation Functions:

Method R Python Description
sim.es sim.es() TBA Simulate from ETS models
sim.ssarima sim.ssarima() TBA Simulate from ARIMA models
sim.ces sim.ces() TBA Simulate from CES models
sim.gum sim.gum() TBA Simulate from GUM models
sim.sma sim.sma() TBA Simulate from SMA models
sim.oes sim.oes() TBA Simulate occurrence probabilities

Additional Resources

Clone this wiki locally