Я хотів би перевірити гіпотезу, що два зразки беруть із однієї сукупності, не роблячи припущень щодо розподілу зразків чи популяції. Як мені це зробити?
З Вікіпедії моє враження, що тест Mann Whitney U повинен бути придатним, але, здається, це не працює для мене.
Для конкретності я створив набір даних з двома великими зразками (a, b) (n = 10000) і складеними з двох сукупностей, які не є нормальними (бімодальні), схожі (однакові середні), але різні (стандартне відхилення) навколо "горбів".) Я шукаю тест, який визнає, що ці зразки не з однієї сукупності.
Перегляд гістограми:
R код:
a <- tibble(group = "a",
n = c(rnorm(1e4, mean=50, sd=10),
rnorm(1e4, mean=100, sd=10)))
b <- tibble(group = "b",
n = c(rnorm(1e4, mean=50, sd=3),
rnorm(1e4, mean=100, sd=3)))
ggplot(rbind(a,b), aes(x=n, fill=group)) +
geom_histogram(position='dodge', bins=100)
Ось напрочуд (?) Тест Манна Вітні не спромогся відкинути нульову гіпотезу про те, що зразки з однієї сукупності:
> wilcox.test(n ~ group, rbind(a,b))
Wilcoxon rank sum test with continuity correction
data: n by group
W = 199990000, p-value = 0.9932
alternative hypothesis: true location shift is not equal to 0
Довідка! Як мені оновити код, щоб виявити різні розподіли? (Я особливо хотів би, щоб метод був заснований на загальній рандомізації / переустановці, якщо вона є.)
Редагувати:
Дякую всім за відповіді! Я із захопленням дізнаюся більше про Колмогорова – Смірнова, який видається дуже підходящим для моїх цілей.
Я розумію, що тест KS порівнює ці ECDF з двох зразків:
Тут я візуально бачу три цікаві особливості. (1) Зразки мають різні розподіли. (2) A явно вище B у певних точках. (3) A явно нижче B у певних інших точках.
Тест KS, здається, може гіпотезу перевірити кожну з цих особливостей:
> ks.test(a$n, b$n)
Two-sample Kolmogorov-Smirnov test
data: a$n and b$n
D = 0.1364, p-value < 2.2e-16
alternative hypothesis: two-sided
> ks.test(a$n, b$n, alternative="greater")
Two-sample Kolmogorov-Smirnov test
data: a$n and b$n
D^+ = 0.1364, p-value < 2.2e-16
alternative hypothesis: the CDF of x lies above that of y
> ks.test(a$n, b$n, alternative="less")
Two-sample Kolmogorov-Smirnov test
data: a$n and b$n
D^- = 0.1322, p-value < 2.2e-16
alternative hypothesis: the CDF of x lies below that of y
Це справді акуратно! Я практичний інтерес до кожної з цих особливостей, і тому чудово, що тест KS може перевірити кожну з них.