fishertest

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

Синтаксис

h = fishertest(x)
[h,p,stats] = fishertest(x)
[___] = fishertest(x,Name,Value)

Описание

пример

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 array
    {'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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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

Для просмотра документации необходимо авторизоваться на сайте