Statistics

[통계 기초] Permutation test

2021. 5. 13. 17:46

Permutation test란?

  데이터가 주어졌을 때 이로부터 생성한 estimator의 분산이 얼마인지, confidence interval은 어떻게 되는지를 볼 때 resampling approach 중 하나인 bootstrap을 이용할 수 있다.

  하지만 test를 위한 목적으로는 bootstrap이 아니라 다른 resampling approach인 permutation test를 사용할 수 있다.

  이는 샘플 사이즈가 작은 두 그룹(X, Y)이 있을 때 서로 분포가 같은지, 다른지를 판단 (두 그룹의 평균이 다른지 등)할 때 사용하는 non-parametric approach이다.

 

Permutation test의 과정

  먼저 X그룹과 Y그룹 각각의 평균을 구한 후 그 차이(절대값)를 계산하여 test statistics T_obs를 구한다. 우리는 이 test statistics가 따르는 null distribution을 모르지만 permutation을 이용해서 null distribution에서 나왔을 것 같은 데이터를 생성할 수 있다.

  Under the null에서는 X그룹과 Y그룹의 분포가 같기 때문에 서로 순서를 바꿔줘도 상관이 없다. Original data에서 처음 m개가 X그룹이었다면 순서를 섞어준 후의 처음 m개를 새로운 X*그룹이라고 한다. 그리고 X*그룹의 평균과 Y*그룹의 평균의 차이(절대값)를 계산하여 새로운 test statistis T*를 만든다.

  이러한 T*는 총 n!개 만큼 만들 수 있다. 하지만 그러면 계산이 너무 복잡해지기 때문에, boostrap보다는 많지만 또 너무 많지는 않은 선에서 적당히 반복횟수를 정한다. B번 반복하여 총 B개의 T*를 얻었다면, T_obs보다 더 큰 T*의 비율을 계산하여 p-value를 approximate할 수 있다.

 

  만약 X그룹과 Y그룹의 분포가 실제로 다르다면 p-value가 작아지게 되고(T_obs가 보통 T*보다 클 것이기 때문), 실제로 다르다면 p-value가 커지게 된다 (T_obs와 T*가 비슷한 값을 가질 것이기 때문).

 

Bootstrap과의 비교

  • Bootstrap(Replace=TRUE)과 달리 permutation test는 Replace=FALSE이다 (Sample의 순서만 바꿔야 한다).
  • Bootstrap이 1000번 정도 반복한다면, 실제 p-value가 작은 경우나 정확한 p-value를 구하기 위해서는 permutation을 많이 해야한다 (permutation test의 약점) -> Heavy한 computation.
  • Bootstrap과 마찬가지로 가정이 필요 없다는 장점이 있다.
  • Bootstrap은 X 그룹과 Y 그룹의 관계를 유지하면서 resampling하여 X, Y 관계에서 나타나는 confidence interval 등을 구하는 것이다. 반면, Permutation test는 X 그룹과 Y 그룹의 관계를 파괴함으로써 null distribution을 생성하고 이를 바탕으로 p-value를 구하는 것이다.

 

 

 

 

 

728x90
반응형