Section1 Sprint2 Note 121 T-test와 통계기본
기본적인 통계치, 다양한 Sampling 방법, T-test에 대해 배웠다. 통계를 처음 배우다보니 헷갈리는 부분이 있었지만, 스스로 예시를 들어보며 이해하는 방법이 공부하는데에 도움이 많이 될 것 같다.
기술 통계치(Descriptive Statistics)
- 데이터를 설명하고, 기술(쓰다, Technology아님) 하는 통계치
- 주어진 집단을 기술 하는데에만 관심이 있고, 이 결과로 다른 집단의 특성을 추정하는 데에는 관심이 없다.
- Box plot을 그림으로 확인할 수 있음 or descibe 함수 ex) mean(평균), standard deviation(표준편차, 분산에 루트를 씌운것), variance(실제값-평균의 제곱의 합. 그러니까 평균으로부터 얼마나 떨어져 있는가), min, max, median,1Q, 3Q 등
추리 통계치(Inferential Statistics
- 표본의 자료를 토대로 가설을 검증하거나 앞으로의 사상을 확률적으로 예측하기 위한 통계치
- Population, Parameter(모집단: 전체 데이터), Sample(표본, 모집단을 전체 다 측정할 수 없으니까 사용하는 샘플)
Effective Sampling
- Sampling(모집단에서 표본을 추출하는 것)에는 여러가지 방법들이 있다.
1) Simple random sampling: 모집단에서 그냥 랜덤하게 무지성으로 샘플링
2) Systematic sampling: 샘플링할 때 규칙을 가지고 샘플링 ex) 5의 배수만 샘플링
3) Stratified random sampling: 모집단을 여러 그룹으로 나누고 그 그룹별로 무작위로 뽑아서 합치는 샘플링. 전체 그룹에서 골고루
4) Cluster sampling: 모집단을 여러 그룹으로 나누고, 특정 그룹에서만 무작위로 뽑는 샘플링. 한 놈만 패는 것.
무지성으로 뽑는 샘플링은 np.random.choice함수 사용
import numpy as np
np.random.seed(123)
sample = np.random.choice('이곳에는 list or 일반 숫자 등등이 들어갈 수 있음', size = 10)
binomial = np.random.binomial(n=1, p = 0.5, size = 10) # 1이 나올 확률이 0.5이고 이걸 10번 반복
가설 검정
- 주어진 상황에 대해서 내가 세운 가설이 맞는지 아닌지를 판단하는 과정
- 모집단에서 추출한 표본의 통계치를 사용해서 통계적으로 유의한지 아닌지를 판정.
- 표본의 사이즈가 커질수록 점점 실제값(모집단)과 유사해질테니까 신뢰성이 높아짐.
표본 평균의 표준 오차
분자에 있는 s는 표본의 표준편차, n은 표본의 수
따라서 표본의 수가 더욱 많아질수록, 추측은 더 정확해진다. 높은 신뢰도로 모집단을 더 잘 예측할 수 있게함.
Student T-test
- 정규성: 모집단이 정규 분포를 따른다.
- 독립성: 표본의 그룹이 독립적이어야 한다. 서로 영향을 미치면 안 됨.
- 등분산성: 표본 그룹의 분산이 같아야함(유사해야함). 내가 원하는 집단의 평균의 차이가 통계적으로 유의미한지 보는 것. p-value가 0.05보다 작으면 이 평균의 차이가 통계적으로 유의미 한 것.
이제 왜 다른지 찾으면 됨 -> 이걸 찾으면 모델링에 도움이 되겠지.
T-test Process
1) 귀무가설(Null Hypothesis, H0 ) 설정.
ex) one-sample(이 표본은 평균이 ~일 것이다.) two-sample(두 표본의 평균이 같을 것이다)
2) 대립 가설(Alternative Hypothesis H1 ) 설정. 귀무가설과 반대
ex) one-sample(이 표본의 평균은 ~이 아닐 것이다.), two-sample(두 표본의 평균은 다를 것이다.)
3) 신뢰도 설정(Confidence level)
모수가(모집단의 특성 = 평균, 분산, 표준편차 등) 신뢰 구간 안에 있을 확률.(95%,99%,90%)
- 신뢰도 95% = 모수가 신뢰 구간 안에 있을 확률 95%, 귀무가설이 틀렸지만 우연히 발생할 확률 5%
- 따라서 p-value가 5% 이하면, 귀무가설이 틀렸고 평균이 일치한 이유가 우연히 발생한 것임.
- p-value가 낮을수록 귀무가설이 틀릴 확률이 높다.
- 귀무가설이 틀렸지만 우연히 발생할 확률 5% = 귀무가설이 틀렸다.
p-value
p-value가 0.05 ~ 0.1 사이, 즉 기각은 아니지만 좀 애매하면 실험을 다시 하거나, 샘플링 다시, 기존의 경험을 토대로 결론을 내린다.
One sample t-test
1개의 sample의 평균이 특정값과 같은지 비교
p-value가 0.05보다 크면 귀무가설 기각실패니까 평균이 특정값과 같은 것, 작으면 평균이 다른것.
from scipy import stats
stats.ttest_1samp(여기에 리스트 넣음 or DF 변수, 예측할 평균).pvalue()
Two sample t-test
2개의 sample의 평균이 동일한지 비교
p-value가 0.05보다 크면 두 평균이 동일한것(아예 똑같지는 않아도 이 정도면 동일하다 할 수 있는것), 작으면 평균이 다른것.
stats.ttest_ind(리스트1 or 변수1, 리스트2 or 변수2)
stats.ttest_ind(tree3,tree4)
One-side test
평균이 특정값보다 큰지 비교 or 평균이 특정값보다 작은지 비교
아니면 평균이 특정값보다 크지 않은지 비교 or 평균이 특정값보다 작지 않은지 비교
큰지 비교 or 작은지 비교 아니면 크지 않은지 비교 or 작지 않은지 비교 -> One side(크다,작다,크지않다,작지않다) 이렇게 한 side만 비교
귀무가설: 평균이 특정값과 같다.
대립가설: 평균이 특정값보다 클 혹은 작을 것이다.
#예시
#two sample일 때 T-test의 귀무가설은 평균이 동일 하다이다.
#하지만 크고 작고는 평균이 동일하면 비교할 수 없다.
#대립가설을 선택해야만 col1의 평균이 col2의 평균보다 큰지, 작은지 알 수 있다.
#따라서 p value가 0.05보다 작을 때 비교하고자 하는 변수가 큰지 작은지 알 수 있다.
#0.05보다 크면 귀무가설 채택이니까 두 변수의 평균이 같다.
#0.05보다 작으면 두 변수가 크다 혹은 작다.
from scipy import stats
stats.ttest_ind(col1, col2, alternative = 'greater' or 'less')
Two-side test
평균이 특정값과 같은지 같지 않은지 비교
같다 or 같지않다니까 two side
Paired T-test
one-sample 이지만 시간적으로 다른 시점의 값을 비교
ex) 원래 수학 성적 평균이 60점이었는데 새로운 교육방식 도입 후 평균이 84점이면 이 새 교육방식의 효과를 알아보기 위해 Paired T-test 시행.
p-value가 0.05보다 작으면 이 교육방식의 효과가 있다는 것. 왜 효과가 있는지 찾으면 되겠지.
T-test 조건
Discussion
1.
T-test를 사용할 수 있는 상황에 대해 설명하고, 그 상황에서 어떻게 가설을 세우는지 T-test의 전체적인 예시를 하나 설명해주세요.
(아래 사항은 필수적으로 들어가야 합니다.)
어떠한 가설을 세웠는지
왜 이러한 가설을 세우게 되었는지
왜 T-test를 선택했는지
답변:
T-test 상황설명
상황: 세계 축구의 양대산맥은 메시와 호날두이다. 현재 이 둘은 팀을 이적한 후 다른 리그에서 뛰고 있다. 메시는 프랑스 리그에서, 호날두는 영국 리그에서 뛰고 있는데 이 둘은 세계 최고이기 때문에 예전만큼은 아니지만 아직도 좋은 폼을 유지하고 있다.
가설: 그들의 커리어를 놓고 보면, 공격포인트, 우승횟수, 수상경력 등에서 많은 차이가 있는 것은 아니다. (이게 좀 주관적이지만, 일단 예시니까..)
-> 귀무가설: (이적후) 메시와 호날두의 경기당 평균 공격포인트는 같을 것이다.
-> 대립가설: (이적후) 메시와 호날두의 경기당 평균 공격포인트는 같지 않을 것이다.
T-test 선택이유: Two sample, two side 조건에 만족하므로 T-test 검정이 적합할 것이라고 판단했다.
2.
보기의 상황을 읽고, A/B Test에 대해서 생각해 보세요. 💡 보기)
여러분은 그로스 해킹팀의 DA로 취직하였습니다.
만약 First Task로 유입률을 올릴 수 있는 방안을 생각해야 할 때,
AAARR 과정 중 어느 과정에서 어떠한 A/B Test를 시행하면 좋을까요?
정답은 없습니다. 자유롭게 대답해주세요.
(AAARR에 대해서 검색해 보시고 간단한 a/b test를 한번 설계해보세요.)
답변:
A/B Test
AARRR 과정
Acquisition: 어떻게 우리 서비스에 접하게 되었는지
Activation: 사용자가 처음 서비스에 접했을때 긍정적인 경험이 제공되었는지
Retention: 이후의 서비스를 다시 사용하는 정도는 얼마나 되는지
Revenue: 최종 목적으로 연결되고 있는지(구매,구독 등이 되겠지)
Referral: 사용자가 자발적으로 확산이나 공유를 하고 있는지
-> Retention 과정에서 사용자에게 쿠폰을 줌으로써 재방문율을 비교해본다. 먼저, 왜 사용자가 재방문 하지 않았는지에 대해 설문조사나 데이터를 통해 분석해본다. 이 분석을 기반으로 우리 서비스의 비싼 가격이 문제라면 Sale 이벤트나 쿠폰을 주는 방식으로 Test를 진행하고, 툴이 불편한 것이 문제였다면 UI/UX를 변형시켜 Test를 진행해본다. 이전 버전과 수정된 버전에서의 사용자의 재방문율을 비교해보면 현재 Retention 단계에서 발생하고 있는 문제를 찾을 수 있을 것으로 기대한다.
!이미지 넣어보자 이미지 넣으려면 ![] 뒤에 주소를 넣어야함. 근데 그냥 이미지 복사하면 자동으로 주소 입력하는 듯