Главная       Скачать       Коммерческая поддержка       FAQ       Forum       О нас       Английская версия

Критерий Жака-Бера

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

Критерий

Для проверки случайной величины на нормальность используется тот факт, что у нормального распределения коэффициент асимметрии и эксцесс равны нолю - отклонение этих величин от нулевого значения может служить мерой отклонения распределения от нормального. На основе выборки строится статистика Жака-Бера

(здесь n - размер выборки), после чего по таблице квантилей распределения вычисляется p-значение, соответствующее полученному значению JB. Следует отметить, что при росте n статистика Жака-Бера сходится к распределению хи-квадрат с двумя степенями свободы, поэтому в практике иногда используют таблицу квантилей распределения хи-квадрат. Однако это является ошибкой - сходимость слишком медленная и неравномерная.

Например, даже при n = 70 (что уже немало) и значении статистики Жака-Бера JB = 5 таблица квантилей распределения хи-квадрат дает нам p-значение, равное 0.08, в то время как на самом деле соответствующее p-значение равно 0.045 - то есть мы можем ошибочно принять гипотезу, которую скорее следовало бы отвергнуть. Поэтому более правильным является использование специально составленной таблицы квантилей распределения Жака-Бера.

Способ составления таблицы квантилей

Для получения таблицы квантилей был использован метод Монте-Карло. Написанная на C++ программа сгенерировала 3600000 выборок n нормальных чисел (для генерации использовался высококачественный генератор случайных чисел). На основе этих выборок были рассчитаны 3600000 значений JB(x), которые были использованы для построения таблицы квантилей для заданного n. Процесс повторялся для каждого n из множества {5, 6, 7, ..., 198, 199, 200, 201, 251, 301, 351, ..., 1901, 1951}. Общее время расчетов на этом этапе заняло несколько десятков часов машинного времени.

Полученная в результате этого таблица квантилей занимала слишком много места (около 2.5 мегабайт в двоичном формате), поэтому следующим этапом стало её сжатие: распределение JB(x) для ключевых значений n было сохранено с использованием кусочно-полиномиальной аппроксимации, квантили для промежуточных значений получаются при помощи интерполяции. Для n > 1401 используется асимптотическая аппроксимация.

Качество полученной таблицы

В результате описанных выше операций была получена аппроксимация распределения Жака-Бера, которая, по мнению автора, достаточна хороша для практического применения. В таблице ниже приведена относительная погрешность аппроксимации при различных значениях p.

P-ЗНАЧЕНИЕ          ОТНОСИТЕЛЬНАЯ ПОГРЕШНОСТЬ P (5≤N≤1951)
[1, 0.1]            менее 1%
[0.1, 0.01]         менее 2%
[0.01, 0.001]       менее 6%
[0.001, 0]          погрешность не измерялась

Анализируя таблицу, можно отметить, что точнее всего получены p-значения, лежащие на интервале [0, 0.01] (этот интервал чаще всего используется для принятия решений). Снижение точности на интервале [0.01, 0.001] обусловлено тем, что чем меньше p-значение, тем меньше вероятность получить его, если нуль-гипотеза верна, и тем больше испытаний требуется для определения соответствующего ему квантиля распределения. Для вычисления p-значений на интервале [0.001, 0] используется асимптотическая аппроксимация, которая, по мнению автора, позволяет получать правдоподобные результаты в представляющем практический интерес диапазоне. Качество этой аппроксимации не измерялось из-за значительных затрат машинного времени, необходимых для осуществления такой проверки.

Ссылки по теме

  1. 'Hypothesis testing', Wikipedia
  2. 'P-value', Wikipedia

Manual entries

C++ jarquebera subpackage   
C# jarquebera subpackage   

This article is intended for personal use only.

Скачать ALGLIB

C#

Исходный код на C#

Downloads page

 

C++

Исходный код на C++

Downloads page

 

C++, арифметика высокой точности

Исходный код на C++, использующий библиотеки MPFR/GMP.

Исходный код GMP доступен на сайте gmplib.org. Исходный код MPFR доступен на сайте www.mpfr.org.

Downloads page

 

FreePascal

Исходный код на Free Pascal.

Downloads page

 

Delphi

Исходный код на Delphi.

Downloads page

 

VB.NET

Исходный код на VB.NET.

Downloads page

 

VBA

Исходный код на VBA.

Downloads page

 

Python

Исходный код на Python (CPython и IronPython).

Downloads page

 

 

ALGLIB® - numerical analysis library, 1999-2017.
ALGLIB is registered trademark of the ALGLIB Project.