BigQuery+python에서 Brunner-Munzel 체크를 수행합니다.

모티프


두 확률 변수 X1, X_2에 대해 나는 같은 분포를 따르는 귀무 가설을 감정하고 싶다.
정규성이 성립되지 않은 상황에서 윌코슨-맨위트니 검정은 견고한 비파라미터 검정으로 유명하지만, 윌코슨-맨위트니 검정은 두 개의 분포가 서로 다른 상황에서 견고하지 않은 것으로 알려져 있다.
브루너-문젤 검정은 정규성이 성립되지 않고 분산된 경우에도 적용되는 검정 기법이다.
Brunner-Munzel은 데이터의 순서를 계산하는 처리가 검정되어 있으며, 데이터가 BigQuery에 있으면 BigQuery에서 순위 계산 등 무거운 처리를 처리하는 것이 좋다.
본고는 BigQuery+ptyhon에서 Brunner-Munzel 검정을 하는 방법을 소개한다.

코드


사용오촌 선생님의 페이지에 사용된 데이터의 예입니다.
Brunner-Munzel 검증을 통해 2개의 데이터 열[1,2,1,1,1,1,1,1,1,1,2,4,1,1][3,3,4,3,1,2,3,1,1,5,4]가 같은 분포를 따르는지 확인합니다.
실제 데이터에 적용할 경우 테스트할 내용dataset_1dataset_2을 바꾸십시오.

통계량의 합계


BigQuery를 사용하여 위의 질의를 회전하면 다음 결과가 나타납니다.
dataset_number
n
avg_whole_rank
variance
1
14
9.821428571428573
4.21565934065934
2
11
17.045454545454547
12.922727272727276

t 통계량/P 값의 계산


통계의 통계량에서 t 통계량과 P 값을 계산하다.python의 코드는 다음과 같습니다.
$python brunner_munzel.py 14 11 4.21565934065934 12.922727272727276 9.821428571428573 17.045454545454547
# test statistic: 3.1374674823029496 degrees of freedom: 17.682841979481545 p-value: 0.0057862086661

검산


Rlawstat 가방에는 브루너-Munzel 검정을 할 수 있는 함수brunner.munzel.test()가 들어 있다.
방금 사용한 데이터의 예를 입력하면 결과가 똑같다는 것을 알 수 있다.
> library("lawstat")
> x = c(1,2,1,1,1,1,1,1,1,1,2,4,1,1)
> y = c(3,3,4,3,1,2,3,1,1,5,4)
> brunner.munzel.test(x, y)

	Brunner-Munzel Test

data:  x and y
Brunner-Munzel Test Statistic = 3.1375, df = 17.683, p-value = 0.005786
95 percent confidence interval:
 0.5952169 0.9827052
sample estimates:
P(X<Y)+.5*P(X=Y) 
        0.788961 

참고 문헌

  • Brunner-Munzel 검정
  • 소수지만 가장 강력한 통계검정, 브루너-먼젤 검정.
  • Sciepy Brunner-Munzel 검정
  • 좋은 웹페이지 즐겨찾기