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

9

Приведено случаев с раком легких и подобранных контролей (без рака легких) (сопоставление по возрасту, полу и т. Д.). Чтобы попытаться найти доказательства между влиянием курения на рак легких, я использовал точный критерий Фишера в таблице непредвиденных обстоятельств. Это, однако, не принимало во внимание, что контроль и случаи были сопоставлены. 404040

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

Герт
источник

Ответы:

8

Вам нужен тест Макнемара ( http://en.wikipedia.org/wiki/McNemar%27s_test , http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3346204/ ). Ниже приведен пример:

Изучено 1300 баллов и 1300 подходящих контролей. Статус курения представлен следующим образом:

             Normal   
           |no  |yes|
Cancer|No  |1000|40 |
      |Yes |200 |60 |

Каждая запись в таблице показывает информацию о паре CASE-CONTROL: 1000 означает в 1000 пар случай-контроль, ни один из них не был курильщиком. 40 - количество пар случай-контроль, где контроль был курильщиком, а больной раком - нет, и так далее. Следующий код R может быть использован для генерации этой таблицы и выполнения теста Макнемара.

mat = as.table(rbind(c(1000, 40), c( 200, 60) ))
colnames(mat) <- rownames(mat) <- c("Nonsmoker", "Smoker")
names(dimnames(mat)) = c("Cancer", "Normal")
mat
#                  Normal
#              Nonsmoker Smoker
# Cancer
#  Nonsmoker      1000     40
#  Smoker          200     60


mcnemar.test(mat)

#        McNemar's Chi-squared test with continuity correction
#
#data:  mat
#McNemar's chi-squared = 105.34, df = 1, p-value < 2.2e-16

Тест Макнемара также используется для оценки влияния вмешательства на двоичную переменную результата. Пара результатов до и после вносится в таблицу и тестируется, как указано выше.

Изменить: Расширение примера, данного @gung, если статус курения указан в вашем файле данных mydf следующим образом:

pairID  cancer  control
1       1       1
2       1       1
3       1       0
...

Тест МакНемарса можно выполнить с помощью следующих команд R:

> tt = with(mydf, table(cancer, control))
> tt
      control
cancer 0 1
     0 5 1
     1 3 2

> mcnemar.test(tt)

        McNemar`s Chi-squared test with continuity correction

data:  tt
McNemar`s chi-squared = 0.25, df = 1, p-value = 0.6171
rnso
источник
Какой тест вы используете для нескольких контролей на случай, скажем, 10 контролей на случай?
Экспанд
Это заслуживает отдельного вопроса и обсуждения. Я думаю, что можно сопоставить каждый случай со средним значением его элементов управления, а затем можно использовать критерий Макнемара.
rnso
5

Вы правы, что точный тест Фишера не подходит для ваших данных. Вам придется заново составить таблицу непредвиденных расходов. Новая таблица будет для пар , поэтому будет отображаться вдвое меньше данных (в вашем случае 40 вместо 80). Например, представьте, что ваши данные выглядят так (каждый набор парных предметов находится в отдельной строке и 1указывает на курильщика):

cancer  control
1       1
1       1
1       0
1       0
1       0
0       1
0       0
0       0
0       0
0       0
0       0

Тогда ваша старая таблица непредвиденных обстоятельств могла бы быть:

       cancer  control
smoker 5       3
non    6       8

Ваша новая таблица непредвиденных расходов будет выглядеть так:

            control
cancer    smoker  non           
  smoker  2       3
  non     1       5

Первая таблица непредвиденных обстоятельств суммируется с 22 (количество общих предметов в вашем исследовании), но вторая таблица сопряженных сумм суммируется с 11 (количество подходящих пар).

С вашими данными, представленными таким образом, вы заинтересованы в том, чтобы предельные пропорции были одинаковыми. Тест для этого - тест Макнемара . Я объяснил тест Макнемара здесь и здесь .

Gung - Восстановить Монику
источник
1
Обратите внимание, что критерий Макнемара для дихотомических данных эквивалентен критерию знака. Таким образом, ФП может использовать тест знака (с перестановкой или тестом значимости Монте-Карло, если необходимо).
ttnphns
1
@ttnphns, я обсуждаю это в связанных темах, где подробно объясняю тест Макнемара.
gung - Восстановить Монику
1

не должно быть необходимости использовать парный тест. сопоставление популяций показывает, что распределение ковариаитов (возраст, ...) одинаково для двух популяций, поэтому оно не «искажает» картину.

Тест сравнивает средства населения, поэтому нет необходимости спаривать людей. это требуется только для «повторных» измерений, например, для сравнения меню до и после лечения одной и той же группы населения.

tikacp
источник
0

Да и нет:

Возможно, ваш случай подпадает под случай Пирса (2015) : смысл статьи в том, что переменные, которые вы используете для выбора элемента управления, должны контролироваться в исследовании, а не в тесте. Это может быть сложно из-за N = 80.

Надеюсь это поможет :)

Джованни Якопетти
источник