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

# mvsdist

scipy.stats.mvsdist(data)

  ‘Frozen’ distributions for mean, variance, and standard deviation of data.

  Parameters:
    data array_like

      Input array. Converted to 1-D using ravel. Requires 2 or more data-points.

  Returns:
    mdist“frozen” distribution object

      Distribution object representing the mean of the data.

    vdist“frozen” distribution object

      Distribution object representing the variance of the data.

    sdist“frozen” distribution object

      Distribution object representing the standard deviation of the data.

  See also

  `bayes_mvs`

  Notes

  The return values from `bayes_mvs(data)` is equivalent to `tuple((x.mean(), x.interval(0.90)) for x in mvsdist(data))`.

  In other words, calling `<dist>.mean()` and `<dist>.interval(0.90)` on the three distribution objects returned from this function will give the same results that are returned from `bayes_mvs`.

  Array API Standard Support

  `mvsdist` has experimental support for Python Array API Standard compatible backends in addition to NumPy. Please consider testing these features by setting an environment variable `SCIPY_ARRAY_API=1` and providing CuPy, PyTorch, JAX, or Dask arrays as array arguments. The following combinations of backend and device (or other capability) are supported.

  Library | CPU | GPU
  --- | --- | ---
  NumPy | ✅ | n/a
  CuPy | n/a | ⛔
  PyTorch | ⛔ | ⛔
  JAX | ⛔ | ⛔
  Dask | ⛔ | n/a

  > See Support for the array API standard for more information.

  References

  T.E. Oliphant, “A Bayesian perspective on estimating mean, variance, and standard-deviation from data”, https://scholarsarchive.byu.edu/facpub/278, 2006.

  Examples

      >>> from scipy import stats
      >>> data = [6, 9, 12, 7, 8, 8, 13]
      >>> mean, var, std = stats.mvsdist(data)

  We now have frozen distribution objects “mean”, “var” and “std” that we can examine:

      >>> mean.mean()
      9.0
      >>> mean.interval(0.95)
      (6.6120585482655692, 11.387941451734431)
      >>> mean.std()
      1.1952286093343936