chi2gof

Тест качества подгонки хи-квадрата

Синтаксис

h = chi2gof(x)
h = chi2gof(x,Name,Value)
[h,p] = chi2gof(___)
[h,p,stats] = chi2gof(___)

Описание

пример

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

пример

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

пример

[h,p] = chi2gof(___) также возвращает p - значение 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 прибывают из генеральной совокупности с распределением Weibull. Используйте 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).

Протестируйте нулевую гипотезу, что выборочные данные во входном векторе 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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 — Степени свободы теста.

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

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

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

Больше о

свернуть все

Тест качества подгонки хи-квадрата

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

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

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

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

Алгоритмы

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

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

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