부트스트랩을 활용한 유연한 비즈니스 의사결정

실험이나 관측 데이터 분석에서 주로 전통적인 통계 방법론, 즉 빈도주의 통계에 기반하는 경우가 많다. 그런데 실무에서는 데이터의 분포가 빈도주의 통계의 기본 가정을 충족시키지 못하는 경우도 있고, 때로는 분석 시간의 제약으로 인해 기계적으로 판단하게 되면서 잘못된 의사결정을 초래하기도 한다. 이 때 부트스트랩은 우리가 관심있는 통계량에 대해 경험적 분포를 제공하여 실무에서 직관적이고 좀 더 정확한 결론을 낼 수 있게 도와준다. 이번 글에서는 부트스트랩에 대해 가볍게 정리하고, 실무에서 부트스트랩이 도움이 되었던 케이스를 정리해보겠다.

  1. 부트스트랩이란?

    부트스트랩은 표본을 통해 모집단의 성질을 추정할 수 있는 것처럼, 표본의 성질에 대해서도 re-sampling을 통해 추정할 수 있다는 개념에서 출발한다. 즉, 표본에서 또 다시 표본을 여러 번 추출하여 표본의 통계량이 어떤 분포를 가지는 지 경험적으로 알아낸다.


    부트스트랩의 장점은 표본의 분포가 정규 분포를 따르지 않거나 크기가 작더라도 통계량의 분포를 경험적으로 추정할 수 있다는 점이다. 부트스트랩도 제약이 있긴 있다. 표본이 서로 독립적이고 동일한 분포(i.i.d)를 따른다는 가정을 충족해야 하고, re-sampling 수가 적을 경우에는 이상치에 크게 영향을 받을 수 있다. 또한 분석을 할 때마다 수치가 조금씩 다르게 나올 수 있는데 이는 re-sampling 횟수를 늘림으로써 변동성을 최소화할 수 있다.


  2. 부트스트랩으로 통계량의 신뢰구간 구하기
    1. 먼저 re-sampling 횟수를 정한다.
    2. 표본에서 복원 추출하여 새로운 표본을 생성한다. 이 때 표본의 크기만큼 re-sampling 한다. 즉 표본이 10개의 데이터로 구성되어 있다면 표본에서 10개의 유닛을 복원 추출한다.
    3. 새로 생성한 표본에 대해 통계량을 계산한다.
    4. 앞 단계에서 얻은 값의 백분위수를 확인하여 신뢰구간을 구한다.
  3. 부트스트랩은 비즈니스 의사결정을 어떻게 돕는가?

    부트스트랩은 다양한 방면에서 활용되지만 실무에서 사용하면서 느낀 장점은 2가지이다.

    1. 이상치에 대한 판단에 직관적 근거를 제공한다.

      이상치를 가진 표본으로 부트스트랩을 수행하면 이상치가 분포에 미치는 영향력을 판단할 수 있다. 첫 번째 그래프에서 가장 왼쪽의 분포는 이상치가 1번 추출된 데이터셋의 분포이고, 그 다음은 2번 추출된 분포, 그 다음은 3번 추출된 분포이다. 이 그래프를 통해서 이상치가 표본의 분포에 매우 큰 영향을 준다는 것을 확인하고 이에 대한 대응책을 마련할 수 있다. 표본의 크기를 키운 후 다시 부트스트랩을 수행하여 이러한 불규칙한 분포가 표본의 크기에 영향을 받은 것인지 확인해볼 수도 있고, 아예 이상치를 제거하는 방법을 취할 수도 있다.

      Outlier가 포함된 표본의 부트스트랩 결과
      그림 1. Outlier가 포함된 표본의 부트스트랩 결과

      이번에는 회귀계수에 대한 부트스트랩 분포다. 이 케이스에서 만약 빈도주의 통계를 기반으로 평가했다면 신뢰구간이 0을 포함하기 때문에 귀무가설을 기각하기 어려웠을 것이다. 그러나 부트스트랩을 수행하여 얻은 회귀계수의 분포를 살펴보면 분석가는 2가지 판단을 내릴 수 있다. 만약 이상치를 제거한다면 그래프의 오른쪽 분포처럼 회귀계수는 0에 가까운, 즉 통계적으로 유의하지 않다고 동일하게 판단할 수 있다. 그렇지만 현실적으로 이상치가 발생할 수 밖에 없는 상황이라면 왼쪽의 분포처럼 음의 효과가 있다고 결론을 내릴 수 있다. 실제 데이터에서는 극단적으로 많이 조회하거나 클릭, 구매하는 등의 이상치가 종종 발생하고 현실적으로 발생이 불가능하지도 않다. 이 때는 이상치를 제거하지 않고 실제로 발생하는 회귀계수의 분포를 파악하는 것이 올바른 의사결정일 수 있다.

      회귀계수에 대한 부트스트랩 결과
      그림 2. 회귀계수에 대한 부트스트랩 결과

    2. 정규분포를 가정하기 애매한 상황에서 통계량 분포의 안정성을 직관적으로 확인할 수 있다.

      두 그룹 간 차이에 대해 통계 검정을 수행할 때 주로 t-test를 많이 사용하는데, 이는 (표본 수가 크다면) 큰 수의 법칙에 의해 표본 통계량의 정규분포를 가정할 수 있기 때문이다. 그러나 때로는 이러한 가정이 여전히 유효한지 확신을 갖기 어려운 때가 있다. 그 중 하나가 비율 지표를 다룰 때인데, 비율 지표의 평균값을 다룬다고 하더라도 그 값이 한 쪽으로 크게 치우친(skewed) 형태라면 정규분포를 따르지 않을 수도 있다. 이 때 부트스트랩으로 경험적 분포를 확인해보면 이런 의문을 해소하고 결론을 내릴 수 있게 된다. 실무에서 평소에는 잘 관찰하지 않던 기능의 전환율을 살펴볼 때 부트스트랩을 적용해보았는데, 아래 그래프처럼 정규분포를 그린다는 것을 직관적으로 확인할 수 있었고, 해당 기능의 배포가 전환율에 긍정적인 영향을 준다는 결론을 보다 확신을 가지고 내릴 수 있었다.

      전환율에 대한 부트스트랩 결과
      그림 3. 전환율에 대한 부트스트랩 결과

부트스트랩은 통계량의 분포 자체를 직접 관찰하게 하여 통계적 불확실성을 탐색할 수 있게 하고, 그에 따라 판단을 돕는 도구다. 실무에서 빈도주의 통계의 가정을 충족하기 어려울 때 부트스트랩을 사용해보면 어떨까?

Reference

(도서) 행동 데이터 분석, 플로랑 뷔송. 한빛미디어