susinlee 님의 블로그
3. 데이터의 경향 파악하기 - 수치로 요약하기 본문
아무런 처리를 하지 않은 원자료를 단순히 관찰하는 것만으로는 데이터의 전체적인 경향을 파악하기 어렵습니다. 데이터를 경향을 한 눈에 파악할 수 있다면 분석 시간을 크게 단축할 수 있습니다. 이를 위해 데이터를 요약하거나 시각화하는 방법이 필요합니다. 데이터를 요약하면 분포와 특성을 수치로 확인할 수 있으며, 그래프 등으로 시각화하면 대략적인 경향을 직관적으로 파악할 수 있습니다.
데이터의 경향을 파악하는 두 가지 방법
1. 데이터의 경향을 수치로 요약하기
평균값과 같이 데이터를 요약하여 특성을 간단히 나타내는 수치를 기술통계량이라고 합니다. 주로 수치형 변수를 대상으로 계산됩니다. 범주형 변수의 경우, 범주의 빈도나 비율을 활용하여 데이터를 요약하고 설명할 수 있습니다.
기술통계량은 데이터를 간결하게 요약하여 특성을 하나의 수치로 보여주는 장점이 있지만, 요약하는 과정에서 일부 정보가 손실될 수 있습니다. 예를 들어, 평균값은 데이터의 중심 경향을 나타내지만, 데이터가 얼마나 퍼져 있는지는 알 수 없습니다. 따라서 분산이나 표준편차와 같은 데이터를 퍼짐 정도로 설명하는 통계량을 함께 살펴보아야 합니다. 이처럼, 기술통계량은 데이터를 단일 통계량뿐만 아니라 다양한 통계량을 함 께 고려하는 것이 중요합니다.
기술통계량은 크게 다음 두 가지로 구분할 수 있습니다.
- 대표값 :데이터의 중심을 나타내는 값으로, 평균값, 중앙값, 최빈값이 있습니다.
- 퍼짐 정도 : 데이터가 흩어져 있는 정도를 나타내는 값으로 범위, 분산, 표준 편차, 사분위수가 있습니다.
대표값
표본평균은 전체 관측값들을 모두 더한 후 관측값의 개수로 나누어 계산되며, 데이터의 중심 경향을 대변할 수 있습니다..하지만 극단적인 값에 크게 영향을 받는다는 단점이 있습니다. 따라서 데이터에 극단값이 포함된 경우, 표본평균만을 사용하는 것은 적절하지 않을 수 있습니다.
이때 중앙값을 사용하면 극단값의 영향을 줄일 수 있습니다. 중앙값은 데이터 값들을 크기 순으로 정렬했을 때 가운데에 위치한 값으로, 극단값에 영향을 받지 않는다는 장점이 있습니다. 이는 특히 데이터가 비대칭적이거나 이상치가 포함된 경우에 유용합니다. 표본 개수가 짝수일 때는 가운데 두 값의 평균값을 사용합니다. 가운데 위치한 데이터일 뿐이기에 다른 데이터의 정보는 손실된다는 단점이 있습니다.
다음으로 최빈값은 데이터에서 가장 빈도가 높은 값으로 정의됩니다. 최빈값은 범주형 변수에서 유용하게 활용되며, 연속형 변수(주로 이산형)에서도 데이터의 빈도를 나타낼 때 사용됩니다. 연속형 변수의 경우, 데이터를 구간을 나누고 해당 구간에 속하는 데이터 개수를 세어 최빈값을 구할 수 있습니다. 그러나 최빈값은 데이터의 분포를 완전히 설명하지 못할 수 있고, 하나 이상의 최빈값이 존재할 수도 있습니다.
표본평균과 중앙값, 최빈값 비교
왼쪽 그래프와 같이 꼬리가 긴 비대칭 분포에서는 평균값과 중앙값 사이에 차이가 발생합니다. 예를 들어, 왼쪽의 그래프처럼 극단적으로 높은 수입을 가진 소수의 데이터(고소득층)가 포함된 경우, 평균값은 중앙값보다 더 크게 나타납니다. 이는 평균값이 극단값의 영향을 많이 받기 때문입니다. 이러한 상황에서는 중앙값이 대다수 데이터의 대표값으로 더 적합할 수 있습니다.
반면, 오른쪽 그래프처럼 상대적으로 좌우가 대칭인 분포에서는 평균값, 중앙값, 최빈값이 모두 비슷합니다. 이는 데이터가 대칭적으로 분포되어 있어 각 값이 데이터의 중심을 잘 나타내기 때문입니다.
아래는 실습 코드들로 파이썬으로 대표값을 구해봅니다.
# 필요 라이브러리 불러오기
import numpy as np
import pandas as np
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib import rc
# 한글 폰트 설정 (예: Windows)
rc('font', family='Malgun Gothic')
# 유니코드 음수 기호가 깨지지 않도록 설정
plt.rcParams['axes.unicode_minus'] = False
대푯값 구하기(파이썬)
df = pd.DataFrame({
'점수': [70, 72, 80, 77, 80]
})
# 평균 구하기
s_mean = df['점수'].mean()
print(s_mean) # 75.8
# 중앙값 구하기
s_median = df['점수'].median()
print(s_median) # 77
# 최빈값 구하기
s_mode = df['점수'].mode()[0]
print(s_mode) # 80
퍼짐 정도
대푯값을 이용하면 데이터가 어디를 중심으로 분포하는지를 알 수 있지만, 데이터가 어느정도로 퍼져있는 지를 파악할 수 없습니다. 예를 들어, 두 데이터셋의 평균값이 모두 50 이더라도, 한 데이터 셋은 모든 값이 50 근처에 몰려 있을 수 있고, 다른 데이터셋은 값이 10과 90에만 존재할 수도 있습니다. 이처럼 퍼짐 정도를 나타내는 통계량을 함께 살펴봐야 데이터의 특성을 더 잘 이해할 수 있습니다.
데이터 퍼짐 정도를 측정하는 기술통계량으로 분산과 표준편차가 있습니다. 일반적으로 표본을 대상으로 조사하기 때문에 이를 표본분산과 표본표준편차라 부릅니다. 관측값들이 자료의 중심위치에서 얼마나 떨어져 있는지를 측정하기 위해, 각 관측값에서 평균값과의 차이를 계산하고 이를 편차라고 합니다. 그러나 편차를 단순히 더하면 결과가 0이 되므로, 각 편차를 제곱하여 합산합니다. 이 값을 (표본 크기 - 1)로 나누면 분산을 구할 수 있습니다. 표본이 아닌 모집단의 분산을 구할 때는 n으로 나눠줍니다.
분산의 주요 특징은 다음과 같습니다.
- 항상 0 이상의 값을 가집니다.
- 데이터의 값이 모두 동일할 경우, 분산은 0이 됩니다.
- 데이터의 퍼짐 정도가 클수록 분산도 커집니다.
분산은 데이터의 퍼짐 정도를 파악하는 유용한 척도이지만, 제곱을 취하는 과정에서 데이터의 단위가 제곱으로 변하는 문제가 있습니다. 이로 인해 데이터가 얼마나 퍼져 있는지 직관적으로 이해하기 어려울 수 있습니다. 이를 보완하기 위해 분산에 제곱근을 취하여 원래 단위로 복원한 값이 표준편차입니다. 이러한 표본표준편차는 데이터의 퍼짐 정도를 보다 직관적으로 이해할 수 있게 해주며, 일반적으로 s 로 표기합니다.
하지만 아래의 그래프에서 확인할 수 있듯이, 동일한 평균값과 분산을 가지더라도 데이터는 전혀 다른 분포를 가질 수 있습니다. 이때 데이터를 크기 순서대로 나누어 4개의 구간으로 나눌 때 경계가 되는 값들인 사분위수를 활용할 수 있습니다. 사분위수를 사용하면 데이터의 퍼짐 정도와 분포 특성을 더 구체적으로 파악할 수 있어 이러한 한계를 보완할 수 있습니다.
사분위수 : 데이터를 크기 순으로 정렬한 후, 이를 4개의 동일한 빈도로 나누는 지점을 나타냅니다.
1. 제1사분위수(Q1) :
- 데이터의 하위 25%에 해당하는 지점입니다.
2. 제2사분위수(Q2):
- 데이터의 중앙값과 동일합니다.
3. 제3사분위수(Q3):
- 데이터의 상위 25%에 해당하는 지점입니다.
이 외에도 데이터의 분포를 요약적으로 나타내는 방법으로 최댓값과 최솟값의 차이를 의미하는 범위를 계산할 수 있습니다.
퍼짐 정도 구하기(파이썬)
df = pd.DataFrame({
'점수': [70, 72, 80, 77, 90]
})
# 분산 구하기
s_var = df['점수'].var()
print(s_var) # 62.2
# 표준편차 구하기
s_std = df['점수'].std()
print(s_std) # 7.88
# 범위 구하기
s_range = df['점수'].max() - df['점수'].min()
print(s_range) # 20
# 사분위수 구하기
Q1, Q2, Q3 = df['점수'].quantile([0.25, 0.5, 0.75])
print(Q1, Q2, Q3) # 72, 77, 80
# 평균, 표준편차, 최댓값, 최솟값, 사분위수 한번에 구하기
df.describe()
해당 페이지는 다음 자료들을 참고하여 작성하였습니다.
- 통계101x데이터 분석(아베 마사토)
- 통계학 : 파이썬을 이용한 분석 (인하대학교 통계학과)
- 위키백과
'학습 > 통계학' 카테고리의 다른 글
5. 두 변수의 관계 파악하기 (0) | 2025.01.15 |
---|---|
4. 데이터의 경향 파악하기 - 그래프 그리기 (0) | 2025.01.15 |
2. 데이터의 유형 (0) | 2025.01.11 |
1. 기초 통계학 소개 (0) | 2025.01.10 |