테스트 설계 시 유의해야 하는 표본크기와 검정력
기존에 사용하던 광고소재 A와 새로운 소재 B의 성과를 비교하기 위해 클릭률을 조사한다고 가정하자. 이 조사를 위해서는 얼마나 많은 클릭수를 수집해야 할까?
두 소재의 성과 차이가 50% 이상 나는지 확인하는 게 목표라면, 상대적으로 적은 수의 표본으로도 확인할 수 있을 것이다. 하지만 1%의 차이도 중요하다고 한다면 훨씬 큰 표본이 필요하다. 따라서 "새로운 소재가 기존 소재에 비해 얼마큼 더 효과적이어야 하는지"에 대한 기준을 먼저 설정해야 한다. 이 기준, 즉 '효과크기'가 가설 검정에 필요한 '표본크기'를 결정한다.
검정력이란 특정 표본크기에서 특정한 효과크기를 알아낼 수 있는 확률을 의미한다. 예를 들어 10,000명에게 광고 A와 B를 노출시켰을 때 광고 A의 클릭률이 1.1이고 광고 B의 클릭률은 그보다 약 10% 높은 1.2였다고 하자. 이 때 10,000 명이라는 표본크기가 10%의 클릭률 차이, 즉 효과크기를 어느정도의 확률로 보장할까? 만약 이 확률이 75%라고 하면 두 개의 광고소재를 대상으로 한 10,000명의 클릭률 비교 실험은 10%의 효과크기에 대해 75%의 검정력을 갖는다고 할 수 있는 것이다.
검정력과 관련된 요소는 다음 4가지가 있다.
- 표본크기
- 탐지하고자 하는 효과크기
- 가설검정을 위한 유의수준
- 검정력
이 중 3가지를 정하면 나머지 하나를 알 수 있다. 보통은 이 중 표본크기를 알고자 하는 경우가 가장 많을 것이다. 이 때는 나머지 3가지 요소를 정해야 한다.
statsmodel 패키지를 이용한 검정력 계산
statsmodels
패키지는 검정력 계산을 위한 여러가지 메서드를 제공한다. 효과크기를 계산할 때는 proportion_effectsize
를 사용하고, 표본크기를 구하기 위해서는 TTestIndPower
를 사용하면 된다.
import statsmodels.api as sm
effect_size = sm.stats.proportion_effectsize(prop1=0.0121, prop2=0.011) # 두 비율 간의 차이, 즉 효과크기를 계산
analysis = sm.stats.TTestIndPower()
# 필요한 표본크기 계산
result = analysis.solve_power(effect_size=effect_size, # 효과 크기
alpha=0.05, # 검정을 수행할 유의수준
power=0.8, # 검정력
alternative='larger')
위 코드는 1.1 클릭률과 1.21 클릭률 사이의 차이가 80%의 검정력을 갖기 위해 조사해야 할 표본크기를 계산하는 코드이다. result 값을 출력해보면 다음과 같다. 즉 실험을 위해 11만6천명이 필요하다는 것이다.
116602.39258799309
prop1
과 prop2
간의 비율 차이를 크게 하면 효과크기가 커져 result 값이 작아진다. prop1
값을 0.016으로 바꾸면 필요한 표본크기는 약 6500명으로 줄어든다.
즉, 검정력과 표본크기는 대체로 반비례 관계에 있다고 볼 수 있다.
Author And Source
이 문제에 관하여(테스트 설계 시 유의해야 하는 표본크기와 검정력), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jyj950309/테스트-설계-시-유의해야-하는-표본크기와-검정력저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)