scipy.stats.

levene#

scipy.stats.levene(*образцы, центр='median', proportiontocut=0.05, ось=0, nan_policy='propagate', keepdims=False)[источник]#

Выполнение теста Левена на равенство дисперсий.

Тест Левена проверяет нулевую гипотезу о том, что все входные выборки происходят из популяций с равными дисперсиями. Тест Левена является альтернативой тесту Бартлетта bartlett в случае, когда имеются значительные отклонения от нормальности.

Параметры:
sample1, sample2, …array_like

Выборочные данные, возможно, разной длины. Принимаются только одномерные выборки.

центр{‘mean’, ‘median’, ‘trimmed’}, optional

Какую функцию данных использовать в тесте. По умолчанию 'median'.

proportiontocutfloat, опционально

Когда центр равно 'trimmed', это даёт долю точек данных, которые нужно обрезать с каждого конца. (См. scipy.stats.trim_mean.) По умолчанию 0.05.

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

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

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

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

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

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

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

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

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

Возвращает:
статистикаfloat

Тестовая статистика.

p-значениеfloat

p-значение для теста.

Смотрите также

fligner

Непараметрический тест на равенство k дисперсий

bartlett

Параметрический тест на равенство k дисперсий в нормальных выборках

Тест Левена на равенство дисперсий

Расширенный пример

Примечания

Возможны три варианта теста Левена. Возможности и их рекомендуемое использование:

  • ‘median’ : Рекомендуется для асимметричных (ненормальных) распределений>

  • 'mean': Рекомендуется для симметричных распределений с умеренными хвостами.

  • 'trimmed' : Рекомендуется для распределений с тяжелыми хвостами.

Тестовая версия с использованием среднего была предложена в оригинальной статье Левена ([2]), в то время как медиана и усеченное среднее были изучены Brown и Forsythe ([3]), иногда также называемый тестом Брауна-Форсайта.

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

Ссылки

[2]

Levene, H. (1960). В Contributions to Probability and Statistics: Essays in Honor of Harold Hotelling, I. Olkin et al. eds., Stanford University Press, pp. 278-292.

[3]

Браун, М. Б. и Форсайт, А. Б. (1974), Journal of the American Statistical Association, 69, 364-367

Примеры

Проверить, совпадают ли списки a, b и c происходят из популяций с равными дисперсиями.

>>> import numpy as np
>>> from scipy import stats
>>> a = [8.88, 9.12, 9.04, 8.98, 9.00, 9.08, 9.01, 8.85, 9.06, 8.99]
>>> b = [8.88, 8.95, 9.29, 9.44, 9.15, 9.58, 8.36, 9.18, 8.67, 9.05]
>>> c = [8.95, 9.12, 8.95, 8.85, 9.03, 8.84, 9.07, 8.98, 8.86, 8.98]
>>> stat, p = stats.levene(a, b, c)
>>> p
0.002431505967249681

Малое p-значение предполагает, что популяции не имеют равных дисперсий.

Это неудивительно, учитывая, что выборочная дисперсия b значительно больше, чем у a и c:

>>> [np.var(x, ddof=1) for x in [a, b, c]]
[0.007054444444444413, 0.13073888888888888, 0.008890000000000002]

Для более подробного примера см. Тест Левена на равенство дисперсий.