가설을 검증하는 수단, 통계적 실험과 유의성 검정
작성자 : 송시무
- Ch 3. 통계적 실험과 유의성 검정
Ch 3. 통계적 실험과 유의성 검정
-
이번 장에서는 전통적인 실험 설계에 대해 알아볼텐데, 책에서 제시하는 방법은 대부분 데이터 과학에 적용하기 어려웠다. (통계적 추론에서 다루는 개념들이 이런 경우가 많았다.)
-
큰 틀에서 실험과 유의성 검정은 통계적 추론 과정에 속함을 인지하고 넘어가자!
-> 실험은 가설을 검정하기 위해 설계되고, 이를 통해 최종 결론을 도출한다.
용어정리
- 추론 : 이미 알고 있는 것으로부터 결론(새로운 사실)을 도출하는 행위
- 통계적 추론 : 추출한 표본의 통계량으로부터 모집단의 특성을 추론하는 행위.
- 통계적 유의성(Significance) 검정 : 표본으로부터 나온 통계량이 모집단의 참 모습을 담고 있는가?(=실험이 유의미한가?)
- 가설 : 논리적 추론 과정의 전제가 되는 명제. 아직 밝혀지지 않은 주장.
자, 이제 본격적으로 시작해보자!
3.1 A/B 검정
A/B 검정이란?
A/B 검정은 두 개의 그룹(예: 제품 A와 제품 B) 중 어느 쪽이 다른 쪽보다 더 우월하다는 것을 입증하기 위해 실험군을 두 그룹으로 나누어 진행하는 실험이다.
이 때, 두 그룹은 다음과 같은 용어를 사용한다.
- 대조군 : 어떤 처리도 하지 않은 대상들의 집단
- 처리군 : 특정 처리에 노출된 대상들의 집단
일반적으로 ‘새로운 처리 방법을 적용한 것이 대조군보다 더 낫다’ 가 가설이 된다.
두 그룹은 무작위로 나뉘어져 특정 처리를 당한다.
-> 이로 인해 두 그룹의 차이는 다른 처리의 효과 또는 대상이 어떤 처리에 배정될 지에 대한 경우의 수에 의해 나타난다고 할 수 있다.
또한 결과를 나타내는 측정 지표(검정 통계량) 에도 주의를 기울여야 한다. 측정 지표가 연속형 변수인지, 횟수를 나타내는 변수인지에 따라 결과가 다르게 표시될 수 있다.
A/B 검정을 진행하기 전에 단일 지표 or 검정통계량을 정해두지 않고, 실험 후에 이를 선택한다면 연구자 편향에 빠질 수 있으므로 실험 설계 시에 꼭! 측정 지표를 설정해두자!
- 연구자 편항이란 ?
연구 결과의 설계, 수행 또는 해석에 영향을 미칠 수 있는 연구자의 주관적인 신념, 가치관, 태도 또는 선호도
3.2 가설 검정
가설 검정이란?
가설 검정과 유의성 검정은 전통적인 통계 분석 방법이다. 목적은 관찰된 효과가 우연에 의한 것인지 여부를 알아내는 것이다. 이는 연구자가 랜덤하게 우연히 일어난 일에 속지 않도록 보호하기 위해 개발되었다.
통계 가설검정은 그룹 A와 그룹 B 사이에서 보이는 차이가 우연에 의한 것인지를 평가하기 위해 A/B 검정에서 더 나아가 그 외 여러 무작위 실험을 포함하는 분석을 의미한다.
가설 검정은 어떤 식으로 이루어질까?
그룹 A와 B가 있을 때, 실험에서 얻은 그룹 간의 차이가 무작위로 얻을 수 있는 합리적인 수준과는 극단적으로 다르다는 증거가 필요하다. 따라서 아래 두 가설을 세운다.
- 귀무가설 : 두 그룹의 결과는 동일하며, 발생하는 차이는 우연에 의한 결과이다. (야, 그거 우연이야~).
- 대립가설 : 귀무가설과 대조되는 가설, 증명하고자 하는 가설(아니야,, 우연 아니야,,).
두 그룹 간의 차이가 우연이 아님을 증명하는 방법으로 재표본추출 순열검정이 있다. 두 그룹의 결과를 섞어서 비슷한 크기의 그룹들을 반복적으로 만든 다음, 관찰된 차이를 각 경우의 차이와 비교했을 떄 얼마나 극단적인지 관찰하는 방법이다.
일원/이원 가설검정이란?
A/B 검정을 통해 기존에 사용하던 옵션을 A, 새 옵션을 B라고 하자.
1) 일원 가설 검정
B가 확실하게 증명되지 않는다면 A를 계속 고수하겠다. 따라서 우리는 ‘B는 A보다 낫다.’는 방향성을 고려한 대립가설이 필요하다. 이 경우에 일원(또는 한쪽 꼬리) 가설 검정을 사용한다. 즉, 우연에 의한 극단적인 결과에 대해 한 방향만을 고려하여 p값을 계산한다는 것이다.
2) 이원 가설 검정
어느 쪽으로도 속지 않도록 가설검정을 원할 때 대립가설은 양방향이 되며, 이 경우에 이원 가설을 사용한다. 즉, 우연에 의한 극단적인 결과가 양쪽에서 나타날 p 값을 계산한다는 것이다.
A/B 검정의 특성 상 일원 가설 검정과 잘 어울린다. 하지만 p 값의 정확성이 그리 중요하지 않은 데이터 과학에서는 그렇게 중요하지 않다.
3.3 재표본추출
재표본추출이란?
통계학에서 재표본추출의 목표는 랜덤한 변동성을 알아보기 위함이다. 재표본추출은 관찰된 데이터의 값에서 표본을 반복적으로 추출하는 것을 의미한다. 이를 적용하면 머신러닝 모델의 정확성을 평가하고, 향상시킬 수 있다.
- 재표본추출의 두 가지 유형 1) 부트스트랩 : 추정의 신뢰성을 평가하는데 사용 2) 순열검정(이번 장에서 살펴볼 유형)
순열검정(Permutation test)이란?
두 개 이상의 표본을 함께 결합하여 관측값들을 무작위로 재표본으로 추출 하는 과정(유의어 : 임의화검정, 임의순열검정, 정확검정)
과정
1) 여러 그룹의 결과를 단일 데이터 집합으로 결합한다.
2) 결합된 데이터를 잘 섞은 후, 그룹 A와 동일한 크기의 표본을 무작위로 (비복원) 추출한다
3) 나머지 데이터에서 그룹 B와 동일한 크기의 샘플을 무작위로 (비복원) 추출한다
4) 지금 추출한 재표본에 대해 모두 다시 계산하고 기록한다
5) 1 ~ 4의 과정을 R번 반복하여 검정통계량의 순열 분포를 얻는다
결과
기존 그룹의 차이와 순열 과정에서 얻은 집합의 차이를 비교해보자.
만약, 기존 차이가 순열로 나온 차이의 집합 안에 들어가 있다면 어떠한 것도 증명할 수가 없다.( 우연히 일어날 수 있음 )
하지만, 기존 차이가 순열 분포의 바깥에 있다면, 우연 때문이 아니라고 결론 내릴 수 있다.
즉, 통계적으로 유의미하다.
아래 예시의 경우는 차이가 확률 분포의 범위 내에 있음을 확인할 수 있다. 따라서 차이는 통계적으로 유의하지 않다.
전체 및 부트스트랩 순열검정
순열 검정에는 두 가지 변종이 있다.
- 전체순열검정(exhaustive permutation test)
- 부트스트랩 순열검정(bootstrap permutation test)
-
전체순열검정 : 데이터를 무작위로 섞고 나누는 대신, 실제로 나눌 수 있는 모든 가능한 조합을 찾는다. 샘플 크기가 작은 경우 유용하다. 셔플링을 반복할수록, 임의순열검정 결과는 전체순열검정의 결과와 유사하게 근접한다. 더 ‘유의미하다’라는 애매한 결론보다는 더 정확한 결론을 보장한다는 속성 때문에 정확검정(exact test)라고도 한다.
-
부트스트랩 순열검정 : 무작위 순열검정의 2,3단계에서 비복원으로 하던 것을 복원 추출로 수행한다. 이런 식으로 모집단에서 개체를 선택할 때 뿐만 아니라, 개체를 처리군에 할당할 때에도 임의성을 보장한다. 단, 이는 데이터 과학의 입장에서는 별로 실용적이지 않다.
3.4 통계적 유의성과 p 값
통계적 유의성이란?
통계학자가 자신의 실험 결과가 우연히 일어난 것인지 아니면 우연히 일어날 수 없는 극단적인 것인지를 판단하는 방법이다. 결과가 우연히 벌어질 수 있는 변동성의 바깥에 존재한다면 통계적으로 유의하다고 말한다.
용어정리
- p 값(p-value) : 관측된 결과와 같이 특이하거나 극단적인 결과를 얻을 확률. 관찰된 데이터가 가설에 얼마나 부합하는지를 나타냄. 통계적 유의성을 정확히 측정하기 위한 지표.
- 유의수준 α : 실제 결과가 통계적으로 의미 있는 것으로 간주되기 위해, 우연에 의한 결과가 능가해야하는 ‘비정상적인’ 가능성의 임계 확률.
- 제 1종 오류(type 1 error) : 우연에 의한 효과가 ‘실제 효과라고’ 잘못 결론 내리는 것
- 제 2종 오류(type 2 error) : 실제 효과를 ‘우연에 의한 효과라고’ 잘못 결론 내리는 것
p값과 유의수준 α
p값의 의미를 정리하면 결과가 우연에서 비롯될 확률 이라고 볼 수 있다.
이 확률이 특정 임계 값을 넘지 않으면 통계적으로 유의하다고 받아들여진다. 이 때 임계 값을 유의수준 α라 부르며, 5%와 1%가 유의수준으로 많이 사용된다.
p-value < α : 귀무가설 기각, 대립가설 수용
p-value ≥ α : 귀무가설 기각 실패
주의할 점 : 결과가 통계적으로 유의미하다고 해서 실제적으로 유의미하다는 뜻은 아니다. 우연이 아니라고 해서 본질적으로 중요하지 않은 결과가 마술처럼 중요해지는 것은 아니다.
3.5 t 검정( Pass )
t 검정이란 유의성 검정 방법 중 하나로, 여러 방법 중 가장 자주 사용되는 방법이다. 명칭은 스튜던트 t 분포에서 비롯되었다. 유래는 윌리엄 고셋이 단일 표본평균의 분포를 근사화하기 위해 개발된 것이라고 한다.(2.8절 참고)
용어정리
- 검정통계량(test statistic) : 효과에 대한 측정지표
- t 통계량(t-statistic) : 표준화된 형태의 검정 통계량 (ex. 평균)
- t 분포(t-distribution) : 관측된 t 통계량을 비교할 수 있는 기준분포(from 귀무가설)
데이터 과학자들은 데이터가 수치형인지 또는 이진형인지, 표본 크기가 균형잡혀 있는지, 표본 분산이 얼마나 큰지 등 다양한 다른 요인에 대해 걱정할 필요 없이 관측된 데이터와 검증할 가설만을 가지고 답을 구하면 된다. (논문 발표를 준비하는 학자처럼 가설검정과 신뢰구간 분석을 위한 세부 사항을 고려하느라 진땀 흘릴 필요가 없다고 한다.)
3.6 다중검정(Multiple Comparison)
다중 검정이란?
다중 검정이란 여러 개의 가설검정을 동시에 수행하는 것을 말한다.
예를 들어, T검정의 경우 각각 A, B 웹페이지를 랜덤하게 보여준다고 가정했을 때, A를 보였을때 머문시간, B를 보였을때 머문 시간의 차이가 유의미한 차이인지를 유의성 검정을 하는 것이다. 이 때는 각각의 p-value값이 0.05로서(가정) 100번을 했다고 가정했을때 적어도 다섯번은 통게적으로 유의미한 결과를 (실수로)초래할 가능성이 있다. 이를 1종오류(실제로 유의미 하지 않는것을 유의미 하다고 판단하는것) 라고 부른다.
그런데 만약에 A, B, C이렇게 세가지의 웹 페이지를 보여준다고 가정하면 어떻게 될까? 먼저 검정은 다음과 같이 시행이 될것이다.
A와 B가 서로 다른가?
B와 C가 서로 다른가?
C와 A가 서로 다른가?
이렇게 세 번을 시행하게 되는데 이때도 마찬가지로 알파값을 0.05 라고 가정했을때 100번 모두 무의미 하다고 제대로 검정 결과를 보일 확률은 0.95 X 0.95 X 0.95= 0.36 이다. 즉, 적어도 다섯번의 예측이 유의미하다고 검정 결과가 나올 확률은 1 - 0.36(모든 시행에서 무의미하다는 결론이 나올 확률) = 0.64 이다. 이것을 알파 인플레이션 이라고 부르며, 이것이 다중검정을 위한 보정법이 나오게 된 계기가 된다.
다중검정 보정방법
통계학의 수정(adjustment) 절차는 보통 단일 가설검정보다 유의성에 대한 기준을 더 엄격하게 설정함으로서 보완이 이루어 진다.
- 본페로니 보정(Bonferroni adfustment) : α를 비교 횟수 n으로 나눈다.
- 투키의 정직유의차(Honest significant difference) : 그룹 평균 간의 최대 차이에 적용되며 t 분포를 기반으로 한 벤치마크와 비교한다.
데이터 과학자의 결론
위의 방법들은 정의가 분명하며, 이미 잘 구조화된 통계 검정을 위한 수정 절차이다. 하지만 데이터 과학자들이 일반적으로 사용하기에는 너무 특정한 경우를 위한 것이기 때문에 문제에 맞게 변경하는 것이 어렵다. 따라서, 중복에 대한 데이터 과학자들의 결론은 다음과 같다.
-
예측 모델링의 경우, 교차 타당성 검사 / 홀드아웃 표본을 사용하여, 실제 우연히 발생한 것을 겉보기에 유효한 것처럼 보이도록 잘못된 모델을 만들 위험을 낮춘다.
-
미리 분류되어 있는 홀드아웃 표본이 없는 다른 절차의 경우, 데이터를 더 여러 번 사용하고 조작할수록 우연이 더 큰 역할을 할 수 있음을 인식해야한다. 또한 재표본 추출과 시뮬레이션 결과들을 사용하여 무작위 모델의 기준값을 만들어 관찰된 결과를 비교해야 한다.
3.7 자유도(degree of freedom, df)
자유도란?
자유도란 통계적 추정을 할 때 표본자료 중 모집단에 대한 정보를 주는 독립적인 자료의 수를 말한다.
예를 들면 10개의 값으로 이루어진 표본에서 평균값을 알고 있으면, 자연스럽게 10번째 값이 무엇인지 알 수 있다.
데이터 : 2 1 3 5 4 6 7 10 9 x
평균 : 5.5
이 때 x는? 8
- 데이터 과학에서 자유도가 영향을 미치는 경우는 회귀에서 요인 변수를 사용할 때이다(로지스틱 회귀 포함). 예를 들어 ‘요일’이라는 변수를 생각해보자. 일주일은 7일이며, 따라서 요일을 지정할 때 자유도는 6이다. 이 때 월요일부터 토요일이 아닌 요일이라고 한다면 그 날은 반드시 일요일이 되어야 한다. 월~토 지표를 포함하면서 동시에 일요일까지 포함한다면 다중공선성 오차로 인해 회귀에 실패하게 된다.
3.8 분산분석(ANOVA, analysis of variance)
분산분석이란?
기존에 공부했던 A/B 검정은 두 개의 그룹을 비교하였다. 그렇다면 A,B,C,D 그룹의 데이터를 비교한다고 가정하자. 여러 그룹 간의 통계적으로 유의미한 차이를 검정하는 통계적 절차를 분산분석 이라고 한다. 즉, 다수의 그룹 간의 차이가 우연에 의한 것인지, 실제로 통계적으로 유의미한 차이인지를 판단하는 것이 분산 분석의 목적이다.
만약 여러 그룹 중에 두 그룹만을 비교하는 것이라면 문제는 단순할 것이다. 하지만 이렇게 한 쌍씩 비교하는 횟수가 증가할수록 우연히 일어난 일에 속을 가능성은 증가한다. 이를 방지하기 위해 전체적인 부분을 다루는 총괄검정을 실시하는데 ANOVA가 바로 이 검정에 사용하는 방법이다.
ANOVA는 재표본추출 과정을 토대로 진행되므로 결과 값은 결국 p값이 된다.
F 통계량
두 그룹의 평균을 비교하기 위해 순열검정 대신 t검정을 사용할 수 있는 것처럼, F 통계량을 기반으로 한 ANOVA 통계 검정도 있다. 데이터가 정규 분포를 따를 경우, 통계 이론에 따라 F 통계량은 특정 분포를 따르게 된다. 이를 토대로 p 값을 계산할 수 있다.
분산분석의 종류
종속변수의 수에 따라 ANOVA와 MANOVA로 나눌 수 있는데, 다변량 분산분석(MANOVA)는 여러 종속변수를 동시에 검정하는 반면 ANOVA는 한 번에 하나의 종속변수만 평가한다.
하나의 종속변수를 검정하는 ANOVA는 독립변수의 개수에 따라 일원 분산분석과 이원분산분석으로 나뉜다. 하나의 독립변수가 하나의 종속변수에 영향을 평가하는 것은 일원 분산분석, 두 개의 독립변수가 하나의 종속변수에 미치는 영향을 평가하는 것은 이원 분산분석이다.
이러한 ANOVA는 여러 요인과 효과를 모델링하는 회귀와 로지스틱 회귀 같은 통계 모델의 기초가 된다.
3.9 카이제곱검정
카이제곱검정이란?
카이제곱검정은 카이제곱분포에 기초한 통계적 방법이다. 관찰된 빈도(관측 빈도)와 기대되는 빈도(기대빈도)의 차이를 비교하고, 이를 범주형 자료로 구성된 데이터 분석에 이용한다.
참고) 기대빈도는 두 변수가 서로 상관 없고 독립적이라고 기대하는 것을 의미하며, 관찰빈도와의 차이를 통해 기대빈도의 진위여부를 밝힌다.
\[\chi ^{2} = \frac{\sum (관측값 - 기댓값)^{2}}{기댓값}\]카이제곱검정의 종류
- 1) Goodness of fit test (적합도 검정)
- 관찰된 비율 값이 기대값과 같은지 조사하는 검정 (어떤 모집단의 표본이 그 모집단을 대표하는지 검정)
- 2) homogeneity (동질성 검정)
- 다른 두 개의 모집단에서 뽑은 표본의 분포가 비슷한지 검정
- 3) Test for independence (독립성 검정)
- 하나의 모집단에서 뽑은 표본에서 두 개의 요인 간에 차이가 있는지를 확인
카이제곱검정에서 귀무가설과 대립가설
- 귀무가설 : 두 변수는 연관성이 없음 (독립, 예측한 기대 빈도와 동일)
- 대립가설 : 두 변수는 연관성이 있음 (독립X, 예측한 기대 빈도와 다름)
카이제곱검정 : 재표본추출 방법
- 피어슨 잔차
\(R = \frac{관측값-기대값}{\sqrt{기대값}}\) R은 실제횟수와 기대한 횟수 사이의 차이를 나타낸다. - 카이제곱통계량은 이 피어슨 잔차들의 제곱 합이다.
\(X=\sum_{i}^{r}\sum_{j}^{c}R^{2}\)
여기서 r과 c는 각각 행과 열의 수를 의미한다.
여기서 카이제곱통계량이 귀무가설로부터 얻을 수 있는 값보다 크다고 할 수 있는지 검정하기 위해 다음과 같은 알고리즘을 이용한다.
1) 34개의 1(클릭 o)과 2966개의 0(클릭 x)이 들어있는 상자를 만든다. 2) 상자의 내용물을 잘 섞고, 1000개의 표본을 세 번씩 가져와서 각각의 클릭 수를 계산한다. 3) 이렇게 얻은 횟수와 기대한 횟수의 차이를 제곱해서 합산한다. 4) 2-3단계를 반복한다. 5) 재표본추출을 통해 얻은 편차의 제곱합이 얼마나 자주 관측값을 초과하는가? 에 대한 내용이 p값이다.
카이제곱검정 : 통계적 이론
점근적 통계 이론은 카이제곱통계량의 분포가 카이제곱분포로 근사화될 수 있음을 보여준다. 표준 카이제곱분포는 자유도에 의해 결정된다. 분할표에서는 행과 열의 수가 자유도와 관련이 있다.
자유도 = (r-1)*(c-1)
카이제곱분포의 특징
- 일반적으로 한쪽으로 기울어짐
- 오른쪽으로 긴 꼬리가 있음
- 자유도(k)가 클수록 카이제곱 분포는 정규분포에 유사해짐
- 관찰된 통계량이 카이제곱분포의 바깥쪽에 위치할수록 p값은 낮아짐
파이썬에서는 scipy.stats.chi2_contingency 함수를 사용하여 카이제곱분포에 대한 p값을 계산할 수 있다. 단, 카이제곱분포는 실제 통계 분포가 아니고 근사치이므로 재표본추출해서 얻은 p값보다 약간 작은 것을 확인할 수 있다.
피셔의 정확검정
이렇게 카이제곱분포는 재표본 검정의 좋은 근사치를 제공한다. 사건 발생 횟수가 매우 낮은 예외적인 경우에도 재표본추출 방법을 통해 더 정확한 p 값을 얻을 수 있다.
통계 소프트웨어에는 발생 가능한 모든 조합을 열거하고, 빈도를 집계한 후 관찰된 결과가 얼마나 극단적으로 발생할 수 있는지 결정하는 절차를 제공하는데 이를 피셔의 정확검정이라 한다.
R에서는 fisher.test() 메서드로 위의 기능을 제공하지만 파이썬에서는 구현된 것이 없다.
데이터과학과의 관련성
카이제곱검정이나 피셔의 정확검정은 어떤 효과가 실제인지 아니면 우연인지 알고 싶을 떄 사용한다. 하지만 데이터 과학자에게는 그다지 중요한 내용이 아니다. 일반적으로 데이터 과학 실험에서의 목표는 단순 통계적 유의성 조사가 아니라 최적의 처리 방법을 찾는 것이다. 이를 위해선 다음 절에 나올 멀티암드 밴딧 방법이 더 정확한 해결책이다.
데이터 과학에서 피셔의 정확검정(카이제곱검정)을 사용하는 예시로는 웹 실험에 적합한 표본크기를 판별하는 일을 들 수 있다. 종종 클릭율이 매우 낮은 경우에 검정력이나 표본 크기를 계산하는데 유용하게 사용할 수 있다.
카이제곱검정은 통계적으로 유의미한 p값을 찾는 연구에서 활용된다. 데이터과학 응용분야에서는 어떤 효과나 특징에 대해 기본적인 유의성 검정을 넘어 더 심층적인 분석이 필요할지 여부를 결정하기 위해 필터로 더 많이 쓰인다.(EX. 공간 통계학, 머신러닝 등)
3.10 멀티암드 밴딧 알고리즘(Multi-armed Bandit Algorithm, MAB)
결론부터 말하면 밴딧 알고리즘은 3가지 이상의 처리를 효율적으로 다루고, 최고를 위한 최적의 선택을 하도록 돕는다. 그리고 특히 웹 테스트를 위해 자주 사용한다.
이 밴딧 알고리즘은 전통적인 A/B검정에서의 아래 3가지 문제를 해결할 수 있다.
- 결론을 내리기 어려울 수 있음
- 실험이 끝나기 전에 이미 얻은 결과들을 이용하기 시작할 수 있음
- 마음이 바뀌어 실험이 끝난 후에 추가적으로 들어오는 데이터를 기반으로 다른 것을 시도하고 싶을 수 있음
밴딧 알고리즘에 대해 두 개 이상의 손잡이가 달린 슬롯머신을 예시로 설명해보겠다.
목표는 가능한 한 많은 돈을 얻는 것이고, 문제는 손잡이를 잡아 당길 때 총 얼마를 지불할지 모른다는 것이다. 손잡이를 당겼을 때 개별적인 결과만 알 수 있다. 여기서 어떤 손잡이든지 간에 상금은 모두 같다고 가정하자. 다른 점은 승리할 확률 뿐이다. 이러한 조건 하에 50번을 당겼을 때 다음과 같은 결과를 얻었다고 가정해보자.
- 손잡이 A : 50번 중 10번 승리
- 손잡이 B : 50번 중 2번 승리
- 손잡이 C : 50번 중 4번 승리
이 결과를 보고 단순하게 극단적인 결론을 내릴 수 있다. ‘손잡이 A가 최고니 A만 당기자.’ 이는 초기 시험에서 얻은 정보를 최대한 활용하는 방법이다. A가 실제로 우월하다면 이익을 얻지만, 아니라면 이익을 얻을 기회를 잃는 것이다.
또 다른 식으로 극단적인 결론을 내릴 수도 있다. ‘모두 다 똑같이 잡아당기자.’ 이는 A 이외에 다른 손잡이의 확률을 알 수 있는 기회를 얻지만 그 과정에서 수익이 낮을 것으로 예상되는 행위를 시도해야 한다.
밴딧 알고리즘은 위의 두 방식을 조합한 방식이다. A의 우위를 활용하기 위해 A를 더 많이 잡아당기는 것으로 시작하지만, B와 C를 포기하지는 않는다. 과정 중 더 좋은 결과를 보여주는 손잡이를 잡아당기는 비중을 늘려가는 식으로 진행한다.
여기서 문제는 잡아당기는 비율을 어떤 식으로 수정할 것인지이다. 책에서는 이를 해결하기 위해 2가지 알고리즘을 제시한다.
- 앱실론-그리디 알고리즘(epsilon-greedy algorithm)
A/B 검정을 위한 간단한 알고리즘이다. 과정은 다음과 같다.
1) 0부터 1사이의 균등분포의 난수 생성 2) 이 숫자가 0과 앱실론 사이에 존재하면, 50/50 확률로 동전 뒤집기 시행 - 그 결과 동전이 앞면이면 제안 A 표시 - 뒷면이면 제안 B 표시 3) 숫자가 앱실론보다 크면, 가장 좋은 결과를 보인 제안을 표시
앱실론은 이 알고리즘의 단일 파라미터이다. 앱실론이 1이면, 무작위 할당을 하는 셈이고, 0이라면 완전한 탐욕 알고리즘이 된다. 즉, 지금 당장 최상의 옵션을 선택한다. 더 이상의 실험 없이 지금까지 결과 중 가장 좋은 제안에 할당한다.
- 톰슨의 샘플링(Thompson’s sampling)
톰슨의 샘플링은 앱실론-그리디 알고리즘보다 조금 더 복잡하다. 여기선 각 단계마다 표본을 추출(손잡이를 당겨) 최고의 손잡이를 선택할 확률을 최대화 한다. 이를 위해 베이즈 방식을 사용한다(베타분포를 사용하여 수익의 일부 사전 분포를 가정). 각 추출 정보가 누적되면서 정보가 업데이트되기 떄문에 다음 번에 최고 손잡이를 선택할 확률을 최적화 할 수 있다.
3.11 검정력과 표본 크기
웹 테스트를 수행할 경우 실행시간은 어떻게 설정할까?
딱 맞는 일반적인 방법은 없고, 원하는 달성 목표에 따라 조절해야 한다.
표본 크기는 ‘가설검정이 실제로 처리 A와 B의 차이를 밝혀낼 수 있을까?’라는 질문과 연결된다. 실제 차이가 크면 클수록 밝혀낼 가능성도 따라서 커질 것이고, 차이가 작을수록 더 많은 데이터가 필요하다.
검정력이란 특정 표본 조건에서 특정한 효과크기를 알아낼 수 있는 확률을 의미한다.
야구를 예시로 들어보자. 25타석에서 3할 3푼 타자와 2할 타자를 구분할 수 있을 확률이 0.75라고 가정할 수 있다. 여기서 타율 차이(0.130)을 효과크기라 볼 수 있다. 두 타자를 대상으로 한 25타석(n=25) 실험은 0.130의 효과크기에 대해 0.75의 검정력을 가진다고 볼 수 있다.
데이터 과학자들은 검정력을 구할 때 형식적인 절차를 모두 지킬 필요는 없다. 하지만 가끔 사용해야 할 때 아래와 같은 방법을 소개한다.
- 결과 데이터가 최대한 비슷하게 나올 수 있는 가상의 데이터를 생각한다.
- 첫 표본에서 원하는 효과 크기를 더해서 두 번째 표본을 ㅁ나든다.
- 각 상자에서 크기 n인 부트스트랩 표본을 추출한다.
- 두 표본에 대해 순열 가설검정을 진행하며, 통계적으로 유의미한 차이가 있는지 기록한다.
- 3-4단계를 여러번 반복 후, 얼마나 자주 유의미한 차이가 발견되는지 알아본다. 이 확률이 검정력 추정치이다.
표본 크기
검정력 계산의 주된 용도는 표본의 크기가 어느정도 필요한가를 추정하는 것이다.
이 표본의 크기는 효과의 크기에 의해 좌우된다. 예시를 들면 기존 광고와 새로운 광고를 비교하기 위해 클릭률을 조사할 때 얼마만큼의 클릭 수를 수집해야할까? 50% 정도의 큰 차이를 확인하는 것이 목적이라면 적은 수의 표본으로도 확인이 가능할 것이다. 하지만 10% 혹은 더 작은 차이를 확인하고자 한다면 더 큰 표본이 필요하다.
검정력과 표본 크기 계산과 관련된 4가지 요소
- 표본 크기
- 탐지하고자 하는 효과 크기
- 가설검정을 위한 유의수준
- 검정력
이 중 3가지를 정하면 나머지 하나를 알 수 있다.
3장 리뷰 끝!