brunch

03. 데이터 읽기의 기초(2)

기술통계(2): 표준편차, 분산, 왜도

by HyehwaYim






Review


안녕하세요? 지난 시간에는 '데이터 읽기의 기초(1)'편을 다뤘습니다. 데이터를 읽는다는 건 숫자만을 보는 것이 아니라, 그 숫자 속에 담긴 이야기의 구조를 이해하는 일이라고 할 수 있습니다. 통계학은 이것을 두 갈래의 길로 제시합니다. 하나는 현재 데이터의 특징을 요약하여 보여주는 기술통계(Descriptive Statistics), 다른 하나는 모집단의 특성을 추론(예측)하는 추론통계(Inferential Statistics)입니다.


모든 데이터에는 '중심'이 있습니다. 하지만 그 중심을 '어디에 둘 것인가'에 따라 이야기가 달라집니다. 데이터의 중심을 나타내는 값(대푯값)으로는 평균(Mean), 중앙값(Median), 최빈값(Mode)이 있습니다. 평균은 가장 익숙한 대푯값입니다. 모든 값을 더해 개수로 나눕니다. 하지만 몇 개의 극단적인 데이터가 등장하면 평균은 그쪽으로 끌려갑니다. 중앙값은 데이터를 크기 순으로 나열했을 때, 한가운데 있는 값입니다. 중앙값은 극단값에 흔들리지 않고 데이터의 실제 중심을 보여줍니다. 그래서 연봉이나 부동산 가격처럼 격차가 큰 데이터에서는 평균보다 중앙값이 '현실적인 값'입니다. 최빈값은 가장 자주 등장하는 값입니다. 조직에서 가장 많은 직급, 가장 자주 선택된 상품 등을 볼 때 유용하게 활용됩니다.


데이터의 중심을 알았다면, 그 중심으로부터 데이터가 퍼져 있는 정도(산포도, Dispersion)를 같이 살펴보아야 합니다. 이렇게 데이터가 퍼져 있는 정도를 직관적으로 알 수 있는 것이 'Range'이고, 데이터가 퍼져 있는 현상을 네 개의 위치값을 통해 설명하고자 하는 개념이 '사분위수'입니다. 특히 사분위수(Quartile)는 데이터를 크게 하위 25% 지점(1사분위수, Q1), 중앙의 50% 지점(2사분위수, Q2=중앙값), 상위의 75% 지점(3사분위수(Q3)으로 나눕니다. 이 세 지점은 데이터가 어떻게 퍼져 있는지를 세밀하게 보여줍니다.


그리고 IQR(Interquartile Range), 즉 Q3에서 Q1을 뺀 값은 전체 데이터의 가운데인 50%의 데이터가 차지하는 구간을 알려줍니다. 이 IQR은 통계학에서 상한과 하한의 이상치를 탐색하는 기준이 되기도 합니다. 사분위수 간의 간격을 보면, 데이터의 '기울기'를 읽을 수 있습니다. 중앙값을 기준으로 오른쪽이 길다면, 오른쪽 꼬리 분포(우측 비대칭, Positive Skew), 왼쪽이 길다면 왼쪽 꼬리 분포(좌측 비대칭, Negative Skew)입니다. 이때, 평균은 꼬리 방향으로 끌려가게 되므로, 평균과 중앙값의 위치 차이를 통해 분포의 비대칭성을 파악할 수 있습니다.


오늘의 학습 방향


오늘 다뤄볼 주제는 '데이터 읽기의 기초(2)'편입니다. 데이터 읽기의 기초(1)편에서 다뤘던 내용의 연장선으로 추가로 익혀 두면 좋을 개념을 소개하고자 합니다.


첫째는, 산포도에 대한 이야기로 데이터가 중심값으로부터 구체적으로 얼마의 간격으로 퍼져 있는지를 측정해보겠습니다. 이와 관련하여 통게학의 중요한 개념으로서 표준편차와 분산을 구해보겠습니다.


셋째는, 데이터 분포의 비대칭 정도를 구체적으로 알려주는 개념으로서 왜도(Skewness)를 상세하게 다뤄보겠습니다. 통계학의 가정에서 중요한 부분을 차지하는 것이 "표본이 많아질수록 모집단의 특성에 가까워진다."라는 것입니다. 이와 관련된 개념이 '불편추정'(Unbiased estimation)'중심극한정리'(Central limit theorem)입니다. 전자는 표본의 통계량(평균, 분산)이 모집단 모수의 정확한 추정값이 되도록 보정하는 것인 반면, 후자는 표본평균의 분포가 정규분포로 수렴한다는 확률이론의 내용입니다. 다만, 현실의 데이터는 오른쪽 또는 왼쪽으로 편중되어 꼬리가 한쪽으로 긴 분포도 많습니다. 왜도를 알면, 데이터 분포의 비대칭성을 보는 통계적 안목이 달라질 수 있겠습니다. 자, 그럼 시작하겠습니다.




01. 표준편차(Standard Deviation)


표준편차는 데이터가 평균을 중심으로 '얼마 정도 흩어져 있는지'를 나타내는 값이라고 할 수 있습니다. 'Range'가 가장 작은 값과 가장 큰 값의 차이를 통해 데이터의 전체 폭을 보여줬다면, 표준편차는 각 데이터가 평균으로부터 얼마나 떨어져 있는지 수치로 표현한다는 점에서 보다 정밀하게 측정된 산포의 척도라고 할 수 있습니다. 즉, 표준편차는 "평균 근처에 데이터가 집중되어 있는가? 아니면 넓게 흩어져 있는가?'를 알려주는 지표라고 할 수 있습니다.


A. 편차의 계산


표준편차를 구하기 위해서는 먼저 각 데이터가 평균으로부터 얼마나 떨어져 있는지를 계산해야 합니다. 이와 같이 각 데이터와 평균 간의 차이를 편차(Deviation)이라고 합니다. 지난 시간에 활용했던 B회사의 예시를 들어보겠습니다. B회사는 7명의 직원이 있고, 각 직원의 연봉은 다음과 같습니다.


직원 1: 35,800,000원

직원 2: 25,500,000원

직원 3: 31,600,000원

직원 4: 41,700,000원

직원 5: 35,300,000원

직원 6: 33,800,000원

직원 7: 30,800,000원


이 연봉 테이블의 평균(Mean)=33,500,000원, 중앙값(Median)=33,800,000입니다. 평균값이 33,500,000원이 되므로, 각 직원의 데이터와 평균 간의 차이인 편차는 아래와 같습니다.


위 그림에서 계산된 편차를 모두 더하면 0이 됩니다. 양수(+)와 음수(-)가 서로 상쇄되기 때문입니다. 따라서 편차만으로는 흩어짐의 크기를 판단할 수 없다는 걸 알 수 있습니다.


B. 분산(Variance)과 표준편차


편차의 합이 0이 되는 문제를 해결하기 위해 각 편차를 제곱하여 부호를 제거합니다. 이렇게 편차 제곱의 합계의 평균을 분산(Variance)이라고 합니다. B회사 연봉 데이터의 분산을 계산하면 아래 그림과 같습니다.



우선 분산은 7개 데이터의 편차를 구한 후, 모든 편차를 제곱한 합계액을 데이터의 개수로 나눈 값으로, 21,537,143천 원에 근사한 값입니다. 표준편차는 분산에 제곱근을 취한 값으로, 분산을 원래의 단위로 돌려 놓은 척도라고 할 수 있습니다. 따라서 4,640,000원이 됩니다. 즉, B회사의 연봉은 평균 33,500,000원을 중심으로 ±4,640,000원 정도 퍼져 있다고 해석할 수 있습니다.




02. 모집단 분산과 표본 분산의 차이


앞선 시간에 모집단과 표본에 대한 차이를 언급한 적이 있습니다. 모집단(Popualation)은 우리가 관심을 갖고 있는 주제에 해당하는 대상의 전부를 뜻하고, 표본(Sample)은 모집단에 해당하는 대상의 일부에 대한 데이터로 표본을 바탕으로 통계적인 검증을 거쳐 모집단의 특성을 추론한다고 했습니다. 이렇게 모집단은 전체로서, 표본은 일부로서 차이가 있습니다. 그렇기 때문에 모집단과 표본을 대하는 통계학의 관점도 다소 차이를 보입니다.


대표적으로 통계학은 모집단과 표본을 나타내는 기호를 달리 사용하고 있으며, 방금까지 학습한 산포도를 측정하는 분산을 구하는 계산식도 달리 쓰고 있습니다. 먼저, 통계학에서는 모집단과 표본의 특징을 나타내는 기호를 아래와 같이 구분하고 있습니다. 굉장히 자주 등장하는 기호들이기 때문에 기억해 두는 것이 좋습니다.


참고로 위 기호들 중에서 표본의 평균을 '엑스 바'(Bar x)라고 부릅니다. 다만, 카카오 브런치 플랫폼은 표본의 평균을 나타내는 기호를 구현할 수 없기 때문에 표본의 평균을 쓸 때는 [Bar x]라고 표현하겠습니다. 그리고, 카카오 브런치 플랫폼은 제곱을 구현하지 못합니다. 따라서 제곱을 나타낼 때는 excel에서 제곱을 구하는 함수를 적용할 때 사용하는 '^'를 사용하겠습니다. 예를 들어, 모집단의 분산을 쓸 때는 [σ^2]라고 표현합니다.


다음은, 모집단의 분산과 표본의 분산입니다. 모집단과 표본의 분산을 구할 때는 아래와 같은 계산식을 사용합니다.



모집단 분산(Population Variance)을 먼저 보겠습니다. x_i는 각 데이터의 값, μ는 모집단의 평균, N은 모집단의 데이터 개수를 나타냅니다. 이렇게 구성된 모집단 분산은 각 데이터의 값에서 모집단의 평균을 뺀 편차의 제곱을 모두 합하여 데이터의 개수로 나눈 값입니다. 위에서 B회사의 연봉 데이터를 바탕으로 계산한 분산의 계산식과 동일합니다.


표본 분산(Sample Variance)을 보겠습니다. x는 각 데이터의 값, [Bar x]는 표본의 평균, (n-1) 표본의 데이터 개수를 나타냅니다. 이렇게 구성된 표본의 분산은 각 데이터의 값에서 표본 평균을 뺀 편차의 제곱을 모두 합하여 데이터의 개수(n)에서 1을 뺀 값으로 나눈 것입니다.


우리는 여기서 중요한 한 가지를 발견할 수 있습니다. 바로 모집단의 분산을 구할 때는 데이터 개수를 모집단 전체 개수인 N개로 나누는 반면, 표본의 분산을 구할 때는 데이터 개수를 (n-1)개로 나눈다는 것입니다. 이렇게 모집단과 표본의 분산을 구할 때 분모값이 달라지는 이유는 크게 두 가지입니다.


A. 자유도(Freedom)의 개념


표본의 평균을 계산하는 순간 표본의 데이터 n개 중 마지막 값 하나는 자동으로 결정이 됩니다. 예를 들어 데이터가 3개가 있는데 그 값들의 평균이 10이라고 가정해 봅시다. 첫 번째 데이터가 8, 두 번째 데이터가 12일 때 세 번째 데이터 값은 자동으로 10이 되어야 합니다. 즉, 자유롭게 움직일 수 있는 데이터의 수는 n이 아니라 (n-1)이 됩니다. 이 자유도의 손실을 반영하기 위해서는 표본의 분산을 계산할 때, (n-1)을 사용한다.


B. 표본 평균의 체계적 편향(Bias)


표본의 평균은 가장 중심에 위치하는 값이 됩니다. 즉, 실제 모집단의 평균보다 편차가 작게 나타나는 경향이 있습니다. 예를 들어, 학생 100명의 키를 모두 알 수 없고 10명만 뽑았다고 가정하자. 이 10명만의 평균을 기준으로 보면 이들 데이터는 서로 가깝게 모여 있는 것처럼 보이지만, 전체 100명인 경우보다 훨씬 더 넓게 퍼져 있을 수 있습니다. 이렇게 표본으로 구한 분산은 실제 모집단의 분산보다 작게 추정되므로, 이를 보정(Unbiased correction)하기 위해 n 대신 (n-1)로 나눕니다.


정리하면, 모집단 전체를 알고 있을 때는 자유도의 손실이 없기 때문에 N으로 나누는 것이고, 표본만 가지고 전체를 추정할 때는 실제 모집단의 분산보다 작게 추정되기 때문에 (n-1)로 나누게 되는 겁니다.




03. 왜도(Skewness)


왜도는 데이터 분포의 비대칭 정도를 나타내는 통계량입니다. 즉, 데이터가 평균을 중심으로 왼쪽 또는 오른쪽으로 얼마나 치우쳐 있는지를 수치로 표현합니다. 만약 데이터의 분포가 정규분포라면 평균을 기준으로 왼쪽과 오른쪽이 거의 대칭을 이루고 있습니다. 반면, 오른쪽으로 꼬리가 긴 경우에는 '양의 왜도'(Positive Skew), 왼쪽으로 꼬리가 긴 경우에는 '음의 왜도(Negative Skew)를 나타냅니다. 즉, 왜도는 데이터의 분포가 '한쪽으로 얼마나 삐뚤어져 있는가'를 재는 수치입니다. 이와 같은 왜도의 개념을 개괄적으로 파악하기 위해 참고하며 좋을 그래프를 소개합니다.


왜도.jpg


A. 표본의 왜도를 구하는 공식

왜도공식2.png


표본의 왜도를 구하는 공식은 위와 같습니다. 'n'은 데이터의 개수, 'x_i'는 각 데이터의 값, [Bar x]는 모든 값의 평균, s는 표준편차, (x_i-Bar x)는 각 데이터와 평균과의 차이, (x_i-Bar x/s)^3은 평균과의 차이를 표준편차로 나누고(표준화), 이를 세제곱하여 방향과 크기를 강조하는 것입니다. 마지막으로 n/(n-1)(n-2)는 표본을 활용할 경우 발생하는 편향을 보정하기 위한 보정계수입니다.


B. 예시를 통한 왜도 계산


Data Set={2, 3, 4, 5, 6}이라고 가정해 봅시다. 이 Data Set의 왜도를 구하기 위해서는 ① 평균값 계산, ② 표준편차 계산, ③ 각 값에서 평균을 빼고 표준편차로 나눈 후, 세제곱, ④ ③의 값들을 모두 더하기, ⑤ 보정계수 곱하기의 단계를 거치게 됩니다.

왜도계산2.png


위와 같이 각 데이터에서 평균과의 간격 차이를 표준화 및 세제곱한 값들은 -2.05, -0.25, 0, 0.25, 2.05입니다. 이들 값들을 모두 더하면 0이 됩니다. 즉, [∑(x_i-Bar x)/s^3]값이 0이라는 뜻입니다. 따라서 마지막 단계인 보정계수 [n/(n-1)(n-2)]를 곱한다고 하여도 결국 왜도(g_1)=0이 됩니다. 데이터 분포가 완전히 좌우 대칭으로 균형이 잡혀 있다고 볼 수 있습니다.


반면, 왜도 값이 0보다 크다면 오른쪽으로 꼬리가 긴 분포의 형태를 갖게 됩니다. 즉, 높은 값으로 길게 늘어난 분포가 됩니다. 반대로 왜도 값이 0보다 작다면 왼쪽으로 꼬리가 긴 분포의 형태를 갖게 됩니다. 즉, 낮은 값으로 길게 늘어난 분포가 됩니다.


C. 왜도를 구할 때 "세제곱"을 하는 이유


각 데이터의 값과 평균값 간의 차이를 표준편차로 정규화하고, 그 값을 '세제곱'하는 이유는 두 가지입니다. 첫째는, 방향(왼쪽과 오른쪽)을 구분하기 위함입니다. 제곱을 하면 부호(+, -)가 사라지나, 세제곱은 부호를 유지하기 때문에, 왼쪽으로 치우쳤는지, 오른쪽으로 치우쳤는지를 알 수 있게 합니다. 둘째는 평균에서 멀리 떨어진 값이 더 큰 영향을 주게 하기 위한 효과적 측면이 있습니다.


D. 왜도를 구할 때 (n-1)(n-2)의 보정계수를 반영하는 이유


우리가 표본의 분산을 계산할 때, 분모의 값이 (n-1)이었습니다. 이렇게 (n-1)을 쓰는 이유는 표본의 평균인 Bar x가 모집단의 평균인 μ를 대체하면서 자유도 1을 소모하기 때문입니다. 즉, 평균을 이미 한 번 계산했기 때문에 데이터 n개 중에서 "하나의 정보가 제약"을 받게 되는 것입니다. 그래서 표본의 분산은 (n-1)로 나눠야 편향되지 않은 이른바 '불편추정량'(Unbiased estimator)이 된다고 봅니다.


왜도는 평균과 표준편차뿐 아니라, 각 값의 세제곱 편차(3rd power of deviation)를 다루는 통계량입니다. 문제는 여기서 표본의 평균인 Bar x와 표본의 표준편차인 s 모두 표본을 기반으로 추정된 값이기 때문에, 이 둘이 실제 모집단의 평균인 μ와 모집단의 표준편차인 σ보다 조금씩 편향된 방향으로 오차를 갖게 됩니다. 즉, 단순하게 (n-1)을 한 번만 나누면 그 편향이 완전히 교정되지 않습니다. 따라서 세제곱 항은 평균과 분산에 대한 추정에서 자유도 손실이 2단계로 누적되는 셈입니다.











keyword