WM-критерий
Материал из MachineLearning.
WM-критерий — непараметрический ранговый критерий для проверки принадлежности двух независимых выборок к общей генеральной совокупности с одинаковыми характеристиками рассеяния. В отличие от критерия Зигеля-Тьюки не требует предположения о равенстве средних в выборках.
Коротко, идея метода следующая. По двум выборкам подсчитываются модули разностей значений наблюдений, взятых наугад без возвращения. К получившимся выборкам модулей разностей применяется U-критерий Манна-Уитни о сдвиге.
| Содержание | 
Примеры задач
Менеджер по кейтерингу хочет проверить, одинакова ли дисперсия количества соуса в упаковке при расфасовке с помощью двух диспенсеров. Каждым из диспенсеров он наполнил 10 упаковок. Возможно, диспенсеры откалиброваны по-разному (нет требования равенства медиан).
- H0 : дисперсия количества соуса в упаковке не отличается для двух диспенсеров.
- H1 : дисперсия количества соуса в упаковке для двух диспенсеров отличается.
 
Описание критерия
Пусть имеются две простые независимые выборки:
- . 
 
Параметр местоположения  неизвестен, предположения о симметрии распределения 
 не делается.
Нулевая гипотеза:
- H0: (Выборки имеют одинаковый разбросс) 
 
- H0: 
Против альтернатив:
- H1: 
 
- H1: 
Подсчет статистики критерия: Генерируем вспомогательные выборки
Алгоритм порождения выборки : из 
 берутся наугад без возвращения пары наблюдений 
, в выборку 
 добавляется 
, процесс продолжается до тех пор, пока в 
 не останется наблюдений, либо останется одно наблюдение. Выборка 
 порождается аналогично.
В предположении H0, статистика  U-критерия Мана-Уитни имеет табличное распределение.
Критерий может быть расширен на случай k выборок за счет использования критерия Краскела-Уоллиса (обобщение U-критерия).
Реализация
- Реализация WM-критерия для Matlab
- Пример реализации на языке R:
wm.test <- function(x, y, alternative= c("two.sided", "less", "greater")) {
    x1 <- sample(x, 2*floor(length(x)/2))
    y1 <- sample(y, 2*floor(length(y)/2))
    x_diff <- abs(x1[1:(length(x1)/2)] - x1[(length(x1)/2+1):length(x1)])
    y_diff <- abs(y1[1:(length(y1)/2)] - y1[(length(y1)/2+1):length(y1)])
    return(wilcox.test(x_diff, y_diff, alternative))
}
Литература
- Clifford Blair, R., & Thompson, G. L. (1992). A distribution-free rank-like test for scale with unequal population locations. Communications in Statistics — Simulation and Computation, 21(2), 353-371.
- Ramsey, P. H., & Ramsey, P. P. (2007). Testing variability in the two-sample case. Communications in Statistics — Simulation and Computation, 36(2), 233-248.

