표본 또는 모집단의 분포에 대한 가정없이 두 표본이 동일한 모집단에서 추출되었다는 가설을 검정하고 싶습니다. 어떻게해야합니까?
Wikipedia에서 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)
다음은 Mann Whitney 검정이 놀랍게도 (?) 표본이 동일한 모집단에서 나온 귀무 가설을 기각하지 못한 것입니다.
> 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
도움! 다른 분포를 탐지하기 위해 코드를 어떻게 업데이트해야합니까? (특히 가능한 경우 일반 무작위 화 / 리샘플링을 기반으로 한 방법을 원합니다.)
편집하다:
답변 주셔서 감사합니다! 나는 Kolmogorov-Smirnov에 대해 더 많이 배우고 있는데, 이는 나의 목적에 매우 적합한 것 같습니다.
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 테스트에서 각 기능을 확인할 수 있다는 점이 좋습니다.