Rob J Hyndman
COMPSTAT: 23 August 2022
No existing decomposition method handles all of these.
y_t = T_t + \sum_{i=1}^I S_t^{(i)} + R_t
y_t= | observation at time t |
T_t= | smooth trend component |
S_t^{(i)}= | seasonal component i |
i = 1,\dots,I | |
R_t= | remainder component |
# y: time series as vector
# periods: vector of seasonal periods in increasing order
# swindow: seasonal window values
# iterate: number of STL iterations
seasonality <- matrix(0, nrow = length(y), ncol = length(periods))
deseas <- y
for (j in 1:iterate) {
for (i in 1:length(periods)) {
deseas <- deseas + seasonality[, i]
fit <- stl(ts(deseas, frequency = periods[i]), s.window = swindow[i])
seasonality[, i] <- fit$season
deseas <- deseas - seasonality[, i]
}
}
trend <- fit$trend
remainder <- deseas - trend
return(trend, seasonality, remainder)
y_{t} = T_{t} + \sum_{i=1}^{I} S^{(i)}_{t} + \sum_{p=1}^P \phi_{p,t} z_{t,p} + R_{t}
T_t= | smooth trend component |
S_t^{(i)}= | seasonal component i (possibly complex topology) |
z_{p,t}= | covariate with coefficient \phi_{p,t} (possibly time-varying) |
R_t= | remainder component |
Smooth trend obtained by requiring \Delta_2 T_t \sim \text{NID}(0,\sigma_L^2)
f(\bm{D}_\ell \bm{\ell}) \propto \exp\left\{-\frac{1}{2}\big\|\bm{D}_\ell \bm{\ell} / \sigma_L\big\|_{L_2}^2\right\}
Smoothness in time t direction:
\begin{align*} \bm{D}_{tt,i} \bm{s}_i &= \langle \Delta^2_{t} \bm{S}^{(i)}_{k,t} \rangle \sim \text{NID}(\bm{0},\sigma_{i}^2 \bm{\Sigma}_{i})\\ f(\bm{s}_i) &\propto \exp\Big\{-\frac{1}{2}\big\|\ \bm{D}_{tt,i}\bm{s}_i / \sigma_i\big\|_{L_2}^2\Big\} \end{align*}
Analogous difference matrices \bm{D}_{kk,i} and \bm{D}_{kt,i} ensure smoothness in season and time-season directions.
Minimize wrt \bm{\Phi}, \bm{\ell} and \bm{s}_i:
\begin{align*} -\log \mathcal{L} &= \frac{1}{2\sigma_R} \Bigg\{ \Big\| \bm{y}- \sum_{i=1}^I \bm{Q}_i\bm{s}_i - \bm{\ell} - \bm{Z}\bm{\Phi} \Big\|_{L_2}^2 + \lambda_\ell\Big\|\bm{D}_\ell \bm{\ell}\Big\|_{L_2}^2 \\ & \hspace*{1cm} + \sum_{i=1}^{I}\left( \left\|\lambda_{tt,i} \bm{D}_{tt,i} \bm{s}_i \right\|_{L_2}^2 + \left\|\lambda_{st,i} \bm{D}_{st,i} \bm{s}_i \right\|_{L_2}^2 + \left\|\lambda_{ss,i} \bm{D}_{ss,i} \bm{s}_i \right\|_{L_2}^2 \right) \Bigg\} \end{align*}
\bm{y}_{+} = \bm{X}\bm{\beta} + \bm{\varepsilon}
\bm{X} = \begin{bmatrix} \bm{Q}_1 & \dots & \bm{Q}_I & \bm{I}_n & \bm{Z} \\ \lambda_{tt,1} \bm{D}_{tt,1} & \dots & 0 & 0 & 0 \\ \lambda_{st,1} \bm{D}_{st,1} & \dots & 0 & 0 & 0 \\ \lambda_{ss,1} \bm{D}_{ss,1} & \dots & 0 & 0 & 0 \\ 0 & \ddots & 0 & 0 & 0 \\ 0 & \dots & \lambda_{tt,I} \bm{D}_{tt,I} & 0 & 0 \\ 0 & \dots & \lambda_{st,I} \bm{D}_{st,I} & 0 & 0 \\ 0 & \dots & \lambda_{ss,I} \bm{D}_{ss,I} & 0 & 0 \\ 0 & \dots & 0 & \lambda_\ell \bm{D}_{tt} & 0 \end{bmatrix}
Three seasonal components, quadratic temperature regressors
Slides: robjhyndman.com/seminars/compstat2022