gstools.normalizer.BoxCoxShift
- class gstools.normalizer.BoxCoxShift(data=None, **parameter)[source]
Bases:
Normalizer
Box-Cox (1964) transformed fields including shifting.
- Parameters:
Notes
This transformation is given by [Box1964]:
\[\begin{split}y=\begin{cases} \frac{(x+s)^{\lambda} - 1}{\lambda} & \lambda\neq 0 \\ \log(x+s) & \lambda = 0 \end{cases}\end{split}\]Fitting the shift parameter is rather hard. You should consider skipping “shift” during fitting:
>>> data = range(5) >>> norm = BoxCoxShift(shift=0.5) >>> norm.fit(data, skip=["shift"]) {'shift': 0.5, 'lmbda': 0.6747515267420799}
References
[Box1964]G.E.P. Box and D.R. Cox, “An Analysis of Transformations”, Journal of the Royal Statistical Society B, 26, 211-252, (1964)
- Attributes:
denormalize_range
tuple
: Valid range for output data depending on lmbda.name
str
: The name of the normalizer class.normalize_range
tuple
: Valid range for input data depending on shift.
Methods
denormalize
(data)Transform to input distribution.
derivative
(data)Factor for normal PDF to gain target PDF.
fit
(data[, skip])Fitting the transformation to data by maximizing Log-Likelihood.
kernel_loglikelihood
(data)Kernel Log-Likelihood for given data with current parameters.
likelihood
(data)Likelihood for given data with current parameters.
loglikelihood
(data)Log-Likelihood for given data with current parameters.
normalize
(data)Transform to normal distribution.
- denormalize(data)
Transform to input distribution.
- Parameters:
data (array_like) – Input data (normal distributed).
- Returns:
Denormalized data.
- Return type:
- derivative(data)
Factor for normal PDF to gain target PDF.
- Parameters:
data (array_like) – Input data (not normal distributed).
- Returns:
Derivative of the normalization transformation function.
- Return type:
- fit(data, skip=None, **kwargs)
Fitting the transformation to data by maximizing Log-Likelihood.
- Parameters:
data (array_like) – Input data to fit the transformation to in order to gain normality.
skip (
list
ofstr
orNone
, optional) – Names of parameters to be skipped in fitting. The default is None.**kwargs – Keyword arguments passed to
scipy.optimize.minimize_scalar
when only one parameter present orscipy.optimize.minimize
.
- Returns:
Optimal parameters given by names.
- Return type:
- kernel_loglikelihood(data)
Kernel Log-Likelihood for given data with current parameters.
- Parameters:
data (array_like) – Input data to fit the transformation to in order to gain normality.
- Returns:
Kernel Log-Likelihood of the given data.
- Return type:
Notes
This loglikelihood function is neglecting additive constants, that are not needed for optimization.
- likelihood(data)
Likelihood for given data with current parameters.
- Parameters:
data (array_like) – Input data to fit the transformation to in order to gain normality.
- Returns:
Likelihood of the given data.
- Return type:
- loglikelihood(data)
Log-Likelihood for given data with current parameters.
- Parameters:
data (array_like) – Input data to fit the transformation to in order to gain normality.
- Returns:
Log-Likelihood of the given data.
- Return type:
- normalize(data)
Transform to normal distribution.
- Parameters:
data (array_like) – Input data (not normal distributed).
- Returns:
Normalized data.
- Return type:
- default_parameter = {'lmbda': 1, 'shift': 0}
Default parameters of the BoxCoxShift-Normalizer.
- Type:
- property denormalize_range
Valid range for output data depending on lmbda.
(-1/lmbda, inf) or (-inf, -1/lmbda)
- Type: