Source code for pysad.statistics.variance_meter

from pysad.core.base_statistic import UnivariateStatistic
from pysad.statistics.count_meter import CountMeter
from pysad.statistics.sum_meter import SumMeter
from pysad.statistics.sum_squares_meter import SumSquaresMeter


[docs]class VarianceMeter(UnivariateStatistic): """The statistic that keeps track of the variance of the values. The variance formula is: (sum_squares - (sum**2)/count)/count. Attrs: sum_meter (pyod.statistics.SumMeter object): SumMeter object. sum_squares_meter (pyod.statistics.SumSquaresMeter object): SumSquaresMeter object. count_meter (pyod.statistics.CountMeter object): CountMeter object. """ def __init__(self): self.sum_meter = SumMeter() self.sum_squares_meter = SumSquaresMeter() self.count_meter = CountMeter()
[docs] def update(self, num): """Updates the statistic with the value for a timestep. Args: num (float): The incoming value, for which the statistic is used. Returns: object: self. """ self.sum_squares_meter.update(num) self.count_meter.update(num) self.sum_meter.update(num) return self
[docs] def remove(self, num): """Updates the statistic by removing particular value. Args: num (float): The value to be removed. Returns: object: self. """ self.sum_squares_meter.remove(num) self.sum_meter.remove(num) self.count_meter.remove(num) return self
[docs] def get(self): """ Method to obtain the tracked statistic. Returns: float: The statistic. """ sum_squares = self.sum_squares_meter.get() sum = self.sum_meter.get() count = self.count_meter.get() var = (sum_squares - (sum**2) / count) / count return var