이 글은 통계학을 공부하는 과정에서 왜 딥러닝에서 통계가 필요하고 어떤 개념들이 데이터 분석/딥러닝 실무에서 중점적으로 필요한지 개인적으로 정리하기 위한 목적으로 쓴 시리즈 글입니다.
(사실 데이터 분석을 실무를 경험했지만 딥러닝에서는 실무를 경험해보지 않았기 때문에 딥러닝 관점에서는 사실 공부하면서 중요하다고 생각한 개념들이라고 봐주시면 좋을 것 같습니다.)
나조차도 딥러닝 공부하겠다고 그동안 통계공부를 도전해 왔었는데 수학 문제집에서 “집합” 부분만 너덜너덜한 것처럼 항상 평균과 분산, t분포, 중심극한 정리가 공부하다가 이게 앞으로 내가 공부하는 과정에서 왜 필요한지에 대해서 의문을 가져왔는데 해답을 찾지 못해 항상 지지부진했었는데 다시 통계를 공부하기 시작한 시점에서 이를 정리해보려고 합니다.
앞서 1편에서 통계학의 정의 중에 하나로 "(수치로 표현할 수 있는) 나의 주장/선택이 옳다는 것을 검증하는 방법을 배울 수 있는 학문이라고 말한 적이 있다.
오늘은 통계에서 어떻게 이를 검증해가는지에 대해서 배워보려고 한다.
통계에서 검증하려는 대상은 무엇일까?
통계가 실용성이 높은 학문이라고 하는 이유는 "우리가 한 행동"이 실제로 영향을 끼쳤는지에 대해서 검증할 수 있다는 점에서이다.
이를 통계적으로 다시 정리해서 얘기하면, 우리가 한 행동이 영향을 줘서 기존의 분포에 영향을 줬다는 것을 검증하는 것이 앞으로 우리가 배울 가설 검정의 목적이다.
그렇다면 이를 어떻게 검증할 수 있을까?
스타트업에서의 개선을 예시로 들어보려고 한다. 우리는 네이버 쇼핑 팀의 팀원으로, 겨울을 맞아 겨울 의류의 매출을 올리려는 목표를 가지고 있다고 하자. 팀원들간의 아이데이션을 통해서 네이버 쇼핑 홈에 겨울 의류 할인 배너를 제공하는 기능을 배포했고 실제로 매출이 10% 올랐다고 하자.
우리는 정말 이게 우리의 배너 작업으로 인한 효과라고 볼 수 있을까? 갑자기 날씨가 추워져서, 겨울 의류 제품 전체 매출이 올라간 것은 아닐까? 다른 팀에서 추천 기능을 배포한 것은 아닐까? 이렇게 배너 기능의 영향이 아닐 가능성이 높다면 이를 검증하는게 너무 복잡하게 된다.
조금 관점을 바꿔보자. 우리의 배너 작업으로 인한 효과가 아니라고 가정하고, 실제 그런 매출이 우연하게 나올 확률이 매우 낮다는 것을 보이는 건 좀 더 쉽다. 왜냐하면 아무것도 안하던 시점의 매출 분포를 모평균으로 볼 수 있고, 그 매출로부터 얼마만큼 떨어져있는지를 살펴보면 되는 것이다. 드디어 우리가 배운 t분포, f분포, 정규분포 등등이 빛을 발하는 시기이다.
통계적으로 다시 풀어서 얘기하면, 우리가 한 행동(배너 기능 배포)으로 인해 기존의 분포(매출 분포의 모집단 분포)가 바뀌었다면, 기존의 분포를 기준으로 해당 표본(매출)이 발생할 확률(분포의 통계량)이 매우 낮게 나올 것이고, 이 값을 기준으로 우리는 우리의 배너 작업으로 인한 효과가 있었다고 검증할 수 있을 것이다.
용어를 좀 더 정리해보면, 우리의 배너 작업으로 인한 효과가 아니다.와 같은 가정을 "귀무가설"이라고 하며, 실제로 우리가 검증하려고 하는 가설을 "대립가설"(실제로 매출에 효과가 있다.)이라고 한다.
우리는 적절한 검정(t검정, f검정 등)을 활용해서 발생할 확률이 낮게 나오는지 확인하고(p-value나 신뢰구간을 사용한다.) 이게 매우 차이가 나면 귀무가설이 틀렸다는 것을 증명해서 대립가설을 입증하는 방식이다.
잠깐 용어 정리... 표본분포와 모분포
통계책을 보다보면 모집단, 표본집단부터 시작해서 모분산, 표본분산 등 굉장히 헷갈리는 단어가 등장하는데, 실제로 우리가 실생활에서 모집단의 모수를 직접적으로 알 수 있거나, 알아야하는 경우는 거의 없다.
대한민국 국민 전체가 모집단이고, 특정 회사가 표본 집단이라고 예를 들어보면 대한민국 국민 전체의 정확한 키를 우리는 절대 알 수 없다. 또한 어떤 대통령을 선호하는지 확실하게 알 수 없다.(직접 다 물어볼 수 없고, 실제로 솔직하게 답을 할 확률도 없기 때문에)
그래서 대부분 우리가 마주치는 데이터는 모집단의 성질과 유사한(유사하다고 가정한) 표본들이 추출된 것으로 봐야한다. 이를 활용해 모집단의 모수를 추정한다.
가설검정의 사례) A/B 테스트란?
스타트업이나 IT기업에서 일하는 누구라면 정말 한번쯤은 들어봤을 A/B 테스트를 가설 검정의 사례로 들면서 이 포스팅을 마무리하려고 한다.
사실 통계학 책에서 예제로 나오는 인구, 키, 연령 등의 차이를 검정하는 사례는 사실 실무에서는 마주치게 되는 경우가 거의 없다. 그래서 좀 다른 예시를 가져와봤다.
앞서 네이버 쇼핑의 배너의 매출 증가 효과에 대한 검정을 다시 가져와보자.
실제로 내가 위에서 든 예시는 잘못된 통계검정 방식이라고 볼 수 있다. 그 이유는 "우리가 한 행동(배너 기능 배포)으로 인해 기존의 분포(매출 분포의 모집단 분포)가 바뀌었다면," 이라는 전제가 틀릴 가능성이 있기 때문이다.
실제로 기존 분포 대비 통계량이 높게 나온다고 하더라도 아까 매출이 증가한 원인에 다른 원인이 있을 수 있다고 예시를 들었는데 그 원인이 분포에 영향을 주었다고 볼 수는 없을까? 라는 반문이 나올 수 있다.
이처럼 현실세계에서는 우리가 알아차리지 못할 여러 원인들이 있기 때문에 명확하게 우리가 한 action이 영향을 준다는 것을 파악하기가 어렵다.
이를 해결하기 위해 우리는 A/B 테스트라는 일종의 실험방법론이 나오게 된다.
우리가 알아차리지 못할 여러 원인들을 우리가 알아내기 어렵다면, 그 원인들이 있다는 것을 인정하고, 우리 서비스의 유저들을 반반을 나누어 반은 기능을 미배포하고, 반은 배너를 배포해서 두 집단간의 평균 차이를 비교한다면(t분포를 쓴다.) 설령 여러 원인들이 있다고 하더라도 그 원인들은 두 집단 모두에게 적용되기 때문에 오로지 "배너 배포"만의 효과를 측정하는 방식이다.
일반적으로 대부분의 스타트업에서는 단순히 기능을 바로 배포하기 보다는 이러한 기능이 실제로 우리가 목표로 하는 지표를 올리는데 얼마만큼 기여하는지를 "측정"하기 위해 A/B 테스트를 사용한다.
'데이터 분석, 통계 > 통계학 개념 정리' 카테고리의 다른 글
딥러닝/데이터 분석을 위한 통계 - 6편) 회귀분석 (1) | 2023.10.17 |
---|---|
딥러닝/데이터 분석을 위한 통계 - 4편) 카이제곱분포, t분포, F분포, ANOVA (1) | 2023.10.17 |
딥러닝/데이터 분석을 위한 통계 - 3편) 정규분포와 중심극한정리 (0) | 2023.10.16 |
딥러닝/데이터 분석을 위한 통계 - 2편) 대푯값, EDA (0) | 2023.10.14 |
딥러닝/데이터 분석을 위한 통계 - 1편) 확률변수, 확률분포 (1) | 2023.10.14 |