асимметрия#
- scipy.stats.асимметрия(a, ось=0, смещение=True, nan_policy='propagate', *, keepdims=False)[источник]#
Вычислить выборочную асимметрию набора данных.
Для нормально распределённых данных асимметрия должна быть около нуля. Для унимодальных непрерывных распределений значение асимметрии больше нуля означает, что в правом хвосте распределения больше веса. Функция
skewtestможет использоваться для определения, достаточно ли близко к нулю значение асимметрии, статистически говоря.- Параметры:
- andarray
Входной массив.
- осьint или None, по умолчанию: 0
Если это целое число, ось входных данных, по которой вычисляется статистика. Статистика каждого среза по оси (например, строки) входных данных появится в соответствующем элементе вывода. Если
None, вход будет сведён в одномерный массив перед вычислением статистики.- смещениеbool, необязательно
Если False, то вычисления корректируются на статистическое смещение.
- nan_policy{‘propagate’, ‘omit’, ‘raise’}
Определяет, как обрабатывать входные значения NaN.
propagate: если NaN присутствует в срезе оси (например, строке), вдоль которой вычисляется статистика, соответствующая запись вывода будет NaN.omit: NaN будут пропущены при выполнении расчета. Если в срезе оси, вдоль которого вычисляется статистика, остается недостаточно данных, соответствующая запись вывода будет NaN.raise: если присутствует NaN, тоValueErrorбудет вызвано исключение.
- keepdimsbool, по умолчанию: False
Если установлено значение True, оси, которые были сокращены, остаются в результате как размерности с размером один. С этой опцией результат будет корректно транслироваться относительно входного массива.
- Возвращает:
- асимметрияndarray
Асимметрия значений вдоль оси, возвращая NaN, где все значения равны.
Примечания
Выборочная асимметрия вычисляется как коэффициент асимметрии Фишера-Пирсона, т.е.
\[g_1=\frac{m_3}{m_2^{3/2}}\]где
\[m_i=\frac{1}{N}\sum_{n=1}^N(x[n]-\bar{x})^i\]является смещённой выборкой \(i\texttt{th}\) центральный момент, и \(\bar{x}\) является выборочным средним. Если
biasравно False, вычисления скорректированы на смещение, и вычисленное значение является скорректированным стандартизированным коэффициентом момента Фишера-Пирсона, т.е.\[G_1=\frac{k_3}{k_2^{3/2}}= \frac{\sqrt{N(N-1)}}{N-2}\frac{m_3}{m_2^{3/2}}.\]Начиная с SciPy 1.9,
np.matrixвходные данные (не рекомендуется для нового кода) преобразуются вnp.ndarrayперед выполнением вычисления. В этом случае результатом будет скаляр илиnp.ndarrayподходящей формы вместо 2Dnp.matrix. Аналогично, хотя маскированные элементы маскированных массивов игнорируются, результатом будет скаляр илиnp.ndarrayвместо маскированного массива сmask=False.skewимеет экспериментальную поддержку совместимых с Python Array API Standard бэкендов в дополнение к NumPy. Пожалуйста, рассмотрите тестирование этих функций, установив переменную окруженияSCIPY_ARRAY_API=1и предоставление массивов CuPy, PyTorch, JAX или Dask в качестве аргументов массива. Поддерживаются следующие комбинации бэкенда и устройства (или других возможностей).Библиотека
CPU
GPU
NumPy
✅
н/д
CuPy
н/д
✅
PyTorch
✅
✅
JAX
⚠️ нет JIT
⚠️ нет JIT
Dask
⚠️ вычисляет граф
н/д
См. Поддержка стандарта array API для получения дополнительной информации.
Ссылки
[1]Zwillinger, D. and Kokoska, S. (2000). CRC Standard Probability and Statistics Tables and Formulae. Chapman & Hall: New York. 2000. Section 2.2.24.1
Примеры
>>> from scipy.stats import skew >>> skew([1, 2, 3, 4, 5]) 0.0 >>> skew([2, 8, 0, 4, 1, 9, 9, 0]) 0.2650554122698573