Source code for darts.models.filtering.moving_average_filter

"""
Moving Average
--------------
"""

from darts.models.filtering.filtering_model import FilteringModel
from darts.timeseries import TimeSeries


[docs]class MovingAverageFilter(FilteringModel): """ A simple moving average filter. Works on deterministic and stochastic series. """ def __init__(self, window: int, centered: bool = True): """ Parameters ---------- window The length of the window over which to average values centered Set the labels at the center of the window. If not set, the averaged values are lagging after the original values. """ super().__init__() self.window = window self.centered = centered
[docs] def filter(self, series: TimeSeries): """ Computes a moving average of this series' values and returns a new TimeSeries. The returned series has the same length and time axis as `series`. (Note that this might create border effects). Parameters ---------- series The a deterministic series to average Returns ------- TimeSeries A time series containing the average values """ transformation = { "function": "mean", "mode": "rolling", "window": self.window, "center": self.centered, "min_periods": 1, } return series.window_transform( transforms=transformation, forecasting_safe=False )