Точний тест Фішера на парних даних


9

Подано випадків раку легені та відповідних контрольних груп (без раку легенів) (відповідність за віком, статтю тощо). Щоб спробувати знайти докази між впливом куріння на рак легенів, я використав точний тест Фішера на таблиці непередбачених ситуацій. Це, однак, не враховувало, що органи управління та справи відповідали збігу. 4040

Тож я задумався, чи існує спосіб використовувати точний тест Фішера, який враховує відповідність між двома групами?

Відповіді:


8

Вам потрібен тест McNemar ( 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 |

Кожен запис таблиці показує інформацію про ПІДПРИЄМСТВО ПІДПРИЄМСТВА: 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, якщо статус паління вказаний у вашому файлі даних myframe frame наступним чином:

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

Тест McNemars можна виконати за допомогою наступних 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

Який тест ви використовуєте для декількох елементів контролю на кожний випадок, скажімо, 10 елементів контролю на випадок?
eXpander

Це заслуговувало б на окреме запитання та обговорення. Я думаю, що можна поєднати кожен випадок із середнім його контролем, і тоді можна використати тест МакНемара.
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 (кількість відповідних пар).

Якщо ваші дані представлені таким чином, вас цікавить, якщо граничні пропорції однакові. Тест на це - тест Макнемара . Я пояснив тест Макнемара тут і тут .


1
Зауважимо, що тест Макнемара на дихотомічні дані еквівалентний тесту знаків. Таким чином, ОП може використовувати тестовий знак (при необхідності з перестановкою чи тестуванням на Монте-Карло).
ttnphns

1
@ttnphns, я обговорюю це у пов'язаних нитках, де я детально пояснюю тест Макнемара.
gung - Відновіть Моніку

1

користуватися парним тестом не слід. відповідність населення визначає, що розподіл ковараїтів (вік, ...) однаковий у двох популятоїнах, тому це не "спотворює" картину.

тест порівнює засоби популяцій, тому спарювання особин не потрібно. це потрібно лише для "повторних" вимірювань, наприклад, порівняння мени до та після лікування однієї і тієї ж сукупності.


0

Так і ні:

ймовірно, ваш випадок підпадає під дію Пірса (2015) : суть статті полягає в тому, що змінні, якими ви користуєтесь для вибору елемента контролю, слід контролювати в дослідженні, а не в тесті. Це може бути складно через N = 80.

Сподіваюся, що це допоможе :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.