fishertest

Точный тест Фишера

Описание

пример

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

пример

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

пример

[___] = fishertest(x,Name,Value) возвращает решение теста с помощью дополнительных опций, заданных одним или несколькими аргументами пары "имя-значение". Для примера можно изменить уровень значимости теста или провести односторонний тест.

Примеры

свернуть все

В ходе небольшого опроса исследователь спросил 17 индивидуумов, получили ли они прививку от гриппа в этом году и подхватили ли они грипп этой зимой. Результаты показывают, что из девяти человек, которые не получили прививку от гриппа, трое заболели гриппом и шестеро не сделали. Из восьми человек, которые получили прививку от гриппа, один заболел гриппом, а семь нет.

Составьте таблицу непредвиденных обстоятельств 2 на 2, содержащую данные съемки. Строка 1 содержит данные для индивидуумов, которые не получили прививку от гриппа, а строка 2 содержит данные для индивидуумов, которые получили прививку от гриппа. Столбец 1 содержит количество индивидуумов, которые заболели гриппом, а столбец 2 содержит количество индивидуумов, которые не заболели.

x = table([3;1],[6;7],'VariableNames',{'Flu','NoFlu'},'RowNames',{'NoShot','Shot'})
x=2×2 table
              Flu    NoFlu
              ___    _____

    NoShot     3       6  
    Shot       1       7  

Используйте точный тест Фишера, чтобы определить, существует ли нерандомная связь между получением прививки от гриппа и гриппом.

h = fishertest(x)
h = logical
   0

Решение о возвращенном тесте h = 0 указывает, что fishertest не отклоняет нулевую гипотезу об отсутствии неслучайной связи между категориальными переменными на уровне значимости по умолчанию 5%. Поэтому, основываясь на результатах теста, индивидуумы, которые не получают прививку от гриппа, не имеют других шансов заболеть гриппом, чем те, кто получил прививку от гриппа.

В ходе небольшого опроса исследователь спросил 17 индивидуумов, получили ли они прививку от гриппа в этом году и подхватили ли они грипп. Результаты показывают, что из девяти человек, которые не получили прививку от гриппа, трое заболели гриппом и шестеро не сделали. Из восьми человек, которые получили прививку от гриппа, один заболел гриппом, а семь нет.

x = [3,6;1,7];

Используйте правохвостый точный тест Фишера, чтобы определить, выше ли вероятность заражения гриппом для индивидуумов, которые не получили прививку от гриппа, чем для индивидуумов, которые сделали. Проведите тест на уровне значимости 1%.

[h,p,stats] = fishertest(x,'Tail','right','Alpha',0.01)
h = logical
   0

p = 0.3353
stats = struct with fields:
             OddsRatio: 3.5000
    ConfidenceInterval: [0.1289 95.0408]

Решение о возвращенном тесте h = 0 указывает, что fishertest не отклоняет нулевую гипотезу об отсутствии неслучайной связи между категориальными переменными на уровне значимости 1%. Поскольку это критерий правохвостой гипотезы, вывод заключается в том, что индивидуумы, которые не получают прививку от гриппа, не имеют больших шансов заболеть гриппом, чем те, кто получил прививку от гриппа.

Загрузите данные больницы.

load hospital

The hospital Массив набора данных содержит данные о 100 пациентах в больнице, включая имя, пол, возраст, вес, статус курения, а также статистические и диастолические измерения артериального давления.

Чтобы определить, является ли статус курения независимым от пола, используйте crosstab создать таблицу резервов 2 на 2 для курильщиков и некурящих, сгруппированную по полу.

[tbl,chi2,p,labels] = crosstab(hospital.Sex,hospital.Smoker)
tbl = 2×2

    40    13
    26    21

chi2 = 4.5083
p = 0.0337
labels = 2x2 cell
    {'Female'}    {'0'}
    {'Male'  }    {'1'}

Строки получившейся таблицы непредвиденных обстоятельств tbl соответствуют полу пациента, с строкой 1, содержащей данные для женщин и строкой 2, содержащей данные для мужчин. Столбцы соответствуют статусу курения пациента с столбцом 1, содержащим данные для некурящих, и столбцом 2, содержащим данные для курильщиков. Возвращенный результат chi2 = 4.5083 - значение тестовой статистики хи-квадрат для критерия независимости хи-квадрат. Возвращенное значение p = 0.0337 является аппроксимацией p-значение на основе хи-квадратичного распределения.

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

[h,p,stats] = fishertest(tbl)
h = logical
   1

p = 0.0375
stats = struct with fields:
             OddsRatio: 2.4852
    ConfidenceInterval: [1.0624 5.8135]

Результат h = 1 указывает, что fishertest отклоняет нулевую гипотезу о несвязанности между статусом курения и полом на уровне 5% значимости. Другими словами, существует связь между полом и статусом курения. Отношение шансов указывает, что пациенты мужского пола имеют примерно в 2,5 раза больше шансов быть курильщиками, чем пациенты женского пола.

Возвращенный p- значение теста, p = 0.0375, близок, но не совсем такой же, как, результат, полученный crosstab. Это потому, что fishertest вычисляет точное p-значение с использованием выборочных данных, в то время как crosstab использует хи-квадратное приближение, чтобы вычислить p-значение.

Входные параметры

свернуть все

Таблица непредвиденных обстоятельств, заданная как матрица 2 на 2 или таблица, содержащая неотрицательные целочисленные значения. Таблица непредвиденных обстоятельств содержит частотное распределение переменных в выборочных данных. Вы можете использовать crosstab чтобы сгенерировать таблицу непредвиденных обстоятельств из выборочных данных.

Пример: [4,0;0,4]

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

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

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

Пример: 'Alpha',0.01,'Tail','right' задает критерий правохвостой гипотезы на уровне 1% значимости.

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

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

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

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

'both'Двуххвостый тест. Альтернативная гипотеза заключается в том, что существует нерандомная ассоциация между двумя переменными в x, и отношение шансов не равно 1.
'right'Правохвостый тест. Альтернативная гипотеза состоит в том, что отношение шансов больше 1.
'left'Левохвостый тест. Альтернативная гипотеза заключается в том, что отношение шансов меньше 1.

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

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

свернуть все

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

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

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

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

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

  • OddsRatio - мера связи между двумя переменными.

  • ConfidenceInterval - Асимптотический доверительный интервал для отношения шансов. Если какая-либо из частот камер в x 0, тогда fishertest не вычисляет интервал доверия и вместо этого отображает [-Inf Inf].

Подробнее о

свернуть все

Точный тест Фишера

Точный тест Фишера является непараметрическим статистическим тестом, используемым для проверки нулевой гипотезы о том, что между двумя категориальными переменными не существует никаких нерандомных ассоциаций, против альтернативы, состоящей в том, что между переменными существует нерандомная ассоциация.

Точный тест Фишера предоставляет альтернативу критерию хи-квадрат для небольших выборок или выборок с очень неравномерными маргинальными распределениями. В отличие от критерия хи-квадрат, точный тест Фишера не зависит от допущений распределения большой выборки, и вместо этого вычисляет точное p значение на основе выборочных данных. Несмотря на то, что точный тест Фишера действителен для выборок любого размера, он не рекомендован для больших выборок, потому что он является интенсивным в вычислительном отношении. Если все счетчики частоты в таблице непредвиденных обстоятельств больше или равны 1e7, затем fishertest ошибки. Для таблиц непредвиденных обстоятельств, которые содержат большие значения счетчика или являются хорошо сбалансированными, используйте crosstab или chi2gof вместо этого.

fishertest принимает таблицу непредвиденных обстоятельств 2 на 2 в качестве входных данных и вычисляет p значение теста следующим образом:

  1. Вычислите суммы для каждой строки, столбца и общего количества наблюдений в таблице непредвиденных обстоятельств.

  2. Используя многомерное обобщение гипергеометрической функции вероятностей, вычислите условную вероятность наблюдения точного результата в таблице непредвиденных обстоятельств, если нулевая гипотеза была верна, учитывая ее суммы в строке и столбце. Условная вероятность

    Pcutoff=(R1!R2!)(C1!C2!)N!i,jnij!,

    где R1 и R2 - суммы строк, C1 и C2 - суммы столбцов, N - общее количество наблюдений в таблице непредвиденных обстоятельств, и nij - значение в i-й строке и j-м столбце таблицы.

  3. Найдите все возможные матрицы неотрицательных целых чисел, сопоставимых с суммами строк и столбцов. Для каждой матрицы вычислите связанную условную вероятность, используя уравнение для Pcutoff.

  4. Используйте эти значения для вычисления p-значения теста на основе представляющей интерес альтернативной гипотезы.

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

    • Для левого теста суммируйте условные вероятности всех матриц с частотой (1,1) камеры, меньшей или равной n11.

    • Для правостороннего теста суммируйте условные вероятности всех матриц с частотой (1,1) камеры, большей или равной n11 в наблюдаемой таблице непредвиденных обстоятельств.

Коэффициент шансов

OR=n11n22n21n12.

Нулевая гипотеза условной независимости эквивалентна гипотезе, что отношение шансов равняется 1. Левая альтернатива эквивалентна отношению шансов меньше 1, а правая альтернатива эквивалентна отношению шансов больше 1.

Асимптотический 100 (1 - α)% доверительный интервал для отношения шансов

CI=[exp(LΦ1(1α2)SE),exp(L+Φ1(1α2)SE)],

где L - отношение шансов журнала,-1(•) - обратная функция нормального обратного совокупного распределения, и SE - стандартная ошибка для коэффициента шансов журнала. Если 100 (1 - α)% доверительный интервал не содержит значение 1, то ассоциация значима на уровне α значимости. Если любая из четырех частот камеры 0, то fishertest не вычисляет интервал доверия и вместо этого отображает [-Inf Inf].

fishertest принимает только таблицы непредвиденных обстоятельств 2 на 2 в качестве входных данных. Чтобы проверить независимость категориальных переменных с более чем двумя уровнями, используйте критерий хи-квадрат, предоставленный crosstab.

См. также

|

Введенный в R2014b