Skip to content

A Python implementation of Seasonal and Trend decomposition using Loess (STL) for time series data.

License

Notifications You must be signed in to change notification settings

jrmontag/STLDecompose

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STL Decompose

This is a relatively naive Python implementation of a seasonal and trend decomposition using Loess smoothing. Commonly referred to as an "STL decomposition", Cleveland's 1990 paper is the canonical reference.

This implementation is a variation of (and takes inspiration from) the implementation of the seasonal_decompose method in statsmodels. In this implementation, the trend component is calculated by substituting a configurable Loess regression for the convolutional method used in seasonal_decompose. It also extends the existing DecomposeResult from statsmodels to allow for forecasting based on the calculated decomposition.

Usage

The stldecompose package is relatively lightweight. It uses pandas.Dataframe for inputs and outputs, and exposes only a couple of primary methods - decompose() and forecast() - as well as a handful of built-in forecasting functions.

See the included IPython notebook for more details and usage examples.

Installation

A Python 3 virtual environment is recommended.

The preferred method of installation is via pip:

(env) $ pip install stldecompose

If you'd like the bleeding-edge version, you can also install from this Github repo:

(env) $ git clone [email protected]:jrmontag/STLDecompose.git
(env) $ cd STLDecompose; pip install .

More Resources