Return a dataset transformed by a Box-Cox power transformation.
Parameters:
xndarray
Input array to be transformed.
If lmbda is not None, this is an alias of
scipy.special.boxcox.
Returns nan if x<0; returns -inf if x==0andlmbda<0.
If lmbda is None, array must be positive, 1-dimensional, and
non-constant.
lmbdascalar, optional
If lmbda is None (default), find the value of lmbda that maximizes
the log-likelihood function and return it as the second output
argument.
If lmbda is not None, do the transformation for that value.
alphafloat, optional
If lmbda is None and alpha is not None (default), return the
100*(1-alpha)% confidence interval for lmbda as the third
output argument. Must be between 0.0 and 1.0.
If lmbda is None, optimizer is the scalar optimizer used to find
the value of lmbda that minimizes the negative log-likelihood
function. optimizer is a callable that accepts one argument:
funcallable
The objective function, which evaluates the negative
log-likelihood function at a provided value of lmbda
and returns an object, such as an instance of
scipy.optimize.OptimizeResult, which holds the optimal value of
lmbda in an attribute x.
boxcox requires the input data to be positive. Sometimes a Box-Cox
transformation provides a shift parameter to achieve this; boxcox does
not. Such a shift parameter is equivalent to adding a positive constant to
x before calling boxcox.
The confidence limits returned when alpha is provided give the interval
where:
We generate some random variates from a non-normal distribution and make a
probability plot for it, to show it is non-normal in the tails:
>>> fig=plt.figure()>>> ax1=fig.add_subplot(211)>>> x=stats.loggamma.rvs(5,size=500)+5>>> prob=stats.probplot(x,dist=stats.norm,plot=ax1)>>> ax1.set_xlabel('')>>> ax1.set_title('Probplot against normal distribution')
We now use boxcox to transform the data so it’s closest to normal:
>>> ax2=fig.add_subplot(212)>>> xt,_=stats.boxcox(x)>>> prob=stats.probplot(xt,dist=stats.norm,plot=ax2)>>> ax2.set_title('Probplot after Box-Cox transformation')