holt_linear_smoothing¶
- holt_linear_smoothing(obs: Tensor, level: Tensor | None, trend: Tensor | None, *, alpha: float | int | complex | Tensor, beta: float | int | complex | Tensor) tuple[Tensor, Tensor | None][source]¶
Performs Holt linear smoothing for a time step.
\[\begin{split}\begin{align*} s_0 &= x_0 \\ b_0 &= x_1 - x_0 \\ s_{t + 1} &= \alpha x_{t + 1} + (1 - \alpha) s_t \\ b_{t + 1} &= \beta (s_{t + 1} - s_t) + (1 - \beta) b_t \end{align*}\end{split}\]- Parameters:
obs (torch.Tensor) – latest state to consider for exponential smoothing, \(x_{t + 1}\).
level (torch.Tensor | None) – current value of the smoothed level, \(s\).
trend (torch.Tensor | None) – current value of the smoothed trend, \(b\).
alpha (float | int | complex | torch.Tensor) – level smoothing factor, \(\alpha\).
beta (float | int | complex | torch.Tensor) – trend smoothing factor, \(\beta\).
- Returns:
tuple containing output/updated state:
level: revised exponentially smoothed level.
trend: revised exponentially smoothed trend.
- Return type:
tuple[torch.Tensor, torch.Tensor | None]