Skip to main content
`Ctrl`+`K`
scipy.stats.

# yeojohnson_normmax

scipy.stats.yeojohnson_normmax(x, brack=None, *, nan_policy='propagate')

  Compute optimal Yeo-Johnson transform parameter.

  Compute optimal Yeo-Johnson transform parameter for input data, using maximum likelihood estimation.

  Parameters:
    x array_like

      Input array.

    brack 2-tuple, optional

      The starting interval for a downhill bracket search with optimize.brent. Note that this is in most cases not critical; the final result is allowed to be outside this bracket. If None, optimize.fminbound is used with bounds that avoid overflow.

    nan_policy{‘propagate’, ‘omit’, ‘raise’}

      Defines how to handle input NaNs.

      - `propagate`: if a NaN is present in the input, the output will be NaN.

      - `omit`: NaNs will be omitted when performing the calculation.

      - `raise`: if a NaN is present, a `ValueError` will be raised.

  Returns:
    maxlog float

      The optimal transform parameter found.

  See also

  `yeojohnson`, `yeojohnson_llf`, `yeojohnson_normplot`

  Notes

  Added in version 1.2.0.

  Examples

      >>> import numpy as np
      >>> from scipy import stats
      >>> import matplotlib.pyplot as plt

  Generate some data and determine optimal `lmbda`

      >>> rng = np.random.default_rng()
      >>> x = stats.loggamma.rvs(5, size=30, random_state=rng) + 5
      >>> lmax = stats.yeojohnson_normmax(x)

      >>> fig = plt.figure()
      >>> ax = fig.add_subplot(111)
      >>> prob = stats.yeojohnson_normplot(x, -10, 10, plot=ax)
      >>> ax.axvline(lmax, color='r')

      >>> plt.show()