kstest

Одновыборочный критерий Колмогорова-Смирнова

Описание

пример

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

пример

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

пример

[h,p] = kstest(___) также возвращает p -value 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 для гипотезированного Студенческого t распределение с параметром местоположения 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);

Создайте объект распределения вероятностей, чтобы проверить, получены ли данные от Student's 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);

Создайте объект распределения вероятностей, чтобы проверить, получены ли данные от Student's 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 против нормального, lognormal, экстремального значения, Вейбула или экспоненциального распределения без определения параметров распределения, использование 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 -value p с уровнем значимости Alpha, не путем сравнения тестовой статистической ksstat с критическим значением cv. Начиная с cv является приблизительным, сравнивая ksstat с cv иногда приводит к другому выводу, чем сравнение p с Alpha.

Ссылки

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

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

[3] Marsaglia, G., W. Tsang, and J. Wang. «Оценка распределения Колмогорова». Журнал статистического программного обеспечения. Том 8, Выпуск 18, 2003.

См. также

| |

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