지지플랏의 DataScience

(5) DSforS : Chap 3 통계적 실험과 유의성 검정 3.1 ~ 3.3. 본문

Data Science/데이터과학을 위한 통계

(5) DSforS : Chap 3 통계적 실험과 유의성 검정 3.1 ~ 3.3.

지지플랏 2024. 5. 22. 17:20
반응형

 

 

1. 목차

  • 3.1. A/B검정
  • 3.2. 가설검정
  • 3.3. 재표본 추출

 

2. 본문

본 단원에서는 통계석 실험에 대한 본격적인 설명을 시작하며 A/B 테스트시작한다. 일반적으로 실험이라함은 어떤 가설을 확인하거나 기각하기 위한 목표를 가지고 수행하는 방법을 말한다. 예컨데  약품A가 기존 약품보다 낫다 라는 가설을 세울 수도 있을 것이며, 가격A가 가격B보다 수익성이 높다 라는 가설을 세울 수 도 있을 것이다. 

 

3.1. A/B 테스트

A/B 테스트는 두가지 처리방법/제품/절차 중 어느 것이 더 우월하다는 것을 입증하기 위하여 실험군을 두 그룹으로 나누어서 진행하는 실험이다. 일반적으로 아무런 처리도 하지 않은 것을 대조군 처리한 그룹을 처리군(실험군)이라고한다.

  • 용어정리
    • 처리(treatment): 어떤 대상에게 주어지는 특별한 환경이나 조건(약, 가격, 제목)
    • 처리군(처리그룹, treatment group): 특정 처리에 노출된 대상들의 집단
    • 대조군(대조그룹, control group): 어떤 처리도 하지 않은 대상들의 집단
    • 임의화(랜덤화, randomization): 처리를 적용할 대상을 임의로 결정하는 과정
    • 대상(subject): 처리를 적용할 대상(유의어: 피 실험자)
    • 검정통계량(test statistics): 처리 효과를 측정하기 위한 지표

클릭률이라는 목적변수를 통해서 다음 예시를 들어보자.

  1. 목적 설정: 웹사이트의 클릭률을 높이는 것
  2. 두 가지 버전 만들기: 두 가지 다른 디자인이나 콘텐츠를 가진 웹페이지를 만든다. 예를 들어, A 버전은 파란색 버튼을 사용하고, B 버전은 빨간색 버튼을 사용하는 것
  3. 사용자 그룹 나누기: 웹사이트 방문자를 무작위로 두 그룹으로 나눈다. 한 그룹은 A 버전을 보고, 다른 그룹은 B 버전을 보게 할당
  4. 데이터 수집: 일정 기간 동안 각 버전의 클릭률을 측정. 예를 들어, A 버전은 1000명의 방문자 중 50명이 클릭, B 버전은 1000명의 방문자 중 70명이 클릭
    • 그룹 A: [1, 1, ..., 1, 0, 0, ..., 0] (1이 50개, 0이 950개
    • 그룹 B: [1, 1, ..., 1, 0, 0, ..., 0] (1이 70개, 0이 930개)
  5. t 검정 진행
import numpy as np
from scipy import stats

# 데이터
clicks_A = 50
visitors_A = 1000
clicks_B = 70
visitors_B = 1000

# 클릭률 계산
rate_A = clicks_A / visitors_A
rate_B = clicks_B / visitors_B

# 클릭 데이터를 배열로 만듦
data_A = np.array([1] * clicks_A + [0] * (visitors_A - clicks_A))
data_B = np.array([1] * clicks_B + [0] * (visitors_B - clicks_B))

# t-test 수행
t_stat, p_value = stats.ttest_ind(data_A, data_B)

t_stat, p_value
  • 가설
    • 귀무가설: 두 페이지의 클릭률은 같을 것이다.
    • 대립가설: 두 페이지의 클릭률은 다를 것이다.
  • 결과
    • t-통계량: -1.88
    • p-value: 0.0597

따라서 두 차이는 우연에 의한 것이라는 결론 

 

6. 카이제곱검정 진행

import numpy as np
from scipy import stats

# 데이터
clicks_A = 50
visitors_A = 1000
clicks_B = 70
visitors_B = 1000

# 관측값 테이블 생성
observed = np.array([[clicks_A, visitors_A - clicks_A],
                     [clicks_B, visitors_B - clicks_B]])

# 카이제곱 검정 수행
chi2_stat, p_value, dof, expected = stats.chi2_contingency(observed)

chi2_stat, p_value
  • 가설
    • 귀무가설: A버전과 B버전에는 클릭률의 차이가 없다.
    • 대립가설: A버전과 B버전에는 클릭률의 차이가 있다.
  • 결과
    • 카이제곱 통계량: 3.20
    • p-값: 0.074

이 역시 두페이지가 차이가 우연에 의한 것이라는 결론

 

위를 통해 비즈니스 임팩트를 알아보면 다음과 같다.

  1. A 버전의 매출:
    • 클릭 수: 50
    • 총 매출: 50 * 2,000원 = 100,000원
  2. B 버전의 매출:
    • 클릭 수: 70
    • 총 매출: 70 * 2,000원 = 140,000원
 

이미 우연임을 발견했기 때문에 4만원의 비즈니스 임팩트가 있다고는 애기하기 어렵다. 

3.2. 가설검정

가설검정 혹은 유의성 검정은 대부분 연구 논문에 등장하는 고정통계분석 방법으로 귀무가설, 대립가설이 그 요소이다. 귀무가설은 일반적으로 받아들여지는 사실이고 참이라고 믿는다. 반면 대립가설은 새로운 가설이다. 두 가설은 서로 배반사건으로 모든 가능성을 포함해야한다.  

3.3. 재표본 추출

재표본 추출은 랜덤한 변동성을 알아보자는 목표를 가지고 관찰된 데이터값에서 표본을 반복적으로 추출하는 것. Chap2에서 순열검정과 부트스트랩에 대해서 다룬 적 있음

https://snowgot.tistory.com/entry/DSforS-Chap-2-%ED%83%90%EC%83%89%EC%A0%81-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D-24-28

 

DSforS : Chap 2 탐색적 데이터분석 2.4 ~ 2.8

1. 목차2.4. 부트스트랩2.5. 신뢰구간2.6. 정규분포2.7. 긴꼬리 분포2.8. 스튜던트 t 분포모수, 통계량을 넘어가서 표본샘플링과 신뢰구간, 분포 등에 대해서 알려주는 단원입니다.  2. 본문2.4. 부트

snowgot.tistory.com

 

순열검정에 대한 tips데이터 예시는 다음 블로그참조

https://kime2pan.tistory.com/178

 

[통계학습] 통계적실험과 유의검정(1)

범위: 3.1 A/B 검정 ~ 3.3 재표본추출 3.1 A/B 검정 1) 가설을 세운다2) 실험을 설계한다3) 데이터를 수집한다4) 추론 및 결론을 도출한다 두가지 처리방법, 제품, 절차 중 어느쪽이 다른 쪽보다 더 우

kime2pan.tistory.com

 

반응형