Study/Statistics & Data Analytics

[EDA] 기초 통계 분석이란? (주요 통계 지표)

Super-Son 2024. 7. 12. 11:18

기초 통계 분석이란?

기초 통계 분석은 데이터를 요약하고 이해하기 위해 사용되는 통계적 방법이다. 이를 통해 데이터의 중심 경향, 분포, 변동성을 파악할 수 있다. 기초 통계 분석은 EDA(탐색적 데이터 분석)의 첫 단계로, 데이터의 전반적인 특징 및 구조를 이해하는 데 도움이 된다.

 

주요 통계 지표

기초 통계 분석에서 주로 사용하는 주요 통계 지표들은 다음과 같다. 이해를 돕기 위해 아래 와같은 데이터셋을 예시로 만들었다. 해당 데이터셋을 기준으로 주요 통계 지표들의 계산을 함께 정리한다.

import numpy as np

data = [2, 4, 6, 6, 8, 10]

 

평균 (Mean)

데이터셋의 중심값을 나타내는 지표로,  모든 값의 합을 데이터 개수로 나눈 값이다. 평균은 데이터의 전체적인 경향을 파악하는 데 도움을 준다. 예시 데이터셋 기준으로 계산하면 평균은 (2+4+6+6+8+10)/6 = 6이다. 평균을 통해 데이터가 전반적으로 어디에 위치하는지를 알 수 있다.

# 방법 1 : 모든 값의 합을 데이터 개수로 나눈 값
mean = (2 + 4 + 6 + 6 + 8 + 10) / 6

# 방법 2
mean = np.mean(data)

print(f"평균: {mean}")
# 평균 : 6.0

 

중앙값 (Median)

데이터셋을 크기 순서대로 정렬했을 때 가운데 위치하는 값으로, 극단값의 영향을 받지 않는다. 중앙값은 데이터 분포의 중앙에 있는 값을 알려주어, 데이터가 치우쳐 있는지를 파악하는 데 유용하다. [2, 4, 6, 6, 8, 10]의 중앙값은 6이다. 만약 데이터셋의 크기가 짝수라면 중앙에 위치한 두 값의 평균을 중앙값으로 한다.

median = np.median(data)

print(f"중앙값: {median}")
# 중앙값: 6.0

 

최빈값 (Mode)

데이터셋에서 가장 자주 나타나는 값이다. 최빈값은 데이터셋에서 가장 빈번하게 발생하는 값을 알려주어, 데이터의 특정 값이 얼마나 자주 발생하는지를 이해할 수 있게 한다. [2, 4, 6, 6, 8, 10]의 최빈값은 6이다.

# 방법 1
mode = np.argmax(np.bincount(data))
print(f"최빈값: {mode}")

# 방법 2
from scipy import stats
mode = stats.mode(data)[0]
print(f"최빈값: {mode}")

# 최빈값: 6

 

분산 (Variance)

데이터 값들이 평균에서 얼마나 떨어져 있는지를 나타내는 지표로, 변동성의 정도를 나타낸다. 분산이 크면 데이터 값들이 평균에서 멀리 떨어져 있다는 것을 의미하며, 작은 분산은 데이터 값들이 평균에 가까이 모여 있음을 의미한다. 분산은 각 데이터 값에서 평균을 뺀 값의 제곱의 평균으로 계산된다.

# 방법 1 : 각 데이터 값에서 평균을 뺀 값의 제곱의 평균
variance = sum([(x - mean) * (x - mean) for x in data]) / 6

# 방법 2
variance = np.var(data)

print(f"분산: {variance}")
# 분산: 6.666666666666667

 

표준편차 (Standard Deviation)

분산의 제곱근으로, 데이터의 변동성을 나타내는 보다 직관적인 지표이다. 표준편차는 데이터 값들이 평균 주변에 어떻게 분포되어 있는지를 쉽게 이해할 수 있게 한다.

# 방법 1 : 분산의 제곱근
std_dev = variance**(1/2)

# 방법 2 : Math 라이브러리를 이용
import math
std_dev = math.sqrt(variance)

# 방법 3
std_dev = np.std(data)

print(f"표준편차: {std_dev}")
# 표준편차: 2.581988897471611

 

사분위수 (Quartiles)

데이터를 4등분한 위치 값을 나타내며, Q1(1사분위수), Q2(중앙값), Q3(3사분위수)로 구분된다. 사분위수는 데이터의 분포를 이해하는 데 유용하며, 데이터가 어떻게 분포되어 있는지에 대한 상세한 정보를 제공한다. Q1은 하위 25%, Q3은 상위 25%를 나타낸다.

q1 = np.percentile(data, 25)
q3 = np.percentile(data, 75)

print(f"Q1: {q1}")
print(f"Q3: {q3}")
# Q1: 4.5
# Q3: 7.5

 

IQR (Interquartile Range)

Q1과 Q3의 차이로, 데이터의 중간 50%의 범위를 나타낸다. IQR은 데이터의 변동성을 나타내는 또 다른 지표로, 이상치를 탐지하는 데 사용될 수 있다. IQR이 크면 중간 50%의 데이터가 넓게 분포되어 있다는 것을 의미한다.

iqr = q3 - q1

print(f"IQR: {iqr}")
# IQR: 4.0

 


 

이번 포스팅에서는 기초 통계 분석의 개념과 중요성, 주요 통계 지표들을 정리했다. 하지만 주요 지표를 숫자로만 봐서는 데이터의 특징 및 구조를 직관적으로 이해하기 어려울 수 있다. 이러한 지표들은 시각화와 함께 확인할 때 더욱 효과적으로 데이터의 패턴과 인사이트를 파악할 수 있다. 다음 포스팅에서는 데이터 시각화 기법에 대해 자세히 다룰 예정이다.