chi2gof

Критерий согласия Хи-квадрат

Описание

пример

h = chi2gof(x) возвращает решение теста для нулевой гипотезы, что данные в векторе x происходит из нормального распределения со средним значением и отклонением, оцененной из x, с использованием критерия согласия Хи-квадрат. Альтернативная гипотеза заключается в том, что данные не происходят от такого распределения. Результат h является 1 если тест отклоняет нулевую гипотезу на уровне 5% значимости и 0 в противном случае.

пример

h = chi2gof(x,Name,Value) возвращает решение теста для критерия согласия Хи-квадрат с дополнительными опциями, заданными одним или несколькими аргументы пары "имя-значение". Для примера можно проверить распределение, отличное от обычного, или изменить уровень значимости теста.

пример

[h,p] = chi2gof(___) также возвращает p -value p проверки гипотезы, с использованием любого из входных параметров из предыдущих синтаксисов.

пример

[h,p,stats] = chi2gof(___) также возвращает структуру stats, содержащая информацию о тестовой статистике.

Примеры

свернуть все

Создайте стандартный нормальный объект распределения вероятностей. Сгенерируйте вектор данных x использование случайных чисел из распределения.

pd = makedist('Normal');
rng default;  % for reproducibility
x = random(pd,100,1);

Проверьте нулевую гипотезу о том, что данные в x происходит из населения с нормальным распределением.

h = chi2gof(x)
h = 0

Возвращенное значение h = 0 указывает, что chi2gof не отклоняет нулевую гипотезу на уровне значимости по умолчанию 5%.

Создайте стандартный нормальный объект распределения вероятностей. Сгенерируйте вектор данных x использование случайных чисел из распределения.

pd = makedist('Normal');
rng default;  % for reproducibility
x = random(pd,100,1);

Проверьте нулевую гипотезу о том, что данные в x происходит из населения с нормальным распределением на уровне значимости 1%.

[h,p] = chi2gof(x,'Alpha',0.01)
h = 0
p = 0.3775

Возвращенное значение h = 0 указывает, что chi2gof не отклоняет нулевую гипотезу на уровне значимости 1%.

Загрузите выборочные данные продолжительности жизни лампочки.

load lightbulb

Создайте вектор из первого столбца матрицы данных, который содержит время жизни в часах лампочек.

x = lightbulb(:,1);

Проверьте нулевую гипотезу о том, что данные в x происходит из населения с распределением Вейбула. Использование fitdist чтобы создать объект распределения вероятностей с A и B параметры, оцененные из данных.

pd = fitdist(x,'Weibull');
h = chi2gof(x,'CDF',pd)
h = 1

Возвращенное значение h = 1 указывает, что chi2gof отклоняет нулевую гипотезу на уровне значимости по умолчанию 5%.

Создайте шесть интервалов с номерами от 0 до 5, которые будут использоваться для объединения данных.

bins = 0:5;

Создайте вектор, содержащий наблюдаемые счетчики для каждого интервала и вычислите общее количество наблюдений.

obsCounts = [6 16 10 12 4 2];
n = sum(obsCounts);

Подбор объекта распределения вероятностей Пуассона к данным и вычисление ожидаемого количества для каждого интервала. Используйте оператор транспонирования .' для преобразования bins и obsCounts от векторов-строк до векторов-столбцов.

pd = fitdist(bins','Poisson','Frequency',obsCounts');
expCounts = n * pdf(pd,bins);

Проверьте нулевую гипотезу о том, что данные в obsCounts происходит из распределения Пуассона с параметром lambda, равным lambdaHat.

[h,p,st] = chi2gof(bins,'Ctrs',bins,...
                        'Frequency',obsCounts, ...
                        'Expected',expCounts,...
                        'NParams',1)
h = 0
p = 0.4654
st = struct with fields:
    chi2stat: 2.5550
          df: 3
       edges: [-0.5000 0.5000 1.5000 2.5000 3.5000 5.5000]
           O: [6 16 10 12 6]
           E: [7.0429 13.8041 13.5280 8.8383 6.0284]

Возвращенное значение h = 0 указывает, что chi2gof не отклоняет нулевую гипотезу на уровне значимости по умолчанию 5%. Векторная E содержит ожидаемые счетчики для каждого интервала под нулевой гипотезой и O содержит наблюдаемые счетчики для каждого интервала.

Используйте функцию распределения вероятностей normcdf как указатель на функцию в критерий согласия Хи-квадрат (chi2gof).

Проверьте гипотезу null, что выборочные данные в векторе входа x идёт от нормального распределения с параметрами в и в, равными среднему значению (mean) и стандартное отклонение (std) выборочных данных, соответственно.

rng('default') % For reproducibility
x = normrnd(50,5,100,1);
h = chi2gof(x,'cdf',{@normcdf,mean(x),std(x)})
h = 0

Возвращенный результат h = 0 указывает, что chi2gof не отклоняет нулевую гипотезу на уровне значимости по умолчанию 5%.

Входные параметры

свернуть все

Выборочные данные для теста гипотезы, заданная как вектор.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'NBins',8,'Alpha',0.01 объединяет данные в восемь интервалов и проводит проверку гипотезы на уровне значимости 1%.

Количество интервалов, используемых для объединения данных, заданное как разделенная разделенными запятой парами, состоящая из 'NBins' и положительное целое значение. Если вы задаете значение для NBins, не задайте значение для Ctrs или Edges.

Пример: 'NBins',8

Типы данных: single | double

Центр интервала, заданный как разделенная разделенными запятой парами, состоящая из 'Ctrs' и вектор центральных значений для каждого интервала. Если вы задаете значение для Ctrs, не задайте значение для NBins или Edges.

Пример: 'Ctrs',[1 2 3 4 5]

Типы данных: single | double

Границы интервала, заданные как разделенная разделенными запятой парами, состоящая из 'Edges' и вектор значений ребер для каждого интервала. Если вы задаете значение для Edges, не задайте значение для NBins или Ctrs.

Пример: 'Edges',[-2.5 -1.5 -0.5 0.5 1.5 2.5]

Типы данных: single | double

cdf гипотезированного распределения, заданного как разделенная разделенными запятой парами, состоящая из 'CDF' и объект распределения вероятностей, указатель на функцию или массив ячеек.

  • Если CDF является объектом распределения вероятностей, степени свободы учитывают, оцениваете ли вы параметры используя fitdist или указать их используя makedist.

  • Если CDF является указателем на функцию, функция распределения должна занять x как его единственный аргумент.

  • Если CDF является массивом ячеек, первый элемент должен быть указателем на функцию, а остальные элементы должны быть значениями параметров, по одному на камеру. Функция должна занять x в качестве его первого аргумента и других параметров в массиве в качестве более поздних аргументов.

Если вы задаете значение для CDF, не задайте значение для Expected.

Пример: 'CDF',pd_object

Типы данных: single | double

Ожидаемые счетчики для каждого интервала, заданные как разделенная разделенными запятой парами 'Expected' и вектор неотрицательных значений. Если Expected зависит от предполагаемых параметров, использование NParams для обеспечения того, чтобы chi2gof правильно вычисляет степени свободы. Если вы задаете значение для Expected, не задайте значение для CDF.

Пример: 'Expected',[19.1446 18.3789 12.3224 8.2432 4.1378]

Типы данных: single | double

Количество предполагаемых параметров, используемых для описания нулевого распределения, заданное как разделенная разделенными запятой парами, состоящая из 'NParams' и положительное целое значение. Это значение корректирует степени свободы теста на основе количества оцененных параметров, используемых для вычисления cdf или ожидаемых отсчётов.

Значение по умолчанию для NParams зависит от того, как вы задаете нулевое распределение:

  • Если вы задаете CDF как объект распределения вероятностей, NParams равен количеству предполагаемых параметров, используемых для создания объекта.

  • Если вы задаете CDF как имя функции или указатель, значение по умолчанию NParams является 0.

  • Если вы задаете CDF как массив ячеек, значение по умолчанию NParams - количество параметров в массиве.

  • Если вы задаете Expected, значение по умолчанию NParams является 0.

Пример: 'NParams',1

Типы данных: single | double

Минимальное ожидаемое количество на интервал, заданное как разделенная разделенными запятой парами, состоящая из 'EMin' и неотрицательное целое значение. Если интервал на крайнем конце любого хвоста имеет ожидаемое значение меньше EMin, он объединяется с соседним интервалом до тех пор, пока количество в каждом крайнем интервале не составит по меньшей мере 5. Если количество внутренних интервалов меньше 5, chi2gof отображает предупреждение, но не объединяет внутренние интервалы. В этом случае следует использовать меньше интервалов, или обеспечить центры или ребра интервалов, чтобы увеличить ожидаемые счетчики во всех интервалах. Задайте EMin как 0 чтобы предотвратить объединение интервалов.

Пример: 'EMin',0

Типы данных: single | double

Частота значений данных, заданная как разделенная разделенными запятой парами, состоящая из 'Frequency' и вектор неотрицательных целочисленных значений той же длины, что и вектор x.

Пример: 'Frequency',[20 16 13 10 8]

Типы данных: single | double

Уровень значимости критерия гипотезы, заданный как разделенная разделенными запятой парами, состоящая из 'Alpha' и скалярное значение в области значений (0,1).

Пример: 'Alpha',0.01

Типы данных: single | double

Выходные аргументы

свернуть все

Результат теста гипотезы, возвращенный как 1 или 0.

  • Если h = 1, это указывает на отказ от нулевой гипотезы в Alpha уровень значимости.

  • Если h = 0, это указывает на отказ отклонить нулевую гипотезу в Alpha уровень значимости.

p значение теста, возвращенное как скалярное значение в области значений [0,1]. p - вероятность наблюдения тестовой статистики такой же экстремальной, как или более экстремальной, чем наблюдаемое значение при нулевой гипотезе. Малые значения p ставит под сомнение валидность нулевой гипотезы.

Тестовая статистика, возвращенная как структура, содержащая следующее:

  • chi2stat - Значение тестовой статистики.

  • df - Степени свободы теста.

  • edges - Вектор границ интервала после объединения.

  • O - Вектор наблюдаемых отсчётов для каждого интервала.

  • E - Вектор ожидаемых отсчётов для каждого интервала.

Подробнее о

свернуть все

Критерий согласия Хи-квадрат

Критерий согласия Хи-квадрат определяет, происходит ли выборка данных из заданного распределения вероятностей с параметрами, оцененными из данных.

Тест группирует данные в интервалы, вычисляя наблюдаемое и ожидаемое количество для этих интервалов и вычисляя статистику теста хи-квадрат

χ2=i=1N(OiEi)2/Ei,

где O i являются наблюдаемыми счетчиками, а E i являются ожидаемыми счетчиками на основе гипотезированного распределения. Тестовая статистическая величина имеет приблизительное хи-квадратное распределение, когда счетчики достаточно большие.

Алгоритмы

chi2gof сравнивает значение тестовой статистики с хи-квадратным распределением со степенями свободы, равными nbins - 1 - nparams, где nbins - количество интервалов, используемых для объединения данных, и nparams - количество оцененных параметров, используемых для определения ожидаемых отсчётов. Если для проведения теста недостаточно степеней свободы, chi2gof возвращает p -значение как NaN.

Расширенные возможности

Представлено до R2006a