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

# mode

Mixture.mode(*, method=None)

  Mode (most likely value)

  Informally, the mode is a value that a random variable has the highest probability (density) of assuming. That is, the mode is the element of the support \(\chi\) that maximizes the probability density function \(f(x)\):

  \[\text{mode} = \arg\max_{x \in \chi} f(x)\]
  Parameters:
    method{None, ‘formula’, ‘optimization’}

      The strategy used to evaluate the mode. By default (`None`), the infrastructure chooses between the following options, listed in order of precedence.

      - `'formula'`: use a formula for the median

      - `'optimization'`: numerically maximize the PDF

      Not all method options are available for all distributions. If the selected method is not available, a `NotImplementedError` will be raised.

  Returns:
    out array

      The mode

  See also

  `mean`
  `median`
  `pdf`

  Notes

  For some distributions

  1. the mode is not unique (e.g. the uniform distribution);

  2. the PDF has one or more singularities, and it is debateable whether a singularity is considered to be in the domain and called the mode (e.g. the gamma distribution with shape parameter less than 1); and/or

  3. the probability density function may have one or more local maxima that are not a global maximum (e.g. mixture distributions).

  In such cases, `mode` will

  1. return a single value,

  2. consider the mode to occur at a singularity, and/or

  3. return a local maximum which may or may not be a global maximum.

  If a formula for the mode is not specifically implemented for the chosen distribution, SciPy will attempt to compute the mode numerically, which may not meet the user’s preferred definition of a mode. In such cases, the user is encouraged to subclass the distribution and override `mode`.

  References

  [1]

  Mode (statistics), Wikipedia, https://en.wikipedia.org/wiki/Mode_(statistics)

  Examples

  Instantiate a distribution with the desired parameters:

      >>> from scipy import stats
      >>> X = stats.Normal(mu=1., sigma=2.)

  Evaluate the mode:

      >>> X.mode()
      1.0

  If the mode is not uniquely defined, `mode` nonetheless returns a single value.

      >>> X = stats.Uniform(a=0., b=1.)
      >>> X.mode()
      0.5

  If this choice does not satisfy your requirements, subclass the distribution and override `mode`:

      >>> class BetterUniform(stats.Uniform):
      ...     def mode(self):
      ...         return self.b
      >>> X = BetterUniform(a=0., b=1.)
      >>> X.mode()
      1.0