-
Notifications
You must be signed in to change notification settings - Fork 22
Home
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).
| 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 |
| 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 the package to fully reproduce R's behaviour. The one in smooth was written in C++ to completely mimic the original C function. The other existing Python implementations were not as accurate.
See Installation for details.
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')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)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
These pages document parameters shared across multiple functions:
-
Model-Specification - The
modelparameter, ETS taxonomy, and model type methods -
Orders-and-Lags - ARIMA
ordersand seasonallags - Loss-Functions - Loss functions for estimation (MSE, MAE, likelihood, etc.)
-
Explanatory-Variables - External regressors via
formulaandxreg -
Initialisation - The
initialparameter and state initialization -
Persistence - Smoothing parameters (alpha, beta, gamma) and
phi - Bounds - Parameter bounds and stability restrictions
- Visualisation-and-Output - plot(), print(), summary(), xtable()
- Coefficients-and-Parameters - coef(), confint(), vcov(), coefbootstrap()
- Fitted-Values-and-Forecasts - fitted(), actuals(), predict(), forecast()
- Residuals-and-Errors - residuals(), rstandard(), rmultistep(), outlierdummy()
- Likelihood-and-Information-Criteria - logLik(), AIC(), BIC(), accuracy(), pls()
- Model-Information - nobs(), nparam(), sigma(), extractScale()
- Simulation-Functions - simulate(), sim.es(), sim.ssarima(), sim.ces(), sim.gum(), sim.sma()
- Refitting-and-Reforecasting - reapply(), reforecast()
- Scale-Model - sm() for modelling heteroscedasticity
| 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 | - |
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() | 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() | TBA | Log-likelihood |
| AIC / BIC | AIC() / BIC() | TBA | Information criteria |
| AICc / BICc | AICc() / BICc() | TBA | Corrected IC |
| accuracy | accuracy() | TBA | Forecast accuracy measures |
| pls | pls() | TBA | Prediction likelihood score |
Model Information:
| Method | R | Python | Description |
|---|---|---|---|
| nobs | nobs() | .nobs | Number of observations |
| nparam | nparam() | .nparam | Number of parameters |
| sigma | sigma() | .sigma | Residual standard deviation |
| 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) |
- Installation - Installation instructions and troubleshooting
- Model-Estimation - Optimisation and estimation parameters
- Resources - Publications and DOIs for each function