Критерий Мак-Нимара

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
м
Текущая версия (17:27, 15 декабря 2013) (править) (отменить)
 
Строка 90: Строка 90:
* MATLAB: встроенной реализации нет, есть [http://www.mathworks.com/matlabcentral/fileexchange/index?utf8=%E2%9C%93&term=mcnemar реализации на File Exchange].
* MATLAB: встроенной реализации нет, есть [http://www.mathworks.com/matlabcentral/fileexchange/index?utf8=%E2%9C%93&term=mcnemar реализации на File Exchange].
* R: функция [http://stat.ethz.ch/R-manual/R-patched/library/stats/html/mcnemar.test.html <code>mcnemar.test</code>] в стандартном пакете <code>stats</code> и <code>mcnemar.exact</code> в пакете <code>exact2x2</code>.
* R: функция [http://stat.ethz.ch/R-manual/R-patched/library/stats/html/mcnemar.test.html <code>mcnemar.test</code>] в стандартном пакете <code>stats</code> и <code>mcnemar.exact</code> в пакете <code>exact2x2</code>.
-
* Python: в библиотеках не реализован, однако [http://code.google.com/p/hydrat/source/browse/src/hydrat/result/stats.py#3 можно найти готовые реализации]
+
* Python: Библиотека [http://statsmodels.sourceforge.net/stable/generated/statsmodels.sandbox.stats.runs.mcnemar.html#statsmodels.sandbox.stats.runs.mcnemar <code>statsmodels</code>].
== Ссылки ==
== Ссылки ==

Текущая версия

Критерий Мак-Нимара (также, К. Мак-Немара, англ. McNemar's test) используется для анализа таблиц сопряженности размером 2x2 (для дихотомического признака). В отличие от критерия хи-квадрат, критерий Мак-Немара применяется, когда условие независимости наблюдений не выполняется, но, напротив, учет признака выполняется на одних и тех же субъектах.

Содержание

Определение

Рассмотрим n субъектов, для каждого из которых было проведено 2 теста:

Тест 2 положительный Тест 2 отрицательный Сумма в строке
Тест 1 положительный a b a + b
Тест 1 отрицательный c d c + d
Сумма в столбце a + c b + d n

Нулевая гипотеза утверждает, что маргинальные распределения для всех исходов совпадают:

p_a + p_b = p_a + p_c,
p_c + p_d = p_b + p_d.

Заметим, что корректность этих равенств не зависит от p_a и p_b. После сокращения, получаем оригинальную формулировку нулевой и альтернативной гипотез:

H_0~: \quad p_b = p_c,
H_1~: \quad p_b \ne p_c.

Оригинальная форма статистического критерия Мак-Немара такова:

\chi^2 = {(b-c)^2 \over b+c}.

Применение коррекции Йейтса для повышения качества качества критерия на выборках с низкочастотными событиями приводит к следующей формуле:

\chi^2 = {(|b-c|-0.5)^2 \over b+c}.

На практике (например, по умолчанию в функции mcnemar.test в R), однако, обычно применяется коррекция Эдвардса:

\chi^2 = {(|b-c|-1)^2 \over b+c}.

При условии выполнения нулевой гипотезы для достаточно больших выборок (b + c > 25) статистика \chi^2 имеет распределение хи-квадрат с одной степенью свободы. Для маленьких выборок (b + c <= 25) применяют точный критерий Мак-Немара, который является критерием знаков для b относительно биномиального распределения с параметрами n = b + c, p = 1/2.

Пример


\begin{array}{cc}
& \text{Sibling} \\
\text{Patient} &
\begin{array}{c|c|c}
\hline & \text{No tonsillectomy} & \text{Tonsillectomy} \\
\hline\text{No tonsillectomy} & 37 & 7 \\
\hline\text{Tonsillectomy} & 15 & 26
\end{array}
\end{array}

В системе R:

> d <- matrix(c(37, 7, 15, 26), 2, 2)
> mcnemar.test(d)

	McNemar's Chi-squared test with continuity correction

data:  d
McNemar's chi-squared = 2.2273, df = 1, p-value = 0.1356

> mcnemar.test(d, correct=F)

	McNemar's Chi-squared test

data:  d
McNemar's chi-squared = 2.9091, df = 1, p-value = 0.08808

> mcnemar.exact(d)

	Exact McNemar test (with central confidence intervals)

data:  d
b = 15, c = 7, p-value = 0.1338
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
 0.8224084 6.2125863
sample estimates:
odds ratio 
  2.142857 

Реализации

Ссылки

Личные инструменты