태그 보관물: r

r

두 개의 표본이 동일한 분포에서 추출 된 경우 비모수 검정 Wilcoxon

표본 또는 모집단의 분포에 대한 가정없이 두 표본이 동일한 모집단에서 추출되었다는 가설을 검정하고 싶습니다. 어떻게해야합니까?

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를 비교하고 있음을 이해합니다.

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)

– 값이 선택한 임계 값보다 작은 경우, 우리는 샘플이 동일한 분포에서 도출되는 것을 귀무 가설을 기각.

2

dgofcvm.test() 가장 큰 거리를 선택하는 것이 아니라 두 ECDF 것입니다.

편집하다:

크기가 표본이 있다고 가정합니다.

미디엄

가설 검정을 적용하려는 합니다.

이것을 샘플링 유형 절차로 바꾸려면 다음을 수행하십시오.


  1. 미디엄

    미디엄

  2. 샘플의 거리 측정치를 계산하십시오. KS 테스트의 경우 최대 값입니다. 경험적 CDF의 차이.
  3. 결과를 저장하고 1 단계로 돌아가십시오.

결국 귀무 가설 하에서 검정 통계량의 분포로부터 많은 표본을 생성 할 것입니다. 귀무 가설은 원하는 유의 수준에서 가설 검정을 수행하는 데 사용할 수 있습니다. KS 검정 통계량의 경우이 분포를 Kolmogorov 분포라고합니다.

KS 검정의 경우, Quantile은 이론적으로 매우 간단하게 특성화되기 때문에 계산 노력이 낭비되지만 절차는 일반적으로 모든 가설 검정에 적용 할 수 있습니다.


답변