고동의 데이터 분석

[AB테스트] 빈도주의 통계학, 흐름으로 이해하기

by 소라고동_

이번 포스팅은 회사에서 동료들과 함께 공부했던 AB테스트와 관련된 내용을 담았습니다.

약 3달간 스터디를 진행했는데, 그 기간 동안 나누었던 내용들을 잊지 않기 위해 정리하는 목적으로 글을 작성합니다.

 


 

0. 들어가며

사실 빈도주의 통계학의 개념은 대학시절부터 몇 번이고 접했던 내용인데요.

답답하게도 이 개념이 등장할 때마다 새로워서 늘 찾아보는 저를 발견할 수 있었습니다.

'원인이 뭘까?'라는 생각을 하며 스터디를 준비하던 중 '각각 개념들이 등장한 흐름을 제대로 파악하지 못하고 있기 때문이 아닐까?'라는 생각이 들었고,

그렇기에 이번 포스팅에서는 빈도주의 통계학에서 나타나는 여러 개념들을 흐름에 따라 정리하는 시간을 가져보려합니다.

(주된 흐름은 '통계 101 x 데이터 분석' 책을 참고했습니다)

 


1. 추론 통계에 대하여

1.1. 추론 통계학의 등장

우선 추론 통계학이 왜 등장했는지부터 시작을 해봅시다.

우리가 어떠한 실험을 하거나 데이터를 살펴볼 때 정말 알고 싶은 것은 어떠한 현상과 관련 있는 대상자 전체에 대한 특성(평균, 표준편차 등)입니다.

하지만 시간적, 비용적 문제로 대상자 전체를 조사하는 것은 굉장히 비효율적이죠.

이러한 상황에서 우리는 아래와 같은 아이디어를 가지게 됩니다.

모집단으로부터 샘플링한 표본들의 특성을 살펴본다면 모집단의 특성을 파악할 수 있지 않을까?

 

위 아이디어를 조금 더 쉽게 풀어보면 아래와 같이 풀어낼 수 있습니다.

  • 표본집단의 특성 = 모집단의 특성
  • 표본집단의 실험결과 = 모집단의 실험결과 
  • 표본집단에 적용한 비즈니스 실험 결과 = 모집단에 적용한 비즈니스 액션의 결과

즉, '표본집단을 가지고 모집단을 보여주면 시간적, 비용적 문제를 해결할 수 있겠네!'라는 생각을 가지게 된 것입니다.

 

그런데 이렇게 즐거운 생각을 하는 도중 누군가 이러한 질문을 합니다.

🙋‍♀️ : 근데 표본집단의 결과가 우연히 나온 거면 어떻게 해요?
       이거 진짜 믿을 수 있는 결과인가요?
       표본집단이 그렇다고 해서 모집단이 그렇다는 증거가 없잖아요.

 

바로 이 지점에서 추론 통계학이 등장하게 됩니다.

 

 

1.2. '표본집단'으로부터 파생된 여러 통계적 개념들

위의 배경에 따라 통계학자들은 ‘표본 집단의 특성이 모집단 전체의 특성이라는 것을 어떻게 증명(=추론)할 수 있을까?’라는 포인트에 고민을 하게 됩니다.

그러다 아래와 같은 아이디어를 떠올리게 되죠.

🧑‍🎓 : 표본집단을 여러 번 뽑아보고 그 결과가 계속 비슷하게 나오면 그것이 바로 전체의 결과라고 이야기할 수 있지 않을까?

 

그리고 위 아이디어는 아래와 같이 흘러갑니다.

🧑‍🎓 : 그럼 우리가 정말 알고 싶은 것은 ‘모집단의 평균’ 이지만,
       모집단을 알 수 없으니깐 모집단의 일부인 크기 n인 표본 (x1, x2, … , xn)을 무작위로 뽑아서
       이 표본 집단들로부터 모집단의 평균을 추정해 보자.

 

이러한 흐름 속에서 우리가 알고 싶은 것은 '모집단의 특성'에서 '표본집단들의 특성'으로 바뀝니다.

흐름 1. 모집단의 특성 → 표본집단의 특성
모집단을 모두 다루기엔 시간적, 비용적 문제가 들기 때문에 표본집단들의 특성으로 모집단의 특성을 대체하려 한다.

그런데 이렇게 표본을 살펴보려고 하니 몇 가지 문제가 발생합니다.

그리고 이 문제들을 정의하고 해결하기 위해 여러 통계적 개념들이 생겨났습니다.

 

 

1) 표본 오차 (Sampling Error)

가장 먼저 등장하는 개념은 표본 오차(Sampling Error)인데요.

우리가 평균이 μ 인 모집단에서 표본을 얻었다고 하더라도 일반적으로 표본평균과 모집단의 평균(μ)은 일치하지 않다는 부분에서 나타난 개념입니다.

 

아주 쉬운 예를 들어보면 우리가 주사위를 6번 던진 뒤 평균값을 구해보는 상황이라고 해봅시다.

확률적으로는 (1+2+3+4+5+6)/6 = 3.5라는 값이 나오겠지만 실제로 주사위를 던져보면 3.5 라는 값이 나오지 않는 경우가 많을 겁니다.

즉, 이렇게 확률을 가지고 나타나는 현상에 대해서는 우리가 정말로 알고 싶은 것(=모집단)과 실제로 우리가 뽑아서 확인할 수 있는 데이터(=표본)에는 오차가 생길 수밖에 없습니다.

 

위 예시에서도 확인할 수 있는 부분이겠지만 이를 보다 통계학적 용어로 나타내면,

  • 표본을 추출한다는 것 = 어떠한 확률을 가지고 값들이 뽑혀오는 것 (확률 변수)
  • 이 표본을 추출하는 과정에서 어쩔 수 없이 확률적으로 발생할 수 밖에 없는 오차를 '표본 오차'라고 정의 (= 표본 오차)

정의를 통해 알 수 있듯 표본오차는 어떠한 실수로 인해 발생하는 오차가 아닌 확률적으로 당연히 발생할 수 밖에 없는 오차입니다.

그렇기 때문에 이 표본 오차를 줄여나가는 것이 중요합니다.

표본오차가 줄어들어 0에 가까워질수록 표본집단의 평균과 모집단의 평균이 가까워진다는 의미이기 때문입니다.

 

그러면 이제 우리가 고민할 것은 '표본오차를 어떻게 줄여나갈 수 있을까?'라는 부분이 됩니다.

흐름 2. 표본집단의 특성 → 표본 오차를 줄여나가는 것
표본 추출은 어떠한 확률 변수를 뽑아내는 것이고, 그 과정에서 무조건 발생하는 표본오차를 줄일 수 있다면 모집단을 보다 정확하게 추론할 수 있게 된다.

 

 

2) 큰 수의 법칙

사실 표본오차를 줄이는 부분에는 정말 간단한 방법이 있는데, 그것은 표본의 수를 아주 크게 늘려버리는 것입니다.

 

동일하게 주사위 예시를 들어보면,

주사위를 10번 던졌을 때와 10,000번 던졌을 때의 주사위눈의 평균값을 비교해 보면 당연히 10,000번 던졌을 때가 더 3.5에 가깝다는 것을 알 수 있죠.

즉, 표본크기 n을 늘릴수록 표본평균(𝑋ˉ)이 모집단의 평균(μ)에 한없이 가까워진다는 것이고,

이는 표본 오차(= 𝑋¯- μ) = 0에 한없이 가까워진다는 것을 의미합니다.

 

위에서 이야기했듯 표본 오차가 0에 한없이 가까워진다면 표본평균이 모평균으로 수렴한다는 의미이고.

우리는 표본평균을 통해 모평균을 올바르게 추정할 수 있게 됩니다.

 

이렇게 표본크기(n)가 커질수록 표본평균 𝑋ˉ 가 모평균 μ 에 가까워진다는 것을 알았으니 이대로 통계적 추론이 마무리되면 좋겠지만 너무나도 아쉽게도 그렇지 않습니다..

왜냐하면 n을 무한대로 늘린다고 하더라도 𝑋ˉ = μ 가 되진 않기 때문인데요.

결국엔 무조건 발생하는 표본오차가 있기 때문에 표본오차는 0에 한없이 가까워질 뿐 0이 되는 것이 아니고,

이러한 이유로 아무리 표본의 수를 늘린다고 하더라도 모평균 = 표본평균이라는 판단을 할 수 없게 됩니다.

 

그래서 아이디어가 아래의 방향으로 뻗어나갑니다.

🧑‍🎓 : 표본오차를 0으로 만들 수 없다는 건 알겠어.
       그러면 표본오차의 크기가 어느 정도가 되는지 알 수 있다면, 표본집단을 통해 모집단을 추정할 수 있겠네…!

 

그런데 여기서 ‘표본 오차가 얼마나 발생활 지를 어떻게 알 수 있지?라는 고민이 생깁니다.

이 부분에 대해서 똑똑한 통계학자들은 아래와 같은 생각을 해냅니다.

 

🧑‍🎓 : 생각해 보니 표본오차(𝑋¯- μ)도 결국 어떠한 확률을 가지고 발생하는 확률변수잖아?
       (확률 변수인 𝑋¯에 μ라는 정수를 빼준 값이니깐) 
       그렇다면,
           𝑋¯ 의 확률분포를 알 수 있으면 표본오차(𝑋¯- μ)의 확률분포도 알 수 있고
       → 그럼 어느 정도의 확률로 표본오차가 발생하는지 알게 되고 
       → 표본집단을 통해 모집단을 보다 정확하게 추정할 수 있게 된다!

 

여기서 표본 오차의 확률분포를 알아내는 것으로 흐름이 이동됩니다.

흐름 3. 표본오차 줄이기  표본오차의 확률 분포 알아내기
표본의 크기를 아무리 늘려도 표본 오차 = 0이 될 수 없기 때문에 표본오차의 확률 분포를 알아내어 모집단을 추론할 수 있다.

 

 

3) 중심 극한의 정리

그런데 우리는 모집단의 분포를 모르는 상황인데 어떻게 표본집단의 분포를 알 수 있을까요?

위 흐름에서 목표가 되어버린 '표본오차의 분포'에 관해 중요한 정보를 제공하는 것이 많이들 들어보셨을 '중심 극한의 정리'입니다.

중심 극한의 정리
  = 모집단의 분포가 어떻든 간에, 표본크기 n이 커질수록 표본평균 𝑋¯ 의 분포는 정규분포에 근사한다.

 

여기서 '표본크기 n'은 표본 집단의 수를 의미하고, (아래 사진에서 표본집단 A, B, C... 가 하나의 표본 집단)

'표본평균 𝑋¯의 분포'는 표본크기 n인 표본을 여러 번 추출해서 각각의 집단의 평균을 분포로 만든 것을 의미합니다.

표본 크기와 표본평균의 분포

위 표본평균의 분포는 아래와 같은 수치를 가진 정규분포로 근사하게 됩니다. (증명은 생략)

  • 평균 = 모집단의 평균 (μ)
  • 표준편차 = 모집단의 표준편차 / 루트(표본의 크기) = σ /√n

 

위의 수치도 중요하겠지만 여기서의 포인트는 표본평균의 분포가 어떤 분포인지 알 수 있다는 것입니다.

이 의미는 생각보다 큰 의미를 가지는데요.

  1. ‘표본집단의 평균’으로 ‘모집단의 평균’을 추정할 수 있게 된다는 것!
  2. n이 커질수록 표본 오차의 분포도 정규분포를 따른다는 것! (표본평균의 분포는 정규분포를 따른다)
    • 표본오차의 평균 = 0 ( 𝑋¯- μ인데 𝑋¯ = μ 라서 평균이 0)
    • 표본오차의 표준편차 = σ /√n = 표준오차 (Standard Error) (t분포를 따른다고 함)

표본 오차의 분포가 정규분포를 따른다는 것은 평균의 추정치들이 평균에서 얼마나 퍼져있는지를 알 수 있다는 의미를 가지는데요.

표준 오차(Standard Error)는 평균의 추정치들에 대한 불확실도를 수치화한 것이고,

이 수치를 기반으로 표본평균의 분포를 통해 모집단의 평균을 추정할 수 있게 됩니다.

 

그리고 이를 가능하게 하는 표준오차는 모집단의 표준편차 σ표본의 크기 n으로 계산됩니다.

그런데 여기서 한 가지 감수하고 넘어가야 할 부분이 있는데요.

모집단의 표준편차 σ 는 우리가 알 수 없는 미지의 영역이기 때문에 이 값을 표본의 표준편차 s로 대체해서 사용하게 됩니다.

  • s = 표본평균들의 표준편차 (중심극한정리에서 만들어진 정규분포의 표준편차) = 가정 속에서 만들어진 표준편차

즉, 중심극한의 정리를 따른다는 가정 속에서 표준 오차 = s /√n 가 되는 것이죠.

 

이 과정을 통해서 우리는 표본오차의 확률 분포를 알게 되고, 이는 오차가 얼마나 큰 확률로 발생하게 되는지를 알 수 있다는 것을 의미합니다.

여기까지 왔으면 이제 우리가 궁금해했던 것들이 하나씩 해소가 되는데요. 

하나씩 거꾸로 돌아가보면,

1. 표본 평균(𝑋¯)의 분포를 알게 되었다.
   =  중심극한의 정리를 통해, n이 커질수록 정규분포에 근사

2. 표본 평균의 분포를 안다는 것은 표본 오차(𝑋¯ - μ)의 확률 분포를 안다는 것
   = 𝑋¯의 분포에서 μ 만큼 이동한 정규분포

3. 이 의미는 표본 오차가 어떤 값을 확률적으로 가질지 알게 된다는 뜻.
   = 표본 오차는 반드시 발생하기에 이 값을 줄이는 것이 중요 ~ 큰 수의 법칙

4. 그 말은 표본 집단의 특성으로부터 모집단의 특성을 추론해 낼 수 있다는 의미

 

 

 

1.3. ‘신뢰 구간’ (= 표본 오차… 분포… 이 복잡한 것들을 보다 쉽게 나타내주는 친절한 도구)

추론통계가 등장하고 그로부터 파생된 여러 통계적 개념들을 따라오면서 우리는 표본오차의 확률분포가 평균 = 0, 표준편차 = s/√n에 근사하는 정규분포라는 것을 알 수 있었습니다.

그런데 이렇게 힘겹게 이해를 했는데 통계학자들에게는 또다시 고민이 생겨났습니다.

🧑‍🎓 : 이 흐름을 통해 개념을 이해는 했는데… 이걸 어떻게 쉽게 활용할 수 있을까?

 

똑똑한 통계학자들은 정규분포라는 포인트를 놓치지 않고 아이디어를 떠올립니다.

🧑‍🎓 : 정규분포는 우리가 알고 있는 간단한 수식으로 나타낼 수 있잖아?
       그럼 이 내용들을 간단한 정규분포 식을 활용해서 구간을 만들어보자!

 

💡 신뢰구간이 만들어지는 과정 
     1) 정규분포의 성질을 생각해 보면 평균값 +- 1.96 * 표준편차의 범위에 약 95%의 값이 들어감
         이것을 표본오차에 적용을 해본다면?! (정규분포에 근사하는 표본오차의 분포 특성 활용)

     2) 표본오차의 약 95%는 아래의 범위에 들어감
          0 - 1.96 * s/√n ≤ 𝑋¯ - μ ≤ 0 + 1.96 * s/√n
       = 𝑋¯ - 1.96 * s/√n ≤ μ ≤ 𝑋¯ + 1.96 * s/√n

     3) 위 식을 사용하면 '표본 집단의 평균''표본의 크기', '표본 집단의 표준편차'를 알면 모평균의 구간을 알게 되는 셈
         (모든 요소가 표본집단에서 만들어진 것)
     → 표본 평균들의 분포가 정규분포를 따른다는 중심극한의 정리로부터 신뢰구간이 만들어질 수 있었던 것
         위 구간의 의미는 모평균을 포함할 확률이 95%라는 의미

위와 같은 과정으로 만들어진 것이 신뢰구간입니다.

신뢰구간은 표본에서 구한 모집단의 평균의 추정값을 어느 정도 신뢰할 수 있는지 나타내는 구간으로 해석할 수 있습니다.

 

 

1.4. t분포

그런데 이렇게 흐름을 가져오다 보니 통계학자들의 마음속에서 약간의 걸림돌이 생겨납니다.

🧑‍🎓 : … 근데 우리 모든 흐름에서 정규분포를 따른다는 것을 가정하고 있잖아…
      근데 실제 데이터에서 정확히 정규분포를 따르는 상황이 거의 없지 않아..?

 

사실 가정을 해서 그렇지 위 흐름을 따르다 보면 아래와 같은 이유로 사용하기 어려운 경우가 생깁니다.

  1. 표본크기가 작은 경우엔 표본오차가 정규분포를 따른다고 말할 수 없기 때문
  2. 그리고 모집단의 표준편차 대신 표본평균의 표준편차(s)를 사용해야 하기 때문

위와 같은 이유로 어려움을 겪고 있는데 갑자기 새로운 개념이 등장합니다.

🧑‍🎓 (윌리엄 고셋) : 그러면 정규분포 말고 t분포를 쓰자!

 

t분포는 모집단이 정규분포라는 가정하에, 미지의 모집단 표준편차를 표본으로 계산한 표본표준편차로 사용하여 만든 분포입니다.

그러니 위에서 살펴본 2가지 문제점을 이렇게 해결한 것이죠.

  • 표본크기가 작은 경우엔 표본오차가 정규분포를 따른다고 말할 수 없기 때문에
    표본집단의 수를 늘려서 표본오차가 정규분포를 따르게 함 (중심극한의 정리)
  • 그리고 모집단의 표준편차 대신 표본평균의 표준편차(s)를 사용해야 하기 때문
    애초에 표본평균의 표준편차(s)를 가지고 분포를 만들어버림 (t분포)

조금 머리가 복잡하지만 여기서는 t분포를 보다 엄밀한 값을 얻고자 분포를 미세 조정한 분포라고 생각하고 넘어가면 될 듯합니다.

그리고 t분포는 정규분포와 동일한 특징을 가지고 있고, n 이 커짐에 따라 t분포는 정규분포에 가까워진다는 특징만 알아둡시다.

 

 


2. ‘통계적 개념’을 적용한 '가설 검정'

이렇게 통계적인 내용을 알았다면 이제 이 개념을 ‘가설 검정’이라는 것에 활용하게 됩니다.

여기서 ‘가설 검정’을 하는데 왜 위에서 살펴본 추론적 통계학이 사용되는 거지?라는 생각을 할 수 있는데요.

이는 추론 통계학이 등장하게 된 배경과 가설 검정의 근본적인 아이디어가 동일하기 때문입니다.

- 추론 통계학 : 모집단을 알기 위해 표본 집단을 추출 → 여러 통계적 개념 등장 → 표본집단으로부터 모집단 추론
- 가설 검정 : 실험군/대조군을 통해 살펴본 일부의 결과 → 여러 통계적 개념 활용 → 일부를 통해 전체 집단의 결과 추론

 

즉, 결국은 '샘플링한 일부가 정말로 전체를 대표하는 것이 맞아?'라는 불신을 해소하기 위해 사용하는 것이죠.

가설검정에 사용되는 기본적인 개념인 ‘실험군, 대조군 & 귀무가설, 대립가설’의 개념은 생략합니다.

 

 

2.1. 가설 검정의 기본 마인드셋

가설 검정에 있어서는 귀무가설이 참인 세상을 기준으로 합니다.

즉, 차이 검정을 한다면 두 모집단의 평균이 동일한 세상을 기본적으로 상상하고 시작한다는 것이죠.

그리고 이 두 모집단에서 표본을 추출해서 각각의 표본 집단 평균의 차이를 분포로 그려봅니다.

가설 검정의 세상에서는 귀무가설이 참이기 때문에 차이의 평균 = 0 이 됩니다.

 

 

 

2.2. ‘p-value’와 ‘유의 수준’

그렇게 귀무가설이 참이 세상에서의 두 표본집단들의 차이의 분포가 만들어져 있다고 생각을 하고,

실제로 우리가 실험을 통해서 살펴본 표본집단들의 차이(실제값)를 얻어낸 상황이라고 해봅시다.

 

위에서 '이 일부가 진짜 전체를 대표하는 것이 맞아?'라는 의문점을 가설검정 마을의 언어로 풀어보면 아래와 같이 이야기해 볼 수 있는데요.

실제로 실험을 통해 얻어낸 값이 귀무가설이 옳은 세상에서는 어떤 빈도로 발생하는 것일까?

 

만약 아주 드물게 발생하는 일이라면 어떤 생각을 하게 될까요? 

아마도 이런 생각을 하게 될겁니다.

야 뭐야 이런 값이 나올 수 있는 확률이 이렇게나 낮은데 귀무가설이 참인게 맞아?

 

여기서 나온 '이런 값이 나올 수 있는 확률'이 바로 p-value 입니다.

기본적으로 p-value 도 확률이기 떄문에 0 ~ 1 의 값을 가지는데요.

 

조금 정리를 해보자면 p-value 는 귀무가설이 옳다고 가정했을 때, 실험을 통해 얻은 값 이상으로 극단적인 값이 나올 확률을 이야기 합니다.

p-value 를 해석하는 간단한 예시를 들어보면요.

p-value = 0.05 라면 실험을 통해 나타난 값이 실제로 나타날 확률이 5% 밖에 안되네…
→ 이게 말이 되나?
→ 귀무가설이 참인 가정 자체가 틀린게 아닌가?
귀무가설을 기각해야겠다.

 

그런데 여기서 이런 생각이 듭니다.

그러면 p-value 가 높다 낮다의 기준이 대체 뭔데??

 

그리고 그 기준을 의미하는 개념이 바로 유의수준입니다.

우리는 유의수준을 기준으로 ‘통계적으로 유의미하다’를 판별하게 되고,

상황에 따라 바꿔쓸 수 있지만 유의수준은 통상적으론 0.05 를 사용합니다.

 

그렇다면 또 의문이 들 수 있는데요. (의문투성이..)

🧑‍🎓  : 가설 검정의 기본 가정도 알겠고, 유의수준을 정해서 p-value 를 판별함으로써 가설을 기각하는 것도 알겠어.
        그러면 p-value 를 어떻게 구할 수 있을까?

 

p-value 를 구하는 것은 결국 어떠한 확률 분포에서 실험을 통해 얻은 값이 나올 확률을 구한다는 것을 의미하는데요.

그렇기 때문에 어떤 분포를 통해 검정을 하는지에 따라서 p-value 를 구하는 식이 달라집니다.

보통 통제군/실험군의 평균의 차이를 검정하는 방식을 이표본 t검정(Two-Sample t-test)이라고 하고, p-value 는 통계 프로그램으로 구하면 됩니다.

 

 

 

2.3. 위 개념을 통해 가설 검정하기

이렇게 통계학적 개념들을 가지고 우리는 가설검정의 결론을 만들어낼 수 있게 됩니다.

흔히들 알고 있는 아래와 같은 문장으로 말이죠.

p-value 가 유의수준(보통은 0.05)보다 낮으면 귀무가설을 기각하고 대립가설을 채택한다.

 

가설 검정 과정에서 고려해야하는 부분은 세세하게 많이 존재하지만 이번 포스팅은 통계학적인 흐름을 위주로 살펴보는 목적이라 여기서 마치려 합니다.

 

 


3. 정리하면

너무나도 긴 내용을 한 포스팅에 넣어버린 기분이 들지만.. 마지막으로 이 흐름을 정리하면서 제가 느꼈던 부분을 정리해보면요.

1. 추론 통계를 배우는 이유는 우리가 알고 싶은 것(=모집단)을 실제로 얻을 수 있는 것(=표본집단)으로 추정하기 위함이다.
   (즉, 전체를 다 살펴볼 각오나 여력이 되지 않고 전체를 알고싶다면 양심껏 통계라도 공부하라는 의미가 아닐까..)

2. (개인적으로 느끼는) 추론 통계의 핵심적인 개념은 표본 집단의 분포를 알 수 있게 해주는 중심극한의 정리다.
    중심극한의 정리는 표본 집단의 확률 분포를 알려주고,
    이 확률 분포를 안다는 것은 우리가 실험으로 얻은 실제 값이 발생할 확률을 계산할 수 있게 해주기 때문

3. 즉, 확률 분포를 알고난 뒤 확률을 계산하고, 이를 통해 가설을 기각/채택할 수 있는 근거를 마련하게 된다.
    여기서 통계적 개념인 p-value, 유의수준, 신뢰구간이 함께 곁들여진다.

 

 


 

다음 통계 개념 포스팅에서는 베이지안 통계학의 흐름에 대해 정리해볼 예정입니다.

블로그의 정보

고동의 데이터 분석

소라고동_

활동하기