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')

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

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

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

Задайте предполагавшееся распределение как матрицу 2D столбца. Столбец 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);

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

График показывает различие между эмпирическим 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' и или матрица 2D столбца или непрерывный объект вероятностного распределения. Когда CDF матрица, столбец 1 содержит набор возможных значений x, и столбец 2 содержит предполагавшиеся значения кумулятивной функции распределения соответствия G (x). Вычисление является самым эффективным если CDF задан таким образом, что столбец 1 содержит значения в векторе данных x. Если существуют значения в x не найденный в столбце 1 CDF, kstest аппроксимирует G (x) интерполяцией. Все значения в x должен находиться в интервале между наименьшими и самыми большими значениями в первом столбце CDF. По умолчанию, kstest тесты для стандартного нормального распределения.

Одновыборочный критерий Колмогорова-Смирнова только допустим для непрерывных кумулятивных функций распределения и требует CDF быть предопределенным. Результат не точен если CDF оценивается из данных. Протестировать x против нормального, логарифмически нормального, экстремума Weibull или экспоненциальное распределение, не задавая параметры распределения, используют 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*=max x(|F^(x)G(x)|),

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

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

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

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

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

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

Алгоритмы

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

Ссылки

[1] Massey, F. J. “Тест Кольмогорова-Смирнова для Качества подгонки”. Журнал американской Статистической Ассоциации. Издание 46, № 253, 1951, стр 68–78.

[2] Миллер, L. H. “Таблица Процентных пунктов Статистики Кольмогорова”. Журнал американской Статистической Ассоциации. Издание 51, № 273, 1956, стр 111–121.

[3] Marsaglia, G., В. Цанг и Дж. Ван. “Вычисляя распределение Кольмогорова”. Журнал статистического программного обеспечения. Издание 8, выпуск 18, 2003.

Смотрите также

| |

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