데이터 과학 공부하기 - 통계학 기초(표본 추출)
인사말
안녕하세요! 첫 게시물로 데이터 과학에 대해서 공부한 것을 정리하려고 하는데요. 책 [데이터 분석가가 반드시 알아야 할 모든 것]으로 공부를 했기 때문에 많이 영향도 받고 참고도 했습니다.
데이터 과학을 배우는데 왜 통계학을 알아야 할까요? 데이터 과학은 기초 통계로부터 발전해 왔고 의미를 해석할 때 통계 이론에 기반합니다. 따라서 통계학의 기초에 대해서 알아야 데이터 과학의 결과를 보고 우리가 얻어내고자 하는 결론에 도달했는지, 잘못된 부분이 없는지, 있다면 어떻게 개선해야 하는지 알 수 있겠죠? 데이터에 대해서 다루는 데이터 과학을 제대로 이해하기 위해서 통계학에 대해서 공부해 보겠습니다.
서론
일반적으로 데이터 과학의 전체적인 프로세스는 다음과 같이 진행된다고 합니다.
통계학은 데이터 분석과 결과 해석 및 적용에 필요하다고 하는데요. 왜 그런지는 다음 ML(Machine Learning)과 전통적 통계학의 차이점을 보시면 이해가 됩니다.
통계학 | 머신러닝(ML) | |
목표 | 해석(explanation)에 중점. 가설 검정, 현상 해석. |
예측(prediction)에 중점. 예측 정확도 향상 |
접근 방향 | 가설을 세우고 데이터를 통해 검증. | 데이터를 통해 가설을 끌어내어 검증. |
방식 | 확률변수를 통해 통계적 수치를 검정. | 정확도가 높은 알고리즘과 모델을 생성. |
통계학은 기본적으로 과거에 일어난 일을 해석하는 것에 중점을 두고 있습니다. 예측하는 것은 머신러닝의 몫이죠. 통계를 통해 데이터가 정말 예측하기에 유의한지, 효과적인지를 따져본 다음, 머신러닝 모델에게 줄 필요가 있습니다. 그리고 모델이 예측한 결과가 정말 우리가 원하는 결과인지, 잘못된 건지, 어떻게 개선할지를 따져볼 수 있겠죠.
기술통계와 추론통계
통계학의 큰 분류로 기술 통계(descriptive statistics)와 추론 통계(inferential statistics)를 나눌 수 있습니다.
기술 통계 : 주어진 데이터의 특성을 사실에 근거하여 설명하고 묘사하는 것.
추론 통계 : 표본 집단으로부터 모집단의 특성을 추론하는 것.
이렇게 정의만 놓고 보면 이해가 어렵습니다. 기술 통계는 데이터를 잘 설명할 수 있는 지표를 뽑아내는 일이라고 생각하시면 쉬운데요. 대표적으로 평균, 중앙값, 최빈값 등이 있습니다. 즉, 전체 데이터를 쉽고 직관적으로 파악할 수 있도록 설명(descriptive) 하는 것이 기술 통계의 본질입니다. 기술 통계를 내는 것을 데이터 과학에서 EDA(Exploratory Data Analysis)라고 한다고 합니다. 데이터를 쉽고 직관적으로 설명해야 하므로 시각화를 많이 사용한다고 합니다.
추론 통계도 쉽게 말해서 모집단에서 추출한 표본으로 기술 통계를 냈을 때 과연 어느 정도 신뢰할만한지에 대해서 추정(inferential) 하는 것이라고 할 수 있습니다. 예를 들어 여론 조사를 하기 위해서 일반 시민 1만 명을 상대로 설문을 했습니다. 그리고 그 결과를 가지고 어느 쪽이 우세한지 결론을 내렸습니다. 그렇다면 이 결과가 과연 모든 시민의 여론을 대변할 수 있을까요? 이런 질문에 대해서 추론 통계가 대답을 해줄 수 있습니다.
표본조사
데이터 분석의 가장 첫 번째 프로세스는 데이터 수집입니다. 데이터를 수집하려면 분석하고자 하는 대상을 정해야 하는데요. 만약 타깃이 00대학교 학생들이고 데이터는 학생들의 키라면 쉽게 수집할 수 있을지도 모릅니다. 그러나 만약 타깃이 서울시 거주자 전체이고 데이터는 그들의 치아 개수라면 어떨까요? 어떻게 수집해야 할지 벌써부터 막막하기만 합니다. 이렇게 수집하려는 데이터의 수가 너무 많거나 조사하는데 시간과 비용이 많이 드는 경우에 우리는 표본조사를 합니다. 대표적인 예로 여론조사가 있습니다.
기본적인 용어를 정리하고 가겠습니다.
모집단(poplulation) : 분석 대상의 전체 집합.
표본(sample) : 모집단의 일부를 추출한 부분 집합.
전수조사 : 모집단 전체를 조사 및 분석하여 정보를 추출하는 것.
표본조사 : 모집단에서 추출한 표본을 통해 모집단의 정보를 추정하고 검정하는 것.
물론 전수조사가 가장 정확하고 신뢰할 수 있겠지만 현실에서는 전수조사를 할 수 없는 경우가 대부분입니다. 표본은 모집단의 일부만 추출한 것이기 때문에 자연적으로 모집단의 통계적 수치와 다르겠죠. 데이터 개수가 1000개인 모집단의 평균과 그중에서 999개를 추출한 표본의 평균은 엄밀히 다릅니다. 이는 상식적이고 자연스럽습니다. 이러한 모집단과 표본 사이의 자연 발생적인 변동을 표본오차(sampling error)라고 합니다.
표본오차처럼 모집단과 표본 사이의 자연 발생적인 변동이 있는 반면, 인간의 실수나 착각 등에서 비롯된 변동도 존재합니다. 그것을 비표본오차(non-sampling error)라고 하는데요. 대표적으로 편향(bias)이 있습니다. 다른 과목을 공부하면서도 느끼지만 이 편향이라는 단어는 정말 많이 등장하고 의미도 그때그때 달라지는 것 같습니다(ㅠㅠ). 편향은 대표적으로 표본 추출 과정에서의 편향과 인지적 편향이 있는데요. 표본 추출 과정에서의 편향은 말 그대로 표본을 추출하는 과정에 문제가 있어서 오차가 발생하는 것입니다. 인지적 편향은 사람의 실수나 착각으로 생기는 오차입니다. 내용이 너무 많아서 다 설명하긴 힘들고 가장 재밌게 느꼈던 생존자 편향에 대해서 풀어보겠습니다.
2차 세계대전 당시, 전투기는 매우 중요하고 비쌌는데요. 엔지니어들은 전투기의 생존율을 높이기 위해서 전투기의 외상이 많은 부분에 추가 장갑을 덧대는 것이 합리적이라고 생각했습니다. 그래서 전투에서 돌아온 전투기들의 총탄 자국을 분석하여 많이 손상된 부분을 보강하기로 했습니다. 그러나 분석을 총괄한 연구원은 오히려 총탄 자국이 거의 없는 부분을 보강해야 한다고 주장했습니다. 치명적인 부분에 맞은 전투기는 돌아오지 못했을 태고 돌아온 비행기들은 비교적 덜 중요한 부분에 맞았기 때문에 돌아올 수 있다는 이유였습니다. 죽은 자는 말이 없다는 말이 떠오르네요. 옛날 학자들의 이러한 통찰을 볼때면 매번 놀랍네요.
표본 추출
데이터를 수집하기 위해서 대부분의 경우 우리는 표본조사를 한다고 배웠습니다. 표본조사를 하기 위해서 어떻게 해야 할까요? 표본추출은 다음과 같은 두 가지 경우가 있다고 합니다.
- 데이터 수집 단계의 표본추출
- 이미 가지고 있는 빅데이터에서 분석 모델링을 위한 적절한 크기의 표본 데이터 추출
1번의 경우 여론 조사 같은 것에 해당하겠죠? 2번의 경우는 어떤 회사에서 고객의 데이터를 가지고 예상 수익률 모델을 만든다거나 하는 경우를 떠올릴 수 있겠네요. 표본 추출의 과정은 사진만 보고 넘어가겠습니다.
결국 우리가 궁금한 것은 "표본을 어떻게 추출할 것인가?"인데요. 표본 추출방법에는 무엇이 있는지 알아보고 어떤 경우에 무엇을 선택해야 하는지 알아보겠습니다.
확률 표본추출방법과 비확률 표본추출방법이 있습니다. 대부분의 경우에 확률 표본추출방법을 사용한다고 합니다. 확률 표본추출방법은 모든 분석 대상이 무작위로 추출될 확률을 미리 알 수 있을 때 사용된다고 하는데요. 그래서 표본의 통계량을 통한 모집단의 모수에 대한 추론이 가능합니다. 쉽게 말해서 모집단에서 표본을 뽑을 때 몇 퍼센트의 확률로 뽑힐지 알고 있으므로 표본을 다 뽑고 분석을 했을 때, 모집단에서도 분석 결과가 적용이 될지 추측해 볼 수 있다는 말입니다. 편향을 최대한 제거할 수 있어서 표본의 신뢰도가 높은 장점이 있다고 합니다. 대표적인 방법을 살펴보겠습니다.
- 단순 무작위 추출방법
제비뽑기나 로또 당첨 번호를 선정하듯이 표본을 추출한다. 모집단의 모든 구성단위가 표본으로 선정될 확률이 동일하기 때문에 모집단에 대한 사전 지식이 없는 경우에 유용한 방법이다. 빠르고 쉽기 때문에 가장 일반적으로 쓰인다.
- 계층적 표본추출방법
모든 구성단위에 일련번호를 부여한 뒤 일정한 간격으로 표본을 선택하는 방법이다. 예를 들어 1000개의 모집단에서 1번부터 1000번중 10번,20번,30번,...을 추출하는 것이다. 이 방법은 모집단의 배열에 일정한 주기성이 있는 경우 표본의 대표성이 결여될 수 있다.
- 층화 표본추출방법
모집단이 특정한 기준으로 분류가 가능할 때 쓰일 수 있는 방법이다. 예를 들어 00대학교 학과 별로 나누어서 일정 수의 표본을 무작위로 추출하는 것이다. 집단을 나누는 것은 모집단에 대한 사전 지식이 필요하며 분류에 대한 충분한 근거가 필요하다. 단순 무작위 추출방법으로 뽑았을 때 표본이 편중될 수 있는 위험을 보완한다.
- 군집 표본추출방법
층화 표본추출방법처럼 특정한 기준으로 분류된 소집단 중에서 하나의 집단 전체 혹은 일부만 추출하는 것이다. 예를 들어 00대학교 모든 1학년을 표본으로 삼는 것이다. 모집단이 방대한 상황에서 추출이 쉽지 않을 때 사용한다. 그러나 전체 모집단의 모수를 반영하지 못할 수 있기 때문에 조심해야 한다.
확률 표본추출방법 이외에도 표본 추출방법에는 복원추출법(Sampling With Replacement : SWR)과 비복원추출법(Sampling Without Replacement : SWOR)이 있습니다. 고등학교 확률과 통계 시간에 배웠던 것들인데요. 모집단에서 추출한 표본을 되돌려 놓고 뽑을 건지 그렇지 않고 계속 뽑을건지에 대한 방법을 말하는 겁니다. 예를 들어 10개의 모집단에서 4개의 표본을 추출한다고 했을 때, 복원추출법은 10의 4승, 비복원추출은 10P4로 계산할 수 있습니다.
복원추출법 | 비복원추출법 | |
방법 | 처음 모집단에서 추출된 표본을 되돌려놓고 다음 표본을 추출. | 처음 모집단에서 추출된 표본을 되돌려놓지 않고 다음 표본을 추출. |
표본을 추출하는 행위 | 독립사건 | 종속사건 |
계산 방법 | (모집단의 관측치)^(추출할 표본의 개수) ex) 10*10*10*10 = 10^4 |
(모집단의 관측치)P(추출할 표본의 개수) ex) 10*9*8*7 = 10P4 |
오늘은 표본 추출 방법까지만 공부를 하도록 하고 다음에 변수와 척도에 대해서 다뤄보도록 하겠습니다. 시간이 되면 통계적 측정에 대한 여러 가지 지표들에 대해서도 알아보도록 하겠습니다. 읽어주셔서 감사합니다!