normaltest#
- scipy.stats.normaltest(a, ось=0, nan_policy='propagate', *, keepdims=False)[источник]#
Проверить, отличается ли выборка от нормального распределения.
Эта функция проверяет нулевую гипотезу о том, что выборка происходит из нормального распределения. Основана на методе Д’Агостино и Пирсона [1], [2] тест, который объединяет асимметрию и эксцесс для получения общего теста на нормальность.
- Параметры:
- aarray_like
Массив, содержащий выборку для тестирования. Должен содержать не менее восьми наблюдений.
- осьint или None, по умолчанию: 0
Если это целое число, ось входных данных, по которой вычисляется статистика. Статистика каждого среза по оси (например, строки) входных данных появится в соответствующем элементе вывода. Если
None, вход будет сведён в одномерный массив перед вычислением статистики.- nan_policy{‘propagate’, ‘omit’, ‘raise’}
Определяет, как обрабатывать входные значения NaN.
propagate: если NaN присутствует в срезе оси (например, строке), вдоль которой вычисляется статистика, соответствующая запись вывода будет NaN.omit: NaN будут пропущены при выполнении расчета. Если в срезе оси, вдоль которого вычисляется статистика, остается недостаточно данных, соответствующая запись вывода будет NaN.raise: если присутствует NaN, тоValueErrorбудет вызвано исключение.
- keepdimsbool, по умолчанию: False
Если установлено значение True, оси, которые были сокращены, остаются в результате как размерности с размером один. С этой опцией результат будет корректно транслироваться относительно входного массива.
- Возвращает:
- статистикаfloat или массив
s^2 + k^2, гдеsэто z-оценка, возвращаемаяskewtestиkэто z-оценка, возвращаемаяkurtosistest.- p-значениеfloat или массив
Двусторонняя хи-квадрат вероятность для проверки гипотезы.
Смотрите также
- Тест на нормальность
Расширенный пример
Примечания
Начиная с SciPy 1.9,
np.matrixвходные данные (не рекомендуется для нового кода) преобразуются вnp.ndarrayперед выполнением вычисления. В этом случае результатом будет скаляр илиnp.ndarrayподходящей формы вместо 2Dnp.matrix. Аналогично, хотя маскированные элементы маскированных массивов игнорируются, результатом будет скаляр илиnp.ndarrayвместо маскированного массива сmask=False.normaltestимеет экспериментальную поддержку совместимых с 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]D’Agostino, R. B. (1971), «Универсальный тест на нормальность для умеренных и больших выборок», Biometrika, 58, 341-348
[2]D’Agostino, R. и Pearson, E. S. (1973), «Тесты на отклонение от нормальности», Biometrika, 60, 613-622
Примеры
>>> import numpy as np >>> from scipy import stats >>> rng = np.random.default_rng() >>> pts = 1000 >>> a = rng.normal(0, 1, size=pts) >>> b = rng.normal(2, 1, size=pts) >>> x = np.concatenate((a, b)) >>> res = stats.normaltest(x) >>> res.statistic 53.619... # random >>> res.pvalue 2.273917413209226e-12 # random
Для более подробного примера см. Тест на нормальность.