exponenta event banner

runstest

Запустить тест на случайность

Описание

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

пример

h = runstest(x,v) возвращает тестовое решение, основанное на количестве запусков последовательных значений выше или ниже указанного опорного значения v. Значения точно равны v отбрасываются.

h = runstest(x,'ud') возвращает решение теста, основанное на количестве запусков вверх или вниз. Слишком мало прогонов указывает на тренд, в то время как слишком много прогонов указывает на колебание. Значения, точно равные предыдущему значению, отбрасываются.

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

[h,p,stats] = runstest(___) также возвращает значение p теста pи структура stats содержит дополнительные данные о тесте.

Примеры

свернуть все

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

rng default;  % for reproducibility
x = randn(40,1);

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

[h,p] = runstest(x,median(x))
h = 0
p = 0.8762

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

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

свернуть все

Вектор данных, заданный как вектор скалярных значений. runstest удовольствия NaN значения в x как отсутствующие значения, и игнорирует их.

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

Опорное значение, указанное как скалярное значение. Если указано значение для v, то runstest выполняет проверку гипотезы на основе количества прогонов последовательных значений выше или ниже v. runstest отбрасывает значения, точно равные v.

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

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

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

Пример: 'Alpha',0.01,'Method','Approximate','Tail','right' задает правохвостый тест с уровнем значимости 1%, который возвращает приблизительное значение p.

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

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

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

Метод, используемый для вычисления p-значения, указанного как разделенная запятыми пара, состоящая из 'Method' и либо 'exact' для использования точного алгоритма, или 'approximate' для использования нормального приближения. Значение по умолчанию: 'exact' для участков выше/ниже и для участков вверх/вниз, когда длина x меньше или равно 50. Если runstest тесты для прогонов вверх/вниз и длина x больше 50, то по умолчанию 'approximate', и 'exact' метод недоступен.

Пример: 'Method','approximate'

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

'both'Двусторонний тест (последовательность не случайна)
'right'Правохвостый тест (подобные значения раздельно для участков выше/ниже, направление чередуется для участков вверх/вниз)
'left'Левосторонний тест (например, кластер значений для прогонов выше/ниже, тренд значений для прогонов вверх/вниз)

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

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

свернуть все

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

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

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

Результат в runstest основано на количестве серий последовательных значений выше или ниже среднего значения x. Слишком мало прогонов указывает на тенденцию к кластеризации высоких и низких значений. Слишком много прогонов указывает на тенденцию чередования высоких и низких значений.

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

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

p вычисляется либо из статистики теста, либо из точного распределения количества запусков в зависимости от значения, указанного для 'Method' аргумент пары имя-значение.

Тестовые данные, возвращенные в виде структуры со следующими полями.

  • nruns - Количество прогонов

  • n1 - Количество значений выше v

  • n0 - Количество значений ниже v

  • z - Статистика испытаний

Ссылки

[1] Гиббонс, Жан Дикинсон и Субхабрата Чакраборти. Непараметрический статистический вывод. 5-я ред. Бока Ратон: CRC Press, 2011.

См. также

|

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