Критерий Харке-Бера — это критерий согласия, который определяет, имеют ли выборочные данные асимметрию и эксцесс, соответствующие нормальному распределению.
Статистика теста Харка-Бера всегда является положительным числом, и чем дальше она от нуля, тем больше доказательств того, что данные выборки не подчиняются нормальному распределению.
В этом руководстве объясняется, как провести тест Харке-Бера в 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), в которых другие тесты на нормальность (например, тест Шапиро-Уилка) ненадежны.
Это подходящий тест, который следует использовать перед выполнением некоторого анализа, в котором предполагается, что набор данных следует нормальному распределению. Тест Харке-Бера может сказать, выполняется ли это предположение.