서론
MLOps를 공부하면서 우연히 빅데이터 분석 프로젝트 T/F팀에 소속되어 기획부터 배포까지 경험할 수 있게 되는 기회가 생겼다.
그런데, 문제정의를 하는 단계에서 부터 먹먹함을 가지고 있었다. '이거 제대로 하고 있는거 맞아?', '타당성 충분한가?', '이걸로 설득시킬 수 있어?' 이런 자문자답이 불가능하여 통계학을 놓으면 안되겠다는 생각을 하게 되었고, '이렇게 쉬운 통계학' 이라는 책을 시작으로 공부하기로 하였다.
공부방법은 간단하다. 개인적으로 책의 내용 + 인터넷 서칭하며 공부하고 공부한 내용을 백지에 게시글에 다시 작성하는식으로 검증하는 방식이다.
그럼 시작해보도록 하겠다.
본론
먼저 통계학을 시작하기 전에 통계학의 '맵'을 그리려고한다.
통계학은 대표적으로 4가지로 설명할 수 있다.
1) 기술 통계학
2) 다변량 분석
3) 추측 통계학
4) 베이즈 통계학
이다. 물론 응용 통계학(보험통계학, 의학통계학 등)쪽도 있는데 이부분은 다루지 않도록 하겠다.
각각에 대해서 overview 형태로 쭉 훑고 깊게 들어가는것이 좋다고 생각한다.
1) 기술 통계학(Descriptive Statistics)
기술통계학의 기본은
의사결정 하기 위해서 많은 데이터 중에서 대표하는 값을 찾자!
에서 시작된다고 생각한다. 예를 들어서 1000여명의 영업팀이 이번 한달 야근 얼마나 했나? 를 알아보고자 할때 20, 85, 17, 1, 10...시간으로 데이터가 있다고하자 이런 엄청나게 많은 데이터로는 어떠한 인사이트나 추이를 파악할 수 없다.
이를 계산하기 위해서 나온 개념으로 '대푯값' 이 있다.
이 대표값에는 일반적으로 3가지가 있다.
- 평균
- 중앙값
- 최빈값
먼저 평균같은 경우에는 (전체 데이터의 합)/(데이터의 수) 를 통해서 구할 수 있다.
이를 통해서 1000여명의 영업팀의 야근시간이 이번달에은 평균 40시간, 저번달에는 평균 60으로 지난달에는 일이 많았구나 식으로 알아볼 수 있는 것이다.
중앙값은 전체 데이터를 오름차순으로 정렬했을때 가운데가 되는 값을 의미한다.
최빈값은 전체 데이터에서 같은 값을 가지는 수를 계산해보았을때 가장 많은 빈도수를 가진 값을 의미한다.
그러나 이에 맹점을 가지고 있는것이 있으니, 가령 영업팀의 평균야근시간이 저번달보다 20시간이 감소했다 한들, 이상하게 지난달보다 오히려 일부 직원들의 야근시간이 증가했다고 해보자. 이러한 점에 있어서 나온 개념이 바로 분산(dispersion)다.
데이터의 분포도를 보기 위해서는 대표적으로 3가지가 있다
- 표준편차
- 사분위수
- 범위
먼저, 표준편차라 함은 평균과 얼마만큼 떨어져 있는 계산 값이다.
일반적으로 편차(Variance) 개념으로 사용되는값이 시그마제곱 = (각 데이터와 평균과의 차이의 제곱) / (데이터의 수)로 분포를 계산할 수 있고,
여기서 표준편차(Standard deviation)은 시그마라고 불리며 편차를 루트씌운 값과 같다. 이 값을 통해서 데이터가 평균과 얼마나 떨어져 있는지 분포도를 계산할 수 있따.
두번째로 사분위수는 전체 데이터가 있으면, 그 데이터의 25%(1분위수), 50%(2분위수=중앙값), 75%(3분위수)에 해당하는 값을 계산하는것이다.
(3) 범위는 최대값과 최소값을 계산하는것이다.
일반적으로 (2)과 (3)을 묶어서 박스플롯, 수염플롯이라는 의미로 같이 시각화하는데 사용하곤 한다.
2) 추측 통계학(Inferential Statistics)
다변량 분석에 들어가기 전에 추측 통계학부터 보도록 하겠다.
추측 통계학의 기본은
전체 데이터(모집단)를 수집할 수 없을때, 일부 데이터(표본)를 수집하여 전체 데이터의 성질을 추측하겠다.
에서 시작된다고 볼 수 잇다. 전체 데이터를 수집할 수 없을때에는 표본을 수집하여 기술 통계학에서 썻던것처럼 대푯값을 쓴다면, 새로운 데이터가 축적될때마다, 혹은 새로운 표본을 수집할때마다 대푯값이 달라질 수 있다. 이에 대한 고민을 해결하고자. 나온개념이 추측 통계학이다.
예를 들어 제약회사에서 신약을 개발하였다고 하자, 이 약이 효능이 있는지 검증을 해야할것이다. 이럴떄 추측 통계학은 2가지 순서로 진행된다.
- 가설 설정(통계적 추정)
- 가설 증명(가설 검정)
가설 설정(통계적 추정)
제약 직원이 '이 신약을 효과가 있을거야!' 라고 가설A를 세웠다고 해보자.
이를 증명하기위해서 가설A의 옳고 그름을 판단하기에는 매우 어렵다. 반면, 추측 통계학을 이용한다고 하면, 가설A를 역으로 '이 신약을 써도 효과가 없을거야!'라고 가설 B를 세워서 가설B가 틀렸다!라고 것을 증명함으로써 간접적으로 증명시킬수 있다.
여기서 통계학 용어를 잠깐 설명하자면, '이 신약은 효과가 있을꺼야!'라고한 가설 A를 대립가설 이라고 하고, 이 신약을 써도 효과가 없을거야!'라고한 가설B를 귀무가설(null-hypothesis) 이라고 한다.
가설 검정
가설 증명한다는 것은 말그대로 귀무가설을 기각(틀렸다!) 시킨다는 의미이다. 그럼 어떻게 기각시킬까?
이떄는 정규분포의 개념을 이용한다.
전체데이터의 분포를 정규분포 형태로 나타낼때는 젤라뽀를 눕힌 모양으로 나타낸다. 가장 가운데에는 평균값. 그리고 평균값을 기준으로 값이 좌/우로 분포되어있는 형태를 띌것이다. 여기서 가설B인 귀무가설을 기각시킬때에는 젤라뽀의 가장 외곽 부분에 포함되면 기각!이라고 말하고, 가설B가 틀렸으니, 가설 A는 옳을 가능성이 높다 라고 판단할 수 있는것이다.
여기서 가장 외곽 부분이 평균과 얼마나 떨어져 있냐에 따라서 3가지 룰이 있는데,
- 평균 +- 1 * 표준편차 = 68.3%
- 평균 +- 2 * 표준편차 = 95.4%
- 평균 +- 3 * 표준편차 = 99.7%
순으로 계산하곤한다. 여기서 기각되는 조건에 따라 p value < 0.05 라는 의미를 쓰곤하는데 왼쪽에 쓴 저 의미는 99.5%의 신뢰도를 가진다고 말한다.
+) 정규분포가 다 통하나?
모든 데이터들이 정규분포를 띄는것이 아니다.
i) 지수분포
예를들어 '회사의 상품별 매출 동향' 같은 주제의 데이터는 정규분포가 아닌 '지수분포'를 띌것이다. 왜냐하면, x축이 상품들이고 y축이 매출이라 하고 가장 잘팔리는 상품군으로 나열되었을때, 지수함수 형태를 띄기 때문이다.
이처럼 잘 안팔리는 상품군은 '롱테일(long-tail)'이라고 불리며 향후 AI 서비스 적용시 주의해야할 사항으로 나오는 개념이기도 하다.
ii) 균등분포
예를들어16까지 있는 주사위를 돌려서 어떤 값이 나오는지 데이터를 쌓았다고 생각해보자.6까지 비슷한 확률을 가지므로 균등한 모양의 그래프가 나올것이다.
이를 그래프로 나타내면 1
3) 다변량 분석
2개 이상의 변량(변수)를 다루어서 '예측'을 하자!
라는 개념이다. 예를 들어 한 초등학교 학급의 키와 몸무게 데이터를 모아서, x축을 키, y축을 몸무게라고 하여 분포도를 그려보았을때, 키가 증가할수록 몸무게 또한 증가하는 추세를 보임을 알 수 있었고 이를 직선그래프로 표현한다고 하자. 이처럼 표현하면, 어떤 학생이 키가 00이라고 했을때 이 직선그래프를 토대로 몸무게를 예측할 수 있다. 이 예는 선형 회귀(linear regression)의 한 예시 인데, 이처럼 2개 이상의 변량을 통해서 예측을 하는데 초점이 맞춰진 통계학을 의미한다.
단 여기서도 조심해야할 것이 있다.
가령 학교 전체 학생의 발사이즈와 해당 학생의 초등 수학 올림피아드 성적과 비례 관계를 형성하는 데이터가 생겼다고 해보자. 이는 사실상 초등학교 학년이 올라가면서 생김에 따라 생기는 관계로 사실상 유의미한 상관관계를 띈다고 말할 수 없다. 이를 유사상관이라고 말한다.
4) 베이즈 통계학
기존 통계학은 발생빈도를 '예측' 할 수 있는 경우에만 사용이 가능했다. 이말인 즉슨, 데이터가 적거나 심할경우 데이터가 없을경우 추측이 어렵다는 단점이 존재한다.
이를 해결하기 위해 베이즈 통계학이라는 개념이 나오기 시작했다.
베이즈 통계학은 표본이 적더라도 추정할 수 있는데 어떤 데이터가 들어올때마다 확률이 바뀌는 통계학이다.
대표적인 예로 몬트홀 문제라고 볼 수 있다.