Що ж, здається, я зробив це. Дозвольте спробувати пояснити це ще раз, по-іншому, і ми побачимо, чи це може допомогти з'ясувати речі.
Традиційний спосіб пояснити тест Мак-Немара проти тесту чи-квадрата - це запитати, чи є дані "спареними", і рекомендувати тест Мак-Немара, якщо дані спарені, і тест-квадрат-тест, якщо дані "неспарені". Я виявив, що це призводить до великої плутанини (ця тема є прикладом!). Замість цього я виявив, що найбільш корисно зосередитись на питанні, яке ви намагаєтеся задати , та використати тест, який відповідає вашому питанню. Щоб зробити це більш конкретним, давайте розглянемо складений сценарій:
Ви обходите статистичну конференцію, і за кожним статистиком, який ви зустрічаєте, ви записуєте, чи є вони зі США чи Великобританії. Ви також записуєте, чи має вони високий кров'яний тиск або нормальний артеріальний тиск.
Ось дані:
mat = as.table(rbind(c(195, 5),
c( 5, 195) ))
colnames(mat) = c("US", "UK")
rownames(mat) = c("Hi", "Normal")
names(dimnames(mat)) = c("BP", "Nationality")
mat
# Nationality
# BP US UK
# Hi 195 5
# Normal 5 195
На даний момент важливо з'ясувати, яке питання ми хочемо задати нашим даним. Тут можна задати три різні питання:
- Ми можемо хотіти знати, чи категоричні змінні
BP
і Nationality
пов'язані або незалежні;
- Ми можемо поцікавитися, чи високий кров’яний тиск є більш поширеним серед статистиків США, ніж серед статистиків Великобританії;
Нарешті, ми можемо поцікавитися, чи частка статистиків з високим кров’яним тиском дорівнює частці американських статистиків, з якими ми говорили. Це стосується граничних пропорцій таблиці. Вони не друкуються за замовчуванням у R, але ми можемо отримати їх таким чином (зауважте, що в цьому випадку вони точно такі ж):
margin.table(mat, 1)/sum(mat)
# BP
# Hi Normal
# 0.5 0.5
margin.table(mat, 2)/sum(mat)
# Nationality
# US UK
# 0.5 0.5
Як я вже говорив, традиційний підхід, який обговорюється у багатьох підручниках, полягає у визначенні того, який тест використовувати на основі того, чи є дані "парними" чи ні. Але це дуже заплутано, чи ця таблиця дій у випадку надзвичайних ситуацій «парна»? Якщо ми порівнюємо пропорцію з високим артеріальним тиском між статистиками США та Великобританії, то ви порівнюєте дві пропорції (хоч і тієї ж змінної), виміряні на різних групах людей. З іншого боку, якщо ви хочете порівняти пропорцію з високим кров'яним тиском з пропорцією США, ви порівнюєте дві пропорції (хоч і різні змінні), виміряні на одному і тому ж наборі людей. Ці дані є обома"спарені" та "непарні" одночасно (хоча й стосовно різних аспектів даних). Це призводить до плутанини. Щоб спробувати уникнути цієї плутанини, я стверджую, що ви повинні подумати, з якого питання ви ставите. Зокрема, якщо ви хочете знати:
- Якщо змінні незалежні: використовуйте тест chi-квадрата.
- Якщо пропорція з високим кров'яним тиском відрізняється за національністю: використовуйте z-тест для різниці пропорцій.
- Якщо граничні пропорції однакові: скористайтеся тестом МакНемара.
Хтось може не погодитися зі мною тут, аргументуючи це тим, що оскільки таблиця дій у випадку непередбачених ситуацій не є "парною", тест Макнемара не може бути використаний для перевірки рівності граничних пропорцій і що замість цього слід використовувати тест-квадрат. Оскільки це суперечка, давайте спробуємо обидві, щоб результати мали сенс:
chisq.test(mat)
# Pearson's Chi-squared test with Yates' continuity correction
#
# data: mat
# X-squared = 357.21, df = 1, p-value < 2.2e-16
mcnemar.test(mat)
# McNemar's Chi-squared test
#
# data: mat
# McNemar's chi-squared = 0, df = 1, p-value = 1
50 % = 50 %
Спробуємо ще один приклад:
mat2 = as.table(rbind(c(195, 195),
c( 5, 5) ))
colnames(mat2) = c("US", "UK")
rownames(mat2) = c("Hi", "Normal")
names(dimnames(mat2)) = c("BP", "Nationality")
mat2
# Nationality
# BP US UK
# Hi 195 195
# Normal 5 5
margin.table(mat2, 1)/sum(mat2)
# BP
# Hi Normal
# 0.975 0.025
margin.table(mat2, 2)/sum(mat2)
# Nationality
# US UK
# 0.5 0.5
97,5 % ≫ 50 %
chisq.test(mat2)
# Pearson's Chi-squared test
#
# data: mat2
# X-squared = 0, df = 1, p-value = 1
mcnemar.test(mat2)
# McNemar's Chi-squared test with continuity correction
#
# data: mat2
# McNemar's chi-squared = 178.605, df = 1, p-value < 2.2e-16
Цього разу тест чі-квадрата дає р-значення 1, тобто граничні пропорції такі самі, наскільки вони можуть бути. Але ми побачили, що граничні пропорції, очевидно, не рівні, тому цей результат не має сенсу в світлі наших даних. З іншого боку, тест МакНемара дає р-значення приблизно 0. Іншими словами, вкрай малоймовірно отримати дані з граничними пропорціями, настільки далеко від рівності, як ці, якщо вони справді рівні в сукупності. Оскільки наші спостережувані граничні пропорції далеко не рівні, такий результат має сенс.
Той факт, що тест-ква-квадрат дає результати, які не мають сенсу, враховуючи наші дані, говорить про те, що тут не використовується тест хі-квадрата. Звичайно, той факт, що тест Макнемара дав розумні результати, не підтверджує, що він справедливий, можливо, це був просто збіг обставин, але тест з квадратом чі явно помиляється.
Подивимось, чи зможемо ми розглянути аргумент, чому тест Макнемара може бути правильним. Я буду використовувати третій набір даних:
mat3 = as.table(rbind(c(190, 15),
c( 60, 135) ))
colnames(mat3) = c("US", "UK")
rownames(mat3) = c("Hi", "Normal")
names(dimnames(mat3)) = c("BP", "Nationality")
mat3
# Nationality
# BP US UK
# Hi 190 15
# Normal 60 135
margin.table(mat3, 1)/sum(mat3)
# BP
# Hi Normal
# 0.5125 0.4875
margin.table(mat3, 2)/sum(mat3)
# Nationality
# US UK
# 0.625 0.375
51,25 %62,5 %
prop.test(x=c(205, 250), n=c(400, 400))
# 2-sample test for equality of proportions with continuity correction
#
# data: c(205, 250) out of c(400, 400)
# X-squared = 9.8665, df = 1, p-value = 0.001683
# alternative hypothesis: two.sided
# 95 percent confidence interval:
# -0.18319286 -0.04180714
# sample estimates:
# prop 1 prop 2
# 0.5125 0.6250
(Щоб використати prop.test()
для перевірки граничних пропорцій, мені довелося вводити цифри «успіхи» та загальну кількість «випробувань» вручну, але з останнього рядка результату видно, що пропорції є правильними.) Це говорить про те, що навряд чи вдасться отримати граничні пропорції далеко не рівність, якби вони були фактично рівними, враховуючи кількість даних, які ми маємо.
Чи справжній цей тест? Тут є дві проблеми: Тест вважає, що ми маємо 800 даних, коли нас насправді лише 400. Цей тест також не враховує, що ці дві пропорції не є незалежними, в тому сенсі, що вони вимірювалися одними і тими ж людьми.
% висока ВР: 190 + 15400% США: 190 + 60400
1904001560π= .5під нуль. Це було прозрінням МакНемара. Насправді тест Макнемара є по суті лише біноміальним тестом на те, чи спостереження однаковою мірою потрапляють у ці дві клітини:
binom.test(x=15, n=(15+60))
# Exact binomial test
#
# data: 15 and (15 + 60)
# number of successes = 15, number of trials = 75, p-value = 1.588e-07
# alternative hypothesis: true probability of success is not equal to 0.5
# 95 percent confidence interval:
# 0.1164821 0.3083261
# sample estimates:
# probability of success
# 0.2
У цій версії використовуються лише інформативні спостереження, і вони не рахуються двічі. Значення р тут значно менше 0,0000001588, що часто трапляється, коли залежність у даних враховується. Тобто цей тест є більш потужним, ніж z-тест різниці пропорцій. Далі ми можемо побачити, що наведена версія по суті є такою ж, як і тест Мак-Немара:
mcnemar.test(mat3, correct=FALSE)
# McNemar's Chi-squared test
#
# data: mat3
# McNemar's chi-squared = 27, df = 1, p-value = 2.035e-07
Якщо неідентифікація плутанина, тест МакНемара типово, а в R, квадратує результат і порівнює його з розподілом chi-квадрата, що не є точним тестом, як біноміал вище:
(15-60)^2/(15+60)
# [1] 27
1-pchisq(27, df=1)
# [1] 2.034555e-07
Таким чином, коли ви хочете перевірити граничні пропорції таблиці непередбачених ситуацій, рівні тесту МакНемара (або точний біноміальний тест, обчислений вручну) є правильним. Він використовує лише відповідну інформацію без незаконного використання будь-яких даних двічі. Це не просто "трапляється", щоб отримати результати, які мають сенс даних.
Я продовжую вважати, що намагатись з’ясувати, чи є таблиця на випадок надзвичайних ситуацій, не є корисною. Я пропоную скористатися тестом, який відповідає запитанням, про яке ви ставите дані.