class_docstr: Combines multiple models by taking their median prediction.
code: def _combine_univariates(
      self, univariates: List[UnivariateTimeSeries]
  ) -> UnivariateTimeSeries:
      non_none = [var for var in univariates if var is not None]
      v = non_none[0]
      if self.abs_score and sum(self.models_used) > 1:
          signs = np.median(
              np.sign([var.np_values for var in non_none]), axis=0
          )
          signs[signs == 0] = -1
          new_vals = signs * np.median(
              [np.abs(var.np_values) for var in non_none], axis=0
          )
      else:
          new_vals = np.median(
              [var.np_values for var in non_none], axis=0
          )
      return UnivariateTimeSeries(v.time_stamps, new_vals, v.name)
  
imports: from abc import abstractmethod
  from collections import OrderedDict
  import copy
  import logging
  from typing import List, Optional, Union
  import numpy
  from merlion.evaluate.anomaly import TSADMetric
  from merlion.evaluate.forecast import ForecastMetric
  from merlion.utils import UnivariateTimeSeries, TimeSeries
  from merlion.utils.misc import AutodocABCMeta
label_desc: Use image node_id 1 for calling the Median obj's underlying member method code with example usage: obj._combine_univariates(univariates) and returns: UnivariateTimeSeries