TIMESERIES Procedure

Seasonal Decomposition

Seasonal decomposition/analysis can be performed on the working series by specifying the OUTDECOMP= option, the PRINT=DECOMP option, or one of the PLOTS= options associated with decomposition in the PROC TIMESERIES statement. The DECOMP statement enables you to specify options related to decomposition. The TIMESERIES procedure uses classical decomposition. More complex seasonal decomposition/adjustment analysis can be performed by using the X11 or the X12 procedure of SAS/ETS.

The DECOMP statement MODE= option determines the mode of the seasonal adjustment decomposition to be performed. There are four modes: multiplicative (MODE=MULT), additive (MODE=ADD), pseudo-additive (MODE=PSEUDOADD), and log-additive (MODE=LOGADD) decomposition. The default is MODE=MULTORADD which specifies MODE=MULT for series that are strictly positive, MODE=PSEUDOADD for series that are nonnegative, and MODE=ADD for series that are not nonnegative.

When MODE=LOGADD is specified, the components are exponentiated to the original metric.

The DECOMP statement LAMBDA= option specifies the Hodrick-Prescott filter parameter (Hodrick and Prescott 1980). The default is LAMBDA=1600. The Hodrick-Prescott filter is used to decompose the trend-cycle component into the trend component and cycle component in an additive fashion. A smaller parameter assigns less significance to the cycle; that is, LAMBDA=0 implies no cycle component.

The notation and keywords associated with seasonal decomposition/adjustment analysis are defined in Table 3.

Table 3: Seasonal Adjustment Formulas

Component Keyword MODE= Option Formula
Original series ORIGINAL MULT upper O Subscript t Baseline equals upper T upper C Subscript t Baseline upper S Subscript t Baseline upper I Subscript t
ADD upper O Subscript t Baseline equals upper T upper C Subscript t Baseline plus upper S Subscript t Baseline plus upper I Subscript t
LOGADD log left-parenthesis upper O Subscript t Baseline right-parenthesis equals upper T upper C Subscript t Baseline plus upper S Subscript t Baseline plus upper I Subscript t
PSEUDOADD upper O Subscript t Baseline equals upper T upper C Subscript t Baseline left-parenthesis upper S Subscript t Baseline plus upper I Subscript t Baseline minus 1 right-parenthesis
Trend-cycle component TCC MULT Centered moving average of upper O Subscript t
ADD Centered moving average of upper O Subscript t
LOGADD Centered moving average of log left-parenthesis upper O Subscript t Baseline right-parenthesis
PSEUDOADD Centered moving average of upper O Subscript t
Seasonal-irregular component SIC MULT upper S upper I Subscript t Baseline equals upper S Subscript t Baseline upper I Subscript t Baseline equals upper O Subscript t Baseline slash upper T upper C Subscript t
ADD upper S upper I Subscript t Baseline equals upper S Subscript t Baseline plus upper I Subscript t Baseline equals upper O Subscript t Baseline minus upper T upper C Subscript t
LOGADD upper S upper I Subscript t Baseline equals upper S Subscript t Baseline plus upper I Subscript t Baseline equals log left-parenthesis upper O Subscript t Baseline right-parenthesis minus upper T upper C Subscript t
PSEUDOADD upper S upper I Subscript t Baseline equals upper S Subscript t Baseline plus upper I Subscript t Baseline minus 1 equals upper O Subscript t Baseline slash upper T upper C Subscript t
Seasonal component SC MULT Seasonal averages of upper S upper I Subscript t
ADD Seasonal averages of upper S upper I Subscript t
LOGADD Seasonal averages of upper S upper I Subscript t
PSEUDOADD Seasonal averages of upper S upper I Subscript t
Irregular component IC MULT upper I Subscript t Baseline equals upper S upper I Subscript t Baseline slash upper S Subscript t
ADD upper I Subscript t Baseline equals upper S upper I Subscript t Baseline minus upper S Subscript t
LOGADD upper I Subscript t Baseline equals upper S upper I Subscript t Baseline minus upper S Subscript t
PSEUDOADD upper I Subscript t Baseline equals upper S upper I Subscript t Baseline minus upper S Subscript t Baseline plus 1
Trend-cycle-seasonal component TCS MULT upper T upper C upper S Subscript t Baseline equals upper T upper C Subscript t Baseline upper S Subscript t Baseline equals upper O Subscript t Baseline slash upper I Subscript t
ADD upper T upper C upper S Subscript t Baseline equals upper T upper C Subscript t Baseline plus upper S Subscript t Baseline equals upper O Subscript t Baseline minus upper I Subscript t
LOGADD upper T upper C upper S Subscript t Baseline equals upper T upper C Subscript t Baseline plus upper S Subscript t Baseline equals upper O Subscript t Baseline minus upper I Subscript t
PSEUDOADD upper T upper C upper S Subscript t Baseline equals upper T upper C Subscript t Baseline upper S Subscript t
Trend component TC MULT upper T Subscript t Baseline equals upper T upper C Subscript t Baseline minus upper C Subscript t
ADD upper T Subscript t Baseline equals upper T upper C Subscript t Baseline minus upper C Subscript t
LOGADD upper T Subscript t Baseline equals upper T upper C Subscript t Baseline minus upper C Subscript t
PSEUDOADD upper T Subscript t Baseline equals upper T upper C Subscript t Baseline minus upper C Subscript t
Cycle component CC MULT upper C Subscript t Baseline equals upper T upper C Subscript t Baseline minus upper T Subscript t
ADD upper C Subscript t Baseline equals upper T upper C Subscript t Baseline minus upper T Subscript t
LOGADD upper C Subscript t Baseline equals upper T upper C Subscript t Baseline minus upper T Subscript t
PSEUDOADD upper C Subscript t Baseline equals upper T upper C Subscript t Baseline minus upper T Subscript t
Seasonally adjusted series SA MULT upper S upper A Subscript t Baseline equals upper O Subscript t Baseline slash upper S Subscript t Baseline equals upper T upper C Subscript t Baseline upper I Subscript t
ADD upper S upper A Subscript t Baseline equals upper O Subscript t Baseline minus upper S Subscript t Baseline equals upper T upper C Subscript t Baseline plus upper I Subscript t
LOGADD upper S upper A Subscript t Baseline equals upper O Subscript t Baseline slash normal e normal x normal p left-parenthesis upper S Subscript t Baseline right-parenthesis equals normal e normal x normal p left-parenthesis upper T upper C Subscript t Baseline plus upper I Subscript t Baseline right-parenthesis
PSEUDOADD upper S upper A Subscript t Baseline equals upper T upper C Subscript t Baseline upper I Subscript t


When s is odd the trend-cycle component is computed from the s-period centered moving average as follows:

upper T upper C Subscript t Baseline equals sigma-summation Underscript k equals minus left floor s slash 2 right floor Overscript left floor s slash 2 right floor Endscripts y Subscript t plus k Baseline slash s

When s is even the trend-cycle component is computed from the s-period centered moving average as follows:

upper T upper C Subscript t Baseline equals sigma-summation Underscript k equals minus s slash 2 Overscript s slash 2 minus 1 Endscripts left-parenthesis y Subscript t plus k Baseline plus y Subscript t plus 1 plus k Baseline right-parenthesis slash 2 s

The seasonal component is obtained by averaging the seasonal-irregular component for each season.

upper S Subscript k plus j s Baseline equals sigma-summation Underscript t equals k mod s Endscripts StartFraction upper S upper I Subscript t Baseline Over upper T slash s EndFraction

where 0 less-than-or-equal-to j less-than-or-equal-to upper T slash s and 1 less-than-or-equal-to k less-than-or-equal-to s. The seasonal components are normalized to sum to one (multiplicative) or zero (additive).

Last updated: June 19, 2025