Как выполнить тест Харке-Бера в Python


Критерий Харке-Бера — это критерий согласия, который определяет, имеют ли выборочные данные асимметрию и эксцесс, соответствующие нормальному распределению.

Статистика теста Харка-Бера всегда является положительным числом, и чем дальше она от нуля, тем больше доказательств того, что данные выборки не подчиняются нормальному распределению.

В этом руководстве объясняется, как провести тест Харке-Бера в Python.

Как выполнить тест Харке-Бера в Python

Чтобы провести тест Jarque-Bera в Python, мы можем использовать функцию jarque_bera из библиотеки Scipy, которая использует следующий синтаксис:

jarque_bera (х)

куда:

  • x: массив наблюдений

Эта функция возвращает тестовую статистику и соответствующее p-значение.

Пример 1

Предположим, мы выполняем тест Харка-Бера для списка из 5000 значений, которые следуют нормальному распределению:

import numpy as np
import scipy.stats as stats

#generate array of 5000 values that follow a standard normal distribution
np.random.seed(0)
data = np.random.normal(0, 1, 5000)

#perform Jarque-Bera test
stats.jarque_bera(data)

(statistic=1.2287, pvalue=0.54098)

Статистика теста равна 1,2287 , а соответствующее значение p равно 0,54098.Поскольку это p-значение не меньше 0,05, мы не можем отвергнуть нулевую гипотезу. У нас нет достаточных доказательств, чтобы сказать, что эти данные имеют асимметрию и эксцесс, которые значительно отличаются от нормального распределения.

Этот результат не должен удивлять, поскольку сгенерированные нами данные состоят из 5000 случайных величин, которые подчиняются нормальному распределению.

Пример 2

Теперь предположим, что мы выполняем тест Харке-Бера для списка из 5000 значений, которые следуют равномерному распределению:

import numpy as np
import scipy.stats as stats

#generate array of 5000 values that follow a uniform distribution
np.random.seed(0)
data = np.random.uniform(0, 1, 5000)

#perform Jarque-Bera test
stats.jarque_bera(data)

(statistic=300.1043, pvalue=0.0)

Статистика теста равна 300,1043 , а соответствующее значение p равно 0,0.Поскольку это p-значение меньше 0,05, мы отвергаем нулевую гипотезу. Таким образом, у нас есть достаточно доказательств, чтобы сказать, что эти данные имеют асимметрию и эксцесс, которые значительно отличаются от нормального распределения.

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

Когда использовать тест Харке-Бера

Тест Харка-Бера обычно используется для больших наборов данных (n > 2000), в которых другие тесты на нормальность (например, тест Шапиро-Уилка) ненадежны.

Это подходящий тест, который следует использовать перед выполнением некоторого анализа, в котором предполагается, что набор данных следует нормальному распределению. Тест Харке-Бера может сказать, выполняется ли это предположение.