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

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 имя аргумента и 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 th строка и j th столбец таблицы.

  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