class_docstr: Exponential Moving Average.
  This method uses a data point's deviation from the exponential moving average of a lagging window
  to determine its anomaly score.
docstr: Compute anomaly scores using a lagging window.
code: def _compute_anom_data_using_window(self):
      """
      Compute anomaly scores using a lagging window.
      """
      anom_scores = {}
      values = self.time_series.values
      stdev = numpy.std(values)
      for i, (timestamp, value) in enumerate(self.time_series_items):
          if i < self.lag_window_size:
              anom_score = self._compute_anom_score(
                  values[: i + 1], value
              )
          else:
              anom_score = self._compute_anom_score(
                  values[i - self.lag_window_size : i + 1], value
              )
          if stdev:
              anom_scores[timestamp] = anom_score / stdev
          else:
              anom_scores[timestamp] = anom_score
      self.anom_scores = TimeSeries(self._denoise_scores(anom_scores))
  
file_path: luminol/src/luminol/algorithms/anomaly_detector_algorithms/exp_avg_detector.py
imports: import numpy
  from luminol import utils
  from luminol.algorithms.anomaly_detector_algorithms import AnomalyDetectorAlgorithm
  from luminol.modules.time_series import TimeSeries
  from luminol.constants import DEFAULT_EMA_SMOOTHING_FACTOR, DEFAULT_EMA_WINDOW_SIZE_PCT
label_desc: Use image node_id 3 for calling the ExpAvgDetector obj's underlying member method code with example usage: obj._compute_anom_data_using_window() without return types