exponenta event banner

kstest

Тест Колмогорова-Смирнова на один образец

Описание

пример

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

пример

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

пример

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

пример

[h,p,ksstat,cv] = kstest(___) также возвращает значение статистики теста ksstat и приблизительное критическое значение cv теста.

Примеры

свернуть все

Выполнить испытание Колмогорова-Смирнова одним образцом с использованием kstest. Подтверждение решения теста путем визуального сравнения эмпирической кумулятивной функции распределения (cdf) со стандартным нормальным cdf.

Загрузить examgrades набор данных. Создайте вектор, содержащий первый столбец данных класса экзамена.

load examgrades
test1 = grades(:,1);

Проверьте нулевую гипотезу о том, что данные поступают из нормального распределения со средним значением 75 и стандартным отклонением 10. Используйте эти параметры для центрирования и масштабирования каждого элемента вектора данных, поскольку kstest по умолчанию проверяет стандартное нормальное распределение.

x = (test1-75)/10;
h = kstest(x)
h = logical
   0

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

Постройте график эмпирического cdf и стандартного нормального cdf для визуального сравнения.

cdfplot(x)
hold on
x_values = linspace(min(x),max(x));
plot(x_values,normcdf(x_values,0,1),'r-')
legend('Empirical CDF','Standard Normal CDF','Location','best')

Figure contains an axes. The axes with title Empirical CDF contains 2 objects of type line. These objects represent Empirical CDF, Standard Normal CDF.

На рисунке показано сходство между эмпирическим cdf центрированного и масштабированного вектора данных и cdf стандартного нормального распределения.

Загрузите образцы данных. Создайте вектор, содержащий первый столбец данных оценок ЕГЭ учащихся.

load examgrades;
x = grades(:,1);

Укажите предполагаемое распределение как матрицу из двух столбцов. Столбец 1 содержит вектор данных x. Столбец 2 содержит значения cdf, вычисленные для каждого значения в x для гипотетического распределения Стьюдента с параметром местоположения 75, параметром масштаба 10 и одной степенью свободы.

test_cdf = [x,cdf('tlocationscale',x,75,10,1)];

Проверьте данные из гипотетического распределения.

h = kstest(x,'CDF',test_cdf)
h = logical
   1

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

Загрузите образцы данных. Создайте вектор, содержащий первый столбец данных оценок ЕГЭ учащихся.

load examgrades;
x = grades(:,1);

Создайте объект распределения вероятности для проверки, если данные получены из t-распределения Стьюдента с параметром местоположения 75, параметром масштаба 10 и одной степенью свободы.

test_cdf = makedist('tlocationscale','mu',75,'sigma',10,'nu',1);

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

h = kstest(x,'CDF',test_cdf)
h = logical
   1

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

Загрузите образцы данных. Создайте вектор, содержащий первый столбец оценок ЕГЭ учащихся.

load examgrades;
x = grades(:,1);

Создайте объект распределения вероятности для проверки, если данные получены из t-распределения Стьюдента с параметром местоположения 75, параметром масштаба 10 и одной степенью свободы.

test_cdf = makedist('tlocationscale','mu',75,'sigma',10,'nu',1);

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

[h,p] = kstest(x,'CDF',test_cdf,'Alpha',0.01)
h = logical
   1

p = 0.0021

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

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

load stockreturns;
x = stocks(:,3);

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

[h,p,k,c] = kstest(x,'Tail','larger')
h = logical
   1

p = 5.0854e-05
k = 0.2197
c = 0.1207

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

Постройте график эмпирического cdf и стандартного нормального cdf для визуального сравнения.

[f,x_values] = ecdf(x);
J = plot(x_values,f);
hold on;
K = plot(x_values,normcdf(x_values),'r--');
set(J,'LineWidth',2);
set(K,'LineWidth',2);
legend([J K],'Empirical CDF','Standard Normal CDF','Location','SE');

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Empirical CDF, Standard Normal CDF.

График показывает разницу между эмпирическими cdf вектора данных x и cdf стандартного нормального распределения.

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

свернуть все

Образец данных, указанный как вектор.

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

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

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

Пример: 'Tail','larger','Alpha',0.01 определяет тест с использованием альтернативной гипотезы о том, что cdf популяции, из которой взяты данные выборки, больше, чем cdf гипотетического распределения, проводимого на уровне значимости 1%.

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

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

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

cdf гипотетического непрерывного распределения, задающего разделенную запятыми пару, состоящую из 'CDF' и либо матрицу из двух столбцов, либо объект непрерывного распределения вероятностей. Когда CDF является матрицей, столбец 1 содержит набор возможных значений x, а столбец 2 содержит соответствующие предполагаемые значения G (x) кумулятивной функции распределения. Расчет наиболее эффективен, еслиCDF указывается таким образом, что столбец 1 содержит значения в векторе данных x. При наличии значений в x не найден в столбце 1 из CDF, kstest аппроксимирует G (x) интерполяцией. Все значения вx должно лежать в интервале между наименьшим и наибольшим значениями в первом столбце CDF. По умолчанию kstest тесты для стандартного нормального распределения.

Тест Колмогорова-Смирнова с одним образцом действителен только для функций непрерывного кумулятивного распределения и требует CDF должно быть предопределено. Результат не точен, если CDF оценивается по данным. Проверить x по нормальному, логнормальному, экстремальному значению, Вейбуллу или экспоненциальному распределению без указания параметров распределения, lillietest вместо этого.

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

Тип альтернативной гипотезы для оценки, определяемый как разделенная запятыми пара, состоящая из 'Tail' и одно из следующих.

'unequal'Проверить альтернативную гипотезу, что cdf населения, из которого x нарисовано не равно cdf гипотетического распределения.
'larger'Проверить альтернативную гипотезу, что cdf населения, из которого x рисуется больше, чем cdf гипотетического распределения.
'smaller'Проверить альтернативную гипотезу, что cdf населения, из которого x рисуется меньше, чем cdf гипотетического распределения.

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

Пример: 'Tail','larger'

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

свернуть все

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

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

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

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

Проверочная статистика теста гипотезы, возвращенная как неотрицательное скалярное значение.

Критическое значение, возвращаемое как неотрицательное скалярное значение.

Подробнее

свернуть все

Тест на один образец Колмогорова-Смирнова

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

Двусторонний тест для «неравных» функций cdf проверяет нулевую гипотезу против альтернативы, согласно которой совокупность cdf данных не равна гипотезе cdf. Статистика теста представляет собой максимальную абсолютную разницу между эмпирическим cdf, вычисленным из x, и предполагаемым cdf:

D * = maxx (| F ^ (x) − G (x) |),

где F ^ (x) - эмпирический cdf, а G (x) - cdf гипотетического распределения.

Односторонний тест для функции «большего» cdf проверяет нулевую гипотезу против альтернативы, заключающейся в том, что популяционный cdf данных больше, чем гипотетический cdf. Статистика теста представляет собой максимальную величину, на которую эмпирический cdf, рассчитанный из x, превышает гипотетический cdf:

D * = maxx (F ^ (x) − G (x)).

Односторонний тест для «меньшей» функции cdf проверяет нулевую гипотезу против альтернативы, заключающейся в том, что популяция cdf данных меньше, чем гипотетический cdf. Статистика теста представляет собой максимальную величину, на которую предполагаемый cdf превышает эмпирический cdf, рассчитанный из x:

D * = maxx (G (x) F ^ (x)).

kstest вычисляет критическое значение cv используя приближенную формулу или путем интерполяции в таблице. Формула и таблица охватывают диапазон 0.01alpha0.2 для двусторонних испытаний и 0.005alpha0.1 для односторонних тестов. cv возвращается как NaN если alpha находится вне этого диапазона.

Алгоритмы

kstest принимает решение отклонить нулевую гипотезу, сравнивая значение p p с уровнем значимости Alpha, а не путем сравнения статистики теста ksstat с критическим значением cv. С тех пор cv аппроксимирован, сравнение ksstat с cv иногда приводит к другому выводу, чем сравнение p с Alpha.

Ссылки

[1] Мэсси, Ф. Дж. «Тест Колмогорова-Смирнова на благость годности». Журнал Американской статистической ассоциации. т. 46, № 253, 1951, стр. 68-78.

[2] Миллер, Л.Х. «Таблица процентных пунктов статистики Колмогорова». Журнал Американской статистической ассоциации. Том 51, № 273, 1956, стр. 111-121.

[3] Марсалья, Г., В. Цанг и Дж. Ван. «Оценка распределения Колмогорова». Журнал статистического программного обеспечения. Том 8, выпуск 18, 2003.

См. также

| |

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