Source code for pyFTS.common.transformations.boxcox

from pyFTS.common.transformations.transformation import Transformation 


[docs]class BoxCox(Transformation): """ Box-Cox power transformation y'(t) = log( y(t) ) y(t) = exp( y'(t) ) """ def __init__(self, plambda): super(BoxCox, self).__init__() self.plambda = plambda self.name = 'BoxCox' @property def parameters(self): return self.plambda
[docs] def apply(self, data, param=None, **kwargs): if self.plambda != 0: modified = [(dat ** self.plambda - 1) / self.plambda for dat in data] else: modified = [np.log(dat) for dat in data] return np.array(modified)
[docs] def inverse(self, data, param=None, **kwargs): if self.plambda != 0: modified = [np.exp(np.log(dat * self.plambda + 1) ) / self.plambda for dat in data] else: modified = [np.exp(dat) for dat in data] return np.array(modified)