통계

[데이터 과학을 위한 통계] CH 3: 통계적 실험과 유의성 검정 (2)

YJ.Cha 2021. 9. 29. 20:29

1. 다중검정
- 추가하는 변수가 많을수록 또는 더 많은 모델을 사용할 수록 뭔가가 우연에 의해 '유의미한' 것으로 나타날 확률이 커진다. 
- 예측 모델링의 경우, 교차타당성검사와 홀드아웃 표본 사용을 통해 실제 우연히 발생한 것을 겉보기에 유효한 것처럼 보이도록 잘못된 모델을 만들 위험을 낮출 수 있다.
- 미리 분류되어 있는 홀드아웃 표본이 없는 다른 절차의 경우, 다음 사항에 의존해야한다.
데이터를 더 여러 번 사용하고 조작할 수록 우연이 더 큰 역할을 할 수 있다는 것을 인식해야 한다.
재표본추출과 시뮬레이션 결과들을 사용하여 무작위 모델의 기준값을 만들어 관찰된 결과를 비교한다.

2. 자유도
- 표본 데이터에서 계산된 통계량에 적용되며 변화가 가능한 값들의 개수를 나타낸다. 예를 들면 10개의 값으로 이뤄진 표본에서 평균과 9개 값을 알고 있다면 마지막 10번째 값을 자연히 알 수 있다. 이 나머지 한 개의 값을 제외한 9개의 값만 변화가 가능하다.
- 자유도는 많은 통계 검정에서 입력으로 주어지는 값이다. 예를 들면 분산과 표준편차에 대한 계산에서 분모에 표시된 n-1을 자유도라고 부른다. 이것이 왜 이렇게 중요할까? 표본을 통해 모집단의 분산을 추정하고자 할 때 분모에 n을 사용하면 추정치가 살짝 아래쪽으로 편향될 것이다. 분모에 n-1을 사용하면 추정값에 편향이 발생하지 않는다.
- 데이터 과학에서는 유의성 검정이란 측면에선 그렇게 중요하지 않다. 왜냐하면 공식적인 통계 검정은 데이터 과학 분야에서 아주 드물게 사용되기 때문이다. 또한 데이터 크기가 대개 충분히 크기 때문에 분모가 n인지 n-1인지가 거의 차이가 없다.
- 그러나 회귀에서 요인변수(범주형 변수)를 사용할 때는 관련이 있다. 완전히 불필요한 예측변수들이 있는 경우 회귀 알고리즘을 사용하기 어렵다. 이는 범주형 변수를 이진지표(더미)로 요인화(factoring)할 때 가장 많이 일어난다. 예를 들어 요일의 경우, 일주일에 7일이 있지만 요일을 지정할 때 자유도는 6개이다. 월요일부터 토요일이 아닌 요일이라고 하면 그 날은 반드시 일요일이어야 한다. 따라서 월~토 지표를 포함하면서 동시에 일요일까지 포함한다면 다중공선성 오차로 인해 회귀를 실패하게 된다.

3. 분산분석
- 여러 그룹 간의 통계적으로 유의미한 차이를 검정하는 통계적 절차를 분산분석(Analysis of Variance), 줄여서 ANOVA라고 한다.
- 그룹 간 전체적인 편차가 우연히 발생할 수 있는 범위 내에 있는지를 평가하기 위해 사용한다.
- ANOVA의 결과 중 유용한 점 중 하나는 그룹 처리, 상호작용 효과, 오차와 관련된 분산의 구성 요소들을 구분하는 데 있다.
- 예시: 4개 웹 페이지의 점착성(방문자가 페이지에서 보낸 시간)을 비교하는 경우, '모든 페이지가 동일한 기본적인 점착성을 갖는가? 그리고 이들 사이의 차이는 우연에 의한 것이고 원래 4개 페이지에 할당된 세션 시간 역시 무작위로 할당된 것인가?'라는 질문을 다루는 전체적인 총괄검정을 할 수 있다. ANOVA가 바로 이 검정에 사용되는 방법이다.
- 웹 페이지 점착성 예시를 통해 ANOVA의 토대가 되는 재표본추출 과정을 살펴보자.
① 모든 데이터를 한 상자에 모은다.
② 네 그룹의 재표본을 섞어서 추출한다.
③ 각 그룹의 평균, 네 그룹 평균 사이의 분산을 기록한다.
④ 2~4 단계를 여러 번 반복한다.
재표집된 분산이 관찰된 변화를 초과한 시간은 어느 정도일까? 이것이 바로 p값이다.

1) F통계량
- F통계량을 기반으로 한 ANOVA 통계 검정도 있다. F통계랑은 잔차 오차(residual error)로 인한 분산과 그룹 평균의 분산에 대한 비율을 기초로 한다. 이 비율이 높을 수록 통계적으로 유의미하다고 할 수 있다.

2) 이원 분산분석
- 예를 들어 '주말 대 평일'이라는 두 번째 요소를 고려한 각 조합 (그룹 A 주말, 그룹 A 평일, 그룹 B 주말 등)에 관한 데이터가 있다고 가정하자. 이 때 필요한 것이 이원 ANOVA이다. 이는 '상호작용 효과'를 확인하는 식으로, 일원 ANOVA와 방식은 비슷하다. 총평균 효과와 처리 효과를 확인한 후, 각 그룹의 주말과 평일 데이터를 따로 분리한다. 그리고 그 부분집합들에 대한 평균과 처리 평균 사이의 차이를 찾아본다.

4. 카이제곱검정
- 웹 테스트 시, 종종 단순한 A/B 검정을 넘어 동시에 여러 처리를 한 번에 테스트할 필요가 있다. 카이제곱검정은 횟수 관련 데이터에 주로 사용되며 예상되는 분포에 얼마나 잘 맞는지를 검정한다.
- 통계적 관행에서 카이제곱통계량은 일반적으로 변수 간 독립성에 대한 귀무가설이 타당한지를 평가하기 위해 r x c 분할표를 함께 사용한다. 

1) 재표본추출 방법
- 웹 페이지에서 A, B, C 세 가지 헤드라인을 비교한다고 가정하자. 이때 각각 1000명의 방문자에 대한 결과가 아래의 표와 같다.

  A B C
클릭 14 8 12
클릭하지 않음 986 992 988

- 재표본추출을 통해, 클릭률이 우연히 발생할 수 있는 것보다 유의미한 정도로 큰 것인지를 검정할 수 있다.
- 이 검정을 하려면 클릭의 '기대' 분포가 필요하며, 이 경우 각 헤드라인 모두가 동일한 클릭률을 갖는다는 가정이 귀무가설에 속한다. 전체 클릭률은 34/3000이다. 따라서 3개의 헤드라인이 모두 같은 클릭률을 갖는다고 가정했을 때의 기댓값은 클릭 11.33, 클릭하지 않음 988.67이다.
- 피어슨 잔차는 다음과 같이 정의된다.

R은 실제 횟수와 기대한 횟수 사이의 차이를 나타낸다. 카이제곱통계량은 바로 이 피어슨 잔차들의 제곱합이다.
- 재표본추출 알고리즘의 검정 프로세스는 아래와 같다
① 34개의 1(클릭)과 2966개의 0(클릭하지 않음)이 들어 있는 상자를 만든다.
② 상자의 내용물을 잘 섞은 다음, 1000개의 표본을 세 번씩 가져와서 각각의 클릭수를 계산한다.
③ 이렇게 얻은 횟수와 기대한 횟수의 차이를 제곱해서 합산한다.
④ 2~3단계를 1000번 반복한다
재표본추출을 통해 얻은 편차의 제곱합이 얼마나 자주 관측값을 초과하는가? 이것이 바로 p값이다.

2) 통계적 이론
-  점근적 통계 이론은 카이제곱통계량의 분포가 카이제곱분포로 근사화될 수 있음을 보여준다. 적절한 표준 카이제곱분포는 자유도에 의해 결정된다.
자유도 = (r-1) * (c-1) (r: 행, c: 열)
- 카이제곱분포는 일반적으로 한쪽으로 기울어져 있고 오른쪽으로 긴 꼬리가 있다

3) 피셔의 정확검정
- 대부분의 통계 소프트웨어는 발생 가능한 모든 조합(순열)을 실제로 열거하고, 빈도를 집계하고, 관찰된 결과가 얼마나 극단적으로 발생할 수 있는지를 정확하게 결정하는 절차를 제공한다. 이를 '피셔의 정확검정'이라고 한다. 
- 일부 값이 매우 낮고 다른 값이 상대적으로 매우 높은 경우 (예를 들면 전환율 계산에서 분모) 모든 가능한 순열을 계산하기는 어렵기 때문에 완전한 정확검정 대신 순열검정을 수행해야 할 수 있다.

4) 데이터 과학과의 관련성
- 데이터 과학에서 카이제곱검정, 특히 피셔의 정확검정을 활용하는 대표적인 예로, 웹 실험에 적합한 표본크기를 판별하는 일을 들 수 있다. 이러한 실험은 종종 클릭률이 매우 낮기 때문에 수천 번의 실험에도 불구하고 집계 비율이 너무 낮아 실험을 통해 확실한 결론을 내리기 어렵다. 이런 경우, 검정력이나 표본크기를 계산하는 데 유용할 수 있다.

5. 멀티암드 밴딧 알고리즘 (multi-armed bandit, MAB)
- 실험설계에 대한 전통적인 통계적 접근 방식보다 명시적인 최적화와 좀 더 빠른 의사결정을 가능하게 하며, 특히 웹테스트를 위해 이를 사용한다.
- MAB는 실험 도중에 얻은 정보를 통합하고 수익이 낮은 것의 빈도를 줄이는 쪽으로 표본 추출 과정을 변경한다. 또한 두 가지 이상의 처리를 효과적으로 다룰 수 있다.
- 예를 들어 손잡이 A, B, C가 달려 있고 어떤 손잡이를 당기든 모두 같은 금액이 나올 수 있는 슬롯머신이 있다고 하자. 여기서 손잡이마다 다른 점은 승리할 확률이다. 총 50번의 시도 중 손잡이 A는 10번, B는 2번, C는 4번 상금이 나왔다고 한다면 손잡이 A가 가장 좋아보일 것이다. 그렇다고 손잡이 A만 계속 당기기엔 사실 B나 C가 더 좋은 손잡이라는 사실을 발견하는 걸 놓칠 수도 있고, 그렇다고 모든 손잡이를 똑같이 잡아당기자니 어쩔 수 없이 수익이 낮을 것으로 예상되는 행위를 자주 시도하게 된다. 이때 밴딧 알고리즘은 하이브리드 접근 방식을 취한다. A에서 계속해서 성과를 거둔다면 B와 C 당길 기회를 A에게 더 줘서 A를 더 자주 잡아당긴다. 반면, C가 더 좋아지고 A가 더 나빠지기 시작하면 A로 가던 기회를 C에게 돌린다.
- 이를 웹 테스트에 적용하는 방법을 생각해보면 슬롯머신 손잡이 대신 웹사이트의 제안, 헤드라인, 색상 등을 테스트할 수 있다. 처음엔 여러 제안이 무작위로 균등하게 표시된다. 그러다 한 제안이 다른 제안보다 더 좋은 결과를 내기 시작하면 더 자주 표시될 수 있게 한다. 그렇다면 잡아당기는 비율을 수정하는 알고리즘을 위한 파라미터는 무엇이 되어야 할까? 잡아당기는 비율을 언제 어떻게 수정해야 할까?
- 엡실론-그리디 알고리즘이라는 A/B검정을 위한 간단한 알고리즘은 아래와 같다
① 0부터 1사이의 난수 생성
② 이 숫자가 0과 엡실론(0과 1 사이의 값으로 일반적으로 아주 작음) 사이에 존재하면 50/50 확률로 동전 뒤집기를 시행
③ 그 결과 동전이 앞면이면 제안 A, 뒷면이면 제안 B 표시
④ 숫자가 엡실론 보다 크면 지금까지 가장 좋은 결과를 보인 제안을 표시
- 여기서 좀 더 복잡한 알고리즘은 '톰슨의 샘플링'(Thompson's sampling)을 사용하는 방법이다. 여기서는 각 단계마다 표본을 추출(즉, 손잡이를 당김)하여 최고의 손잡이를 선택할 확률을 최대화한다. 톰슨 샘플링은 베이지언 방식을 사용한다. 즉 베타 분포(베이지언 문제에서 사전 정보를 지정하는 일반적인 메커니즘)를 사용하여 수익의 일부 사전 분포를 가정한다. 각 추출 정보가 누적되면서 정보가 업데이트 되기 때문에 다음번에 최고 손잡이를 선택할 확률을 효과적으로 최적화할 수 있다.

6. 검정력과 표본크기
- 표본크기에 대한 고려는 '가설검정이 실제로 처리 A와 B의 차이를 밝혀낼 수 있을까?'라는 질문과 바로 연결된다. 
- 검정력이란 바로 특정 표본 조건(크기와 변이)에서 특정한 효과 크기를 알아낼 수 있는 확률을 의미한다. 
- 예를 들어 25타석에서 3할 3푼 타자와 2할 타자를 구분할 수 있을 확률이 0.75라고 (가정해서) 말할 수 있다. 여기서 효과크기란 1할 3푼의 타율 차이를 의미한다. '알아낸다'는 것은 가설검정을 통해 차이가 없을 것이라는 영가설을 기각하고 실제 효과가 있다고 결론을 내리는 것을 의미한다. 다시 말해 두 타자를 대상으로 한 25타석 실험은 0.13의 효과 크기에 대해 0.75 혹은 75%의 (가설 상의) 검정력을 가진다고 볼 수 있다.
- 직관적인 검정력 추정 방법은 아래와 같다
① 최대한 (사전 정보를 이용하여) 결과 데이터가 비슷하게 나올 수 있는 가상의 데이터를 생각해본다. (ex: 웹 페이지 방문 시간을 관측한 자료가 담겨 있는 상자를 생각)
② 첫 표본에서 원하는 효과 크기를 더해서 두 번째 표본을 만든다. (ex: 각 초기 방문시간에 25초를 더한 두 번째 상자)
③ 각 상자에서 크기 n인 부트스트랩 표본을 추출한다.
④ 두 부트스트랩 표본에 대해 순열 가설검정(혹은 수식 기반의 가설검정)을 진행하고 여기에 통계적으로 유의미한 차이가 있는지 기록한다.
⑤ 3~4단계를 여러 번 반복 후, 얼마나 자주 유의미한 차이가 발견되는지 알아본다. 이 확률이 바로 검정력 추정치다.

1) 표본크기
- 검정력 계산의 주된 용도는 표본크기가 어느 정도 필요한가를 추정하는 것이다
- 예를 들어 기존 광고와 새로운 광고를 비교하기 위해 클릭률을 조사한다고 가정하자. 50% 정도의 큰 차이에만 관심이 있다면 상대적으로 적은 수의 표본으로도 목표를 이룰 수 있을 것이다. 그러나 그보다 훨씬 작은 차이에도 관심이 있다면 훨씬 큰 표본이 필요하다. 이러한 목표, 즉 '효과크기'가 표본크기를 좌우한다.
- 정리하자면 검정력 혹은 필요한 표본크기의 계산과 관련한 중요한 요소들은 표본크기, 탐지하고자 하는 효과크기, 가설검정을 위한 유의수준, 검정력 이렇게 4가지이다. 이 중 3가지를 정하면 나머지 하나를 알 수 있다. 가장 일반적으로 표본크기를 알고 싶은 경우가 많다. 이때 나머지 3가지 요소를 정해야 한다.

검정력 참고: https://losskatsu.github.io/statistics/alpha-beta-test/#%EA%B2%80%EC%A0%95%EB%A0%A5