무작위 대조군 실험(Randomized Controlled Trials)
을 주로 웹 서비스 등의 분야에서 A/B 테스팅
이라는 명칭을 사용하는 것목표 지표
(ex: 전환율)를 측정예시 : 당근마켓 팀 - 키워드 알림
임상 경험
에 근거한 전문가의 의견 등
근거 기반 의학
에서 가장 강한, 이상적인 근거로 보는 것이 바로Level I: 무작위 대조군 실험에서 얻어진 근거
이다.A/B 테스팅
같은 것!!!!근거 기반 의학
이라는 명칭이 말하듯 여전히임상 경험
에 근거한 것도 있다.
선진국의 잘못된 개발도사국 지원 예시
- 플레이 펌프 : 깨끗한 물이 나오게 만든 아이들을 위한 놀이기구
작은 실험
을 자주
, 많이
해야 한다서비스와 시장은 계속 바뀌기 때문에 실험을 자주 해야 한다.
올해
와내년
이 달라질 수 있는 것. 그렇기 때문에작은 실험
을 해야 한닷!
그러나 아무도 사지 않는다...
MVP
를 만들어 테스트한다즉, MVP는
아이디어의 핵심을 빨리 검증해보는 것!!
- 다이슨 진공청소기가 아이디어부터 첫 시제품이 나올 때까지 2시간이 걸렸다는 유명한 일화가 있다.
- 청소기가 이런 식으로 생겼으면 좋지 않을까? 라는 생각에 자신의 집에 있는 진공청소기와 아이들의 시리얼 박스를 사용해 청소기를 만들어 주변 사람들에게 사용해보라고 한 것)
- 사이트를 개발하는 데에 너무 많은 시간을 쓰지 말고 이메일이나 유튜브, 노션 등을 활용해 바로 바로 해보는 것! 역시
실행력
!!!!
Q. 실험할 때는 변수 통제가 중요, 실무에서는 리소스 절감을 위해 어느 정도 타협해서 진행할까?
A: Multi-Armed Bandit!리소스 통제
는 Multi-Armed Bandit의 아주 정교한 알고리즘으로 계산, 이 알고리즘으로 만든 솔루션을 사와서 실험을 걸면 알려준다.
집단 비교 통계
독립표본 t-검정
과 분산 분석
, 카이제곱 검정
을 확인해본다.
- 비교해야 하는
종속변수
가연속형(ex: 매출)
일때와범주형 (ex: 구매/비구매)
일 때 다르며,비교하는 집단의 수
가2개
일 때와2개 이상
일 때가 다름!
지난 시간에 했던 것은
하나의 평균
에 대한
- 평균의 신뢰 구간
- 평균에 대한 가설 검정
이번 시간은
두 개의 평균
을 가지고 같냐, 다르냐, 뭐가 크냐 등의
- 평균 차이의 신뢰구간
- 평균 차이에 대한 가설 검정
- 평균 차이(A평균 - B평균)
t-분포
를 이용해서 𝑋1−𝑋2의 신뢰구간
을 계산독립표본 t-검정
을 수행귀무가설 :
두 평균이 같다
는 말은 곧평균차이 = 0
이라는 말
귀무가설을 기각
한다는 것은두 집단의 평균이 다르다
는 것
pg.ttest(k3, 800)
: k3의 평균이 800인가?pg.ttest(k3, avante)
: k3의 평균과 avante의 평균이 같은가? (즉, 평균 차이 = 0
인가?표본에서는 K3가 Avante보다 평균 80만원이 더 비싸다
그러면 모집단에서도 그럴까?
- 귀무가설은 모집단에서는
평균차이 = 0
, 즉K3 평균 = Avante 평균
이라는 것이다.- p-value를 보니 0.05보다 작음 > 귀무가설 기각
- 신뢰구간으로 보면 더 확실하게 해석할 수 있다.
- K3 평균 - Avante 평균 = 8만원 ~ 152만원 (신뢰구간)
- 이 말은 모집단에서는 K3가 Avante보다 못해도 8만원, 많게는 152만원까지 비쌀 것 이다는 의미이다
- 어쨌든 K3는 아반테보다 비싸다고 결론 내릴 수 있다!
Q. 실제 t-검정은 언제 사용할까?
A. 비교 대상이 있는 모든 경우에 사용할 수 있다!
- 신약 개발 : 신약 (평균 5일) vs. 플라시보-가짜 약(평균 7일)
- 제품 : 신제품 (만족도 3.8) vs. 경쟁제품 (만족도 2.9)
유의수준(𝛼)
: 귀무가설이 참일 때 기각하는 1종 오류의 확률𝛽
: 귀무가설이 거짓일 때 기각하지 못하는 2종 오류의 확률검정력(1−𝛽)
: 귀무가설이 거짓일 때 이를 올바르게 기각할 확률0.8
이상을 요구(1) 대조군 데이터는 1, 1, 1 이고 실험군 데이터는 3, 3, 3 인 경우
= 100%
그러니까 에타제곱 1이라는 것은 어마어마한 것, 개인의 차이는 오로지 100% 집단에 의해 결정!
(2) 대조군 데이터는 1, 2, 3 이고 실험군 데이터도 1, 2, 3 인 경우
즉,
(3) 에타 제곱 = 1
(4) 에타 제곱 = 0
분산분석 했을 때 np2 값이 에타 제곱
- 0이면 영향이 없고 1이면 무한대로 영향이 있는 것
- 예를 들어 np2가 0.17 나왔다는 것은 치료효과(y)의 분산의 17%를 치료 방법이 설명한다.
- 이것은 어떤 사람은 치료 효과가 좋고, 어떤 사람은 나쁘고, 이런 차이가 있는데, 그 차이 중에 17% 정도는 치료 방법에 따른 것이라는 의미다!!!!! 오호!
- 주의!!! 개인의 점수의 17%라는 얘기가 아님!! 서로 다른 부분의 17%!
- 그래서 만약에 예
pg.ttest
를 사용하면 나온다예를 들어 IQ 검사에서 표준편차가 15다, A가 100이고, B는 115 일때 코헨즈d는 1이다. 코헨즈d가 1이면 상당히 많이 차이나는 것! 효과가 크다 적다의 절대적인 기준은 없고 위의 아이큐처럼 주관적으로 판단하는 것
세상에 절대적인 것은 없다!유의수준 0.05
또한 주관적으로 결정한 것. 코헨즈디
그렇지만 안 해도 나오기 때문에 그냥
pg.ttest
만 해도 된닷
집단 내 분산
에 비해 집단 간 분산
이 커질 것모든 집단들의 평균이 같다
는 귀무가설을 검정할 수 있음적어도 한 집단의 평균은 다르다
라는 대립가설을 채택두 집단은
ttest
와 똑같이 나오므로, 세 집단부터 분산분석을 사용한다.
anova
명령어를 사용한다pg.anova(dv='price', between='model', data=df, detailed=True)
dv
는 종속변수
로 여기에서는 가격을 비교한다!detailed=True
를 설정한다이거는 model이 2개 밖에 없기 때문에
T-검정
과 것과 p-value가 같다.
Q. 그런데 p-value의 값이 다르게 나왔다면?
A. 원래 T-test는 두 집단의 분산이 같아야 한다. 그래서 서로 분산이 다르면(별도의 가설검정을 통해) 자동으로 보정을 해준다. 데이터가 크면 보정을 한 것과 안 한 것의 차이가 크게 없다.
그런데 두 집단 t-test의 p-value와 anova의 p-value가 다르다면, t-test의 correction 속성에 변화를 준다.correction=False
하면 보정을 안한 결과를 출력해준다. (anova는 보정을 안한 결과를 출력한다)
이처럼 애매한 값은 보정을 하냐 안하냐에 따라 결과가 달라진다!
pg.ttest(k3, avante, correction=False) # p-val 0.082432 pg.ttest(k3, avante) # p-val 0.028187```
귀무가설 기각 못함
은 부서에 따른 차이가 없다
, 즉 부서에 따른 차이가 있다고 하긴 어렵다
임귀무가설 기각 = 다르다!
- t-test : 다르다 (2개만 비교하니까 하나라도 다르면 그냥 다른 것)
- anova : 적어도 하나는 다르다 (3개의 집단 비교하니까)
95% X 95% X 95% ≈ 86%
FWER
)은 14%Q. 같은 반에 몇 명이 있으면 생일이 겹치는 사람이 나올까?
A. 365명이 있으면 나올 것 같지만, 이보다 훨씬 적은 수가 있어도 나온다!
- 생일이 겹칠 확률 : 1/365
- 생일이 안 겹칠 확률 : 364 / 365
이걸 계속 곱하면 직관에 반하는 결과가 나온다!- 20명의 생일이 전부 다를 확률(한 번도 안 겹칠 확률)은 55%다. => 20명의 반 3~4개만 모여도 같은 생일이 있는 학생이 나온다!
개별분석은 조금 더 까다롭게 한다.
Tukey, Games Howell이 하는 일
1) 모든 조합에서 t-test를 자동으로 여러 번 반복 해준다
2) 많이 하다보면 어디선가 한번 틀릴 수 있음 -> 이걸 덜 틀리게 보정해준다(기준을 빡빡하게 잡으면 덜 틀리게 되어있지)
모든 집단의 분산이 같다~~~
집단간의 분산이 같다는 게 기본 가정으로 들어간다
pg.homoscedasticity
명령어 사용anova
명령어 사용anova
명령어 대신 welch_anova
를 사용함각 집단의 분산이 같은 경우
: Tukey HSDpg.pairwise_tukey
명령어 사용pg.pairwise_gameshowell
명령어 사용리마인드!
- 각 집단의 분산이 같은 경우 : Tukey HSD
- 각 집단의 분산이 다른 경우 : Games Howell 검정
아노바나 웰치 아노바를 꼭 해야하나?! 통계학자들은 유의수준에 집착한다! 그리고 집착할만한 이유가 있다!
범주형 변수
의 값을 나타내는 표hr.pivot_table
명령어 사용두 범주형 변수가 독립적이라는 귀무가설
을 검정H0
: 부서별 결혼 비율이 같다 (이걸 기각하면 -> 아래 다르다
가 나오는 것) H1
: 부서별 결혼 비율이 다르다expected
를 했을 때 들어있는 숫자들이 너무 작으면 안 된다는 말! stats
했을 때 첫 번째 줄을 카이제곱 검정
이라고 한다!! 첫 번째 줄만 보면 됨!!cramer
: 집단 간의 관계 - 상관계수와 비슷한 것쓰는 함수는 같지만, 이 둘은 다른 분석이다!
900
은 신뢰구간에 영향을 주는 숫자가 아니다!
신뢰구간은 가설과 상관없이 결정되는 값이다. 신뢰구간을 구하기 위해 필요한 것은신뢰수준
!신뢰수준
에 의해서만 달라진다!
각각의 값을 구하기 위해 공통적으로 필요한 것 : 평균, 표준편차, 데이터 개수
분산 분석은 분산의 차이를 비교하는 게 아니다
! 그리고 집단 별로 분산이 다르다고 보는 것도 아님! 이름에 속지 말것!
분산 분석 = 집단 간 분산 / 집단 내 분산
=> 이 비율을 보는 것(다른 집단끼리 차이) / (같은 집단이라도 성적이 다를 수 있음)
차이가 크다 작다는 무엇을 비교하느냐에 따라 다르다
절대적인 건 없다 기준에 따라 다르다!
기준을 잡은 게 여기서는 같은 집단이라도 성적이 다를 수 있음(집단 내 분산)
인 것이다.
한국, 일본, 미국 집단 간 차이 / (한국 사람 간의 입맛 차이)
분석은 기준이 있어야 한다.
중요한 것은 분산 분석은 분산을 분석하는 게 아니라
평균 차이를 분석
하는데, 그 과정에서 이 둘의 비율을 비교하기 때문에 이름이 분산 분석이다.
아주 인상적인 자소서를 쓰는 방법 : 깃헙 오픈 소스에 기여하기!
Q. 분산 분석은 언제 쓸까?
A. 평균을 비교할 때! (사실 평균을 비교하지 않는 게 있을까?)
- 서비스 제품을 만드는데 고객만족도의 평균을 비교하고 싶다
- A제품의 고객만족도
- B제품의 고객만족도
- C제품의 고객만족도
- 팀별 실적
- 1팀 평균 실적
- 2팀 평균 실적
- 3팀 평균 실적