서론
지금까지 데이터 과학의 일반적인 프로세스 중에서 데이터 수집, 데이터 가공에 필요한 통계학적 지식들을 공부했습니다. 데이터 수집 단계에서 배운 것은 "실제 환경에서는 전수조사를 하기 힘들기 때문에 표본조사를 하고, 표본을 추출하는 과정에서 편향이 생길 수 있으므로 주의하자."였습니다. 데이터 가공 단계에서 배운 것은 "변수에는 종류가 있고 관계가 있다. 그리고 척도를 통해 수치화 시킬 수 있다."였습니다.
이렇게 수집하고 가공한 데이터를 이제 분석할 차례인데요. 첫 번째 시간에 통계학의 큰 분류로 기술 통계와 추론 통계를 소개해드렸습니다. 기술 통계는 데이터를 잘 설명할 수 있는 지표를 뽑아내는 것이라고 했습니다. 이것을 탐색적 데이터 분석(EDA : Exploratory Data Analysis)이라고도 하는데요. 오늘은 EDA를 하기 위한 중요한 지표들에 대해서 살펴보도록 하겠습니다.
1. 데이터 과학 공부하기 - 통계학 기초(표본 추출)
2. 데이터 과학 공부하기 - 통계학 기초(변수와 척도)
※ 데이터 과학 프로세스에 대한 자세한 설명은 1번 링크를 참고해주세요.
중심 성향
만약에 아버지의 키가 아들의 키에 얼마나 영향을 미치는지 알아보기 위해서 데이터를 수집, 가공했다고 가정해보죠. 지구에 있는 모든 아버지와 아들의 키를 조사할 수 없기 때문에 우리는 표본을 추출하여 조사를 시작했습니다. 데이터를 모아놓고 보니, 그 양이 너무 많기 때문에 특징에 대해서 알고 싶어졌습니다. 특징은 많겠지만 다 보는 것은 머리가 아플 것 같네요. 우리는 대표적인 값을 보고싶어졌습니다. 이럴 때 과연 무엇을 확인해야 할까요? 다시 말해 해당 표본에서 데이터의 특징을 가장 잘 나타낼 수 있는 값은 무엇일까요? 이럴 때 우리는 중심 성향을 확인합니다. 대표적으로 평균값(mean), 중앙값(median), 최빈값(mode) 등이 있습니다. 이 세 가지 지표는 모르면 안 되기 때문에 설명을 드리고 넘어가겠습니다.
평균값(mean)은 여러분들이 잘 알다시피 데이터의 모든 값을 더하고 데이터의 개수만큼 나눈 값입니다. 평균값을 보고 데이터가 어느 정도의 값을 가지는지 짐작할 수 있습니다. 그러나 평균이 가지는 함정을 조심해야 합니다. 하나의 값이 너무 크거나 작으면 평균에 크게 영향을 끼치기 때문에 평균값은 대표성을 잃게 됩니다. 그러므로 이상치의 존재 유무에 대해서 잘 확인해 봐야 합니다. 게다가 평균에도 종류가 있다는 사실! 저는 책을 읽으면서 처음 알았는데요. 위에서 설명한 (우리가 흔히 아는) 평균은 산술평균(arithmetic mean)이고 가중평균(weighted mean), 기하평균(geometric mean), 조화평균(harmonic mean) 등이 있습니다. 그러나 짚고 넘어가진 않겠습니다.
중앙값(median)은 데이터를 크기 순서대로 정렬했을 때 중간에 위치한 값입니다. 만약 데이터의 개수가 짝수라면 중앙 부근에 있는 두 수의 산술평균 값으로 합니다. 중앙값은 앞서 설명한 평균의 함정으로부터 자유롭기 때문에 통계 자료를 설명할 때 평균보다 더 많이 언급되는 걸로 알고 있습니다. 그만큼 많이 쓰이는 값이니 꼭 알아둬야 합니다.
최빈값(mode)은 말 그대로 가장 많이 등장한 값입니다. 키를 조사해 봤더니 172.0cm인 사람이 가장 많다면 172.0이 최빈값이 됩니다. 양적 척도만 계산 가능한 평균값, 중앙값과는 달리 질적 척도도 측정이 가능하다는 특징이 있습니다. "성별이 남성인 경우가 가장 많았다" 또는 "혈액형 중에 O형이 가장 많았다"라고 말할 수 있는 것처럼 말입니다. 그러나 최빈값 역시 모든 데이터의 빈도가 동일하거나 빈도가 같은 값이 둘 이상 존재할 수 있기 때문에 함정에 빠지지 않도록 주의해야 합니다.
분산과 표준편차
아버지 5명을 표본으로 추출하여 키에 대해 조사하고자 합니다. 평균을 구했더니 170입니다. 그렇다면 5명 각각 평균과 얼마나 떨어졌는지 알 수 있겠죠? 이를 편차라고 합니다. 즉, 편차란 평균과의 차이입니다. 편차는 평균과의 차이이기 때문에 모두 더하면 0이 됩니다.
편차를 구했더니 데이터들이 평균에서 얼마나 떨어졌는지 한눈에 알고 싶습니다. 쉽게 말해서 편차가 대략 어느 정도인지 알고 싶은 거죠. 그렇다면 편차의 평균을 구하면 되겠군요! 그러나 앞서 말했듯이 편차를 모두 더하면 0이 되므로 의미가 없습니다. 따라서 편차에 절댓값을 씌워서 평균을 계산해 보겠습니다. 이것을 평균 편차(mean deviation)라고 합니다. 즉, 편차에 절댓값을 씌우고 평균을 낸 값을 평균 편차라고 합니다.
컴퓨터 공학에 대해서 공부하신 분들이라면 절댓값을 씌우는 것보다 제곱을 해버리는 것이 명령어가 덜 쓰인다는 것에 대해서 동의하실 겁니다. 지금 예시는 데이터가 5개밖에 없지만 실제로 몇 만개의 데이터를 사용해야 하기 때문에 절댓값을 씌우는 것은 비효율적으로 보입니다. 게다가 편차에 제곱을 하게 되면 평균과의 차이가 강화되어서 차이가 큰지 작은지 한눈에 알기 더 쉬워 보입니다. 위와 같은 이유로 평균을 구하기 전에 절댓값을 씌우지 않고 제곱을 해봅시다. 이것이 바로 분산입니다. 즉, 편차에 제곱을 하고 평균을 구한 것이 바로 분산입니다.
분산은 편차가 얼마나 큰지 알아내기에 훌륭한 지표이지만 한 가지 단점이 있습니다. 실제로 평균에서 얼마나 떨어져 있는지 짐작하기 쉽지 않다는 점인데요. 실제 편차에 대한 짐작을 편리하게 하기 위해서 제곱근을 씌워봅시다. 이것을 표준 편차라고 합니다. 즉, 분산의 제곱근을 표준 편차라고 합니다.
분산과 표준 편차는 모집단이냐 표본이냐에 따라 위 그림과 같이 표기합니다. 주의할 점은 표본의 경우 관측치 수(N)가 아니라 자유도(n-1)로 나눠줘야 한다는 점입니다. 자유도란 자유롭게 선택할 수 있는 숫자의 개수입니다. 예를 들어 표본의 데이터 수 5개 중에서 4개를 골랐다면 나머지 1개는 표본의 평균에 맞춰서 뽑아야 하므로 자유롭게 뽑을 수 없게 됩니다. 따라서 자유도는 4가 됩니다. 이러한 개념이 처음에는 이해가 안됐습니다. 사실 지금도 이해하기 어려운데요. 제가 이해한 바로는 -1을 해주어야 모집단의 분산과 비슷해진다고 합니다. 이유는 아마 과학자들도 모를거에요. 그냥 -1을 해줬더니 모집단의 분산과 비슷하다. 그래서 -1을 그냥 해라. 뭐 이 정도로 이해하면 될 것 같습니다. 자세히 아시는 분은 댓글로 알려주시면 감사하겠습니다.
산포도
산포도(dispersion)란 대푯값을 중심으로 데이터가 흩어져 있는 정도입니다. 분산도(variation)라고도 불리며 분산의 개념과 비슷하지만 분산과 표준 편차를 포함하는 상위 개념입니다. 산포도에는 분산, 표준편차, 범위, 사분위수, 변동계수 등이 있습니다. 분산과 표준 편차는 앞서 배웠으니 범위, 사분위수, 변동계수는 무엇인지 알게보겠습니다.
범위란 최솟값부터 최댓값까지를 의미합니다. 말 그대로 범위를 측정하면 되는 겁니다. 지표이기 때문에 숫자로 나타낸다면 "최댓값 - 최솟값 = 범위"로 나타낼 수 있습니다.
사분위수(quartile)는 전체 데이터의 순서에 따른 위치 값입니다. 즉, 전체 데이터를 크기 순서대로 정렬하고 4개의 구간으로 나눈 것인데요. 정규분포를 따르지 않거나 산포도가 큰 경우에 시분위수를 자주 이용한다고 합니다. 예를 들어 100명의 키를 조사하여 순서대로 정렬했을 때, 1~25번째는 1사분위수(Q1), 26~50번째는 2사분위수(Q2), 51~75번째는 3사분위수(Q3), 76~100번째는 4사분위수(Q4)가 됩니다. 2Q값은 중앙값과 동일합니다.
변동 계수(coefficient of variation : CV)는 표준편차를 산술평균으로 나눈 값입니다. 쉽게 말해서 표준편차 나누기 평균을 한 값입니다. 왜 변동 계수가 필요할까요? 예를 들어 시력과 몸무게의 산포도를 비교해봅시다. 시력은 몽골 사람이 아닌 이상 2를 넘기기 힘들죠. 넉넉잡아도 범위가 -2~2정도 될 것 같습니다. 반면에 몸무게는 성인 기준 40~100정도의 범위를 가질 것 같네요. 숫자의 단위가 달라도 너무 다릅니다. 이런 상태에서 시력과 몸무게의 표준편차를 비교한다면 어떻게 될까요? 대푯값에서 얼마나 차이가 나는지 비교하기 어렵습니다. 따라서 표준편차를 평균값으로 나누어서 표준화를 시킨 다음 비교를 하게 되는 것입니다. 주의할 점은 평균이 0에 가까울수록 변동계수가 무한히 커질 수 있다는 점입니다.
왜도와 첨도
왜도(skewness)는 데이터 분포의 좌우 비대칭도를 나타내는 척도입니다. 분포의 대칭에 대해서 논할 때 왜도를 사용합니다. 데이터값을 X축에 놓고 데이터 개수를 Y축에 놓았을 때 그래프로 분포를 확인할 수 있습니다. 이러한 그래프에서 평균이 중앙값보다 작으면 오른꼬리 분포, 크면 왼꼬리 분포라고 합니다. 분포가 좌우 대칭을 이룰수록 왜도 값은 작아지고 오른/왼꼬리 분포처럼 분포가 한쪽으로 몰릴수록 왜도 값이 증가합니다.
분포도를 시각화해서 눈으로 확인할 수 있지만, 왜도를 수치로 확인해도 비대칭 정도를 쉽게 알 수 있습니다. 왜도를 측정하는 간단한 방법으로 피어슨 비대칭 계수(Pearson's skewness coefficients)가 있습니다. 완벽한 대칭을 이루는 분포의 경우 평균과 중앙값이 같으므로 왜도는 0이 될 겁니다. 하지만 오른꼬리 분포의 경우 평균이 중앙값보다 더 작으므로 음수가 나오게 될 것이고 왼꼬리 분포의 경우 평균이 중앙값보다 크므로 양수가 나오게 됩니다. (데이터에 따라 중앙값을 최빈값으로 대체해도 됩니다.)
첨도(kurtosis)는 분포가 얼마나 뾰족한지 나타내난 척도입니다. 분포가 뾰족하다는 말은 값이 중심에 몰려있다는 말이고 첨도가 크다고 할 수 있습니다. 분포가 완만하다는 것은 값이 퍼져있다는 것이고 첨도가 작다고 할 수 있습니다. 기본적으로 3을 기준점으로 해서 이보다 크면 양의 첨도(혹은 급첨)이라고 하고 작으면 음의 첨도(혹은 완첨)이라고 한다고 합니다. 편의상 -3을 하여 0을 기준 값으로 하는 경우도 있다고 하네요. 그렇게 되면 급첨은 양수, 완첨은 음수가 되어서 이름을 이렇게 지었나 봅니다. 잘 안 쓸 거 같지만 구하는 식은 아래에 기록해놓겠습니다.
이번에 분포에 대해서 배웠으니까 다음에는 확률에 대해서 배우면서 확률 분포를 뜯어볼까 합니다. 누군가에게 가르쳐준다고 생각하고 글을 쓰니까 애매하게 알던 부분을 정확하게 알게 되어서 정말 재밌게 공부했습니다. 부족한 부분이 있으면 댓글로 피드백 주시면 감사하겠습니다. 지금까지 긴 글 읽어주셔서 감사합니다. 그리고 좋은 자료 만들어주신 황세웅 교수님 감사합니다. (뒷광고 아니고 지인 아니에요 진심입니다 ㅠㅠ)
'컴퓨터공학 > 데이터과학' 카테고리의 다른 글
데이터 과학 공부하기 - 통계학 기초(확률 분포, 중심극한정리) (2) | 2024.11.24 |
---|---|
데이터 과학 공부하기 - 통계학 기초(변수와 척도) (2) | 2024.11.20 |
데이터 과학 공부하기 - 통계학 기초(표본 추출) (4) | 2024.11.20 |