표본 또는 모집단의 분포에 대한 가정없이 두 표본이 동일한 모집단에서 추출되었다는 가설을 검정하고 싶습니다. 어떻게해야합니까?
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 테스트에서 각 기능을 확인할 수 있다는 점이 좋습니다.
답변
Kolmogorov-Smirnov 테스트는 가장 일반적인 방법이지만 다른 옵션도 있습니다.
테스트는 경험적 누적 분포 함수를 기반으로합니다. 기본 절차는 다음과 같습니다.
- 귀무 가설 하에서 표본이 동일한 분포에서 나온다는 검정 통계량의 분포를 알아냅니다 (행운하게도 사람들은 이미 가장 일반적인 거리에서이 작업을 수행했습니다!).
ks.test(a,b)
– 값이 선택한 임계 값보다 작은 경우, 우리는 샘플이 동일한 분포에서 도출되는 것을 귀무 가설을 기각.
dgof
cvm.test()
가장 큰 거리를 선택하는 것이 아니라 두 ECDF 것입니다.
편집하다:
크기가 표본이 있다고 가정합니다.
가설 검정을 적용하려는 합니다.
이것을 샘플링 유형 절차로 바꾸려면 다음을 수행하십시오.
- 샘플의 거리 측정치를 계산하십시오. KS 테스트의 경우 최대 값입니다. 경험적 CDF의 차이.
- 결과를 저장하고 1 단계로 돌아가십시오.
결국 귀무 가설 하에서 검정 통계량의 분포로부터 많은 표본을 생성 할 것입니다. 귀무 가설은 원하는 유의 수준에서 가설 검정을 수행하는 데 사용할 수 있습니다. KS 검정 통계량의 경우이 분포를 Kolmogorov 분포라고합니다.
KS 검정의 경우, Quantile은 이론적으로 매우 간단하게 특성화되기 때문에 계산 노력이 낭비되지만 절차는 일반적으로 모든 가설 검정에 적용 할 수 있습니다.