scipy.stats.

вариация#

scipy.stats.вариация(a, ось=0, nan_policy='propagate', ddof=0, *, keepdims=False)[источник]#

Вычислить коэффициент вариации.

Коэффициент вариации — это стандартное отклонение, деленное на среднее значение. Эта функция эквивалентна:

np.std(x, axis=axis, ddof=ddof) / np.mean(x)

Значение по умолчанию для ddof равно 0, но многие определения коэффициента вариации используют квадратный корень из несмещенной выборочной дисперсии для выборочного стандартного отклонения, что соответствует ddof=1.

Функция не берёт абсолютное значение среднего данных, поэтому возвращаемое значение отрицательно, если среднее отрицательно.

Параметры:
aarray_like

Входной массив.

осьint или None, по умолчанию: 0

Если это целое число, ось входных данных, по которой вычисляется статистика. Статистика каждого среза по оси (например, строки) входных данных появится в соответствующем элементе вывода. Если None, вход будет сведён в одномерный массив перед вычислением статистики.

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

Определяет, как обрабатывать входные значения NaN.

  • propagate: если NaN присутствует в срезе оси (например, строке), вдоль которой вычисляется статистика, соответствующая запись вывода будет NaN.

  • omit: NaN будут пропущены при выполнении расчета. Если в срезе оси, вдоль которого вычисляется статистика, остается недостаточно данных, соответствующая запись вывода будет NaN.

  • raise: если присутствует NaN, то ValueError будет вызвано исключение.

ddofint, необязательный

Даёт «Дельта степеней свободы», используемых при вычислении стандартного отклонения. Делитель, используемый при расчёте стандартного отклонения, равен N - ddof, где N это количество элементов. ddof должно быть меньше N; если это не так, результат будет nan или inf, в зависимости от N и значения в массиве. По умолчанию ddof равно нулю для обратной совместимости, но рекомендуется использовать ddof=1 чтобы гарантировать, что выборочное стандартное отклонение вычисляется как квадратный корень из несмещённой выборочной дисперсии.

keepdimsbool, по умолчанию: False

Если установлено значение True, оси, которые были сокращены, остаются в результате как размерности с размером один. С этой опцией результат будет корректно транслироваться относительно входного массива.

Возвращает:
вариацияndarray

Рассчитанная вариация вдоль запрошенной оси.

Примечания

Существует несколько граничных случаев, которые обрабатываются без генерации предупреждения:

  • Если и среднее, и стандартное отклонение равны нулю, nan возвращается.

  • Если среднее равно нулю, а стандартное отклонение ненулевое, inf возвращается.

  • Если входные данные имеют нулевую длину (либо потому что массив имеет нулевую длину, либо все входные значения nan и nan_policy является 'omit'), nan возвращается.

  • Если вход содержит inf, nan возвращается.

Начиная с SciPy 1.9, np.matrix входные данные (не рекомендуется для нового кода) преобразуются в np.ndarray перед выполнением вычисления. В этом случае результатом будет скаляр или np.ndarray подходящей формы вместо 2D np.matrix. Аналогично, хотя маскированные элементы маскированных массивов игнорируются, результатом будет скаляр или np.ndarray вместо маскированного массива с mask=False.

Ссылки

[1]

Цвиллингер, Д. и Кокошка, С. (2000). CRC Стандартные таблицы и формулы вероятности и статистики. Chapman & Hall: Нью-Йорк. 2000.

Примеры

>>> import numpy as np
>>> from scipy.stats import variation
>>> variation([1, 2, 3, 4, 5], ddof=1)
0.5270462766947299

Вычислить вариацию вдоль заданного измерения массива, который содержит несколько nan значения:

>>> x = np.array([[  10.0, np.nan, 11.0, 19.0, 23.0, 29.0, 98.0],
...               [  29.0,   30.0, 32.0, 33.0, 35.0, 56.0, 57.0],
...               [np.nan, np.nan, 12.0, 13.0, 16.0, 16.0, 17.0]])
>>> variation(x, axis=1, ddof=1, nan_policy='omit')
array([1.05109361, 0.31428986, 0.146483  ])