2025. 3. 20. 22:51ㆍ데이터 분석/데이터 사이언스
4. 기술적 데이터 분석 (Descriptive Analytics)
기술적 데이터 분석(Descriptive Analytics)은 수집된 데이터를 요약하고, 정리하여 현재의 상태를 이해하는 분석 기법입니다. 데이터를 통해 특징을 파악하고, 패턴을 발견하며, 의미 있는 통계를 도출하는 과정이 포함됩니다.
이 분석 기법은 의사 결정의 기초가 되며, 데이터를 해석하고 시각화하여 쉽게 이해할 수 있도록 돕습니다.
4.1 평균, 중앙값, 최빈값 등 기초 통계량
기초 통계량(Basic Statistics)은 데이터를 요약하는 데 사용되며, 데이터의 중심 경향성을 나타내는 지표입니다.
1) 평균 (Mean)
평균은 데이터의 전체 합을 개수로 나눈 값으로, 데이터의 중심값을 나타냅니다.
- 장점: 데이터의 대표값을 쉽게 파악할 수 있음
- 단점: 이상치(outlier)에 영향을 받기 쉬움
import numpy as np
data = [10, 20, 30, 40, 50]
mean_value = np.mean(data)
print("평균:", mean_value) # 출력: 30.0
2) 중앙값 (Median)
중앙값은 데이터를 정렬했을 때 중앙에 위치한 값으로, 이상치의 영향을 받지 않습니다.
median_value = np.median(data)
print("중앙값:", median_value) # 출력: 30.0
3) 최빈값 (Mode)
최빈값은 가장 많이 등장하는 값을 의미합니다.
from scipy import stats
mode_value = stats.mode([1, 2, 2, 3, 3, 3, 4])
print("최빈값:", mode_value.mode[0]) # 출력: 3
- 평균과 중앙값의 차이점
- 데이터가 **정규분포(대칭적)**일 경우 평균 ≈ 중앙값
- 데이터가 **비대칭(왜도)**일 경우 중앙값이 평균보다 더 신뢰할 수 있음
4.2 표준 편차, 분산 등 데이터 변동성 분석
데이터 변동성(Variability)은 데이터가 평균을 중심으로 얼마나 퍼져 있는지를 나타내는 지표입니다.
1) 분산 (Variance)
분산은 각 데이터와 평균 간의 거리를 제곱하여 평균을 낸 값으로, 데이터의 흩어진 정도를 나타냅니다.
variance_value = np.var(data)
print("분산:", variance_value) # 출력: 200.0
2) 표준 편차 (Standard Deviation)
표준 편차는 분산의 제곱근으로, 데이터가 평균으로부터 얼마나 퍼져 있는지를 나타냅니다.
std_dev = np.std(data)
print("표준 편차:", std_dev) # 출력: 14.14
- 표준 편차가 클수록 데이터가 넓게 분포
- 표준 편차가 작을수록 데이터가 평균 근처에 모여 있음
4.3 데이터의 분포 및 패턴 분석
데이터의 분포(Distribution)는 값들이 데이터셋 내에서 어떻게 분포되어 있는지를 나타냅니다.
1) 정규 분포 (Normal Distribution)
정규 분포는 평균을 중심으로 대칭적인 종 모양을 띠는 분포입니다.
- 많은 자연 현상에서 나타나는 대표적인 분포
- 평균과 중앙값, 최빈값이 동일
import seaborn as sns
import matplotlib.pyplot as plt
data = np.random.normal(50, 10, 1000) # 평균 50, 표준편차 10인 정규분포 데이터 생성
sns.histplot(data, kde=True)
plt.title("정규 분포 히스토그램")
plt.show()
2) 왜도(Skewness)와 첨도(Kurtosis)
- 왜도(Skewness): 데이터의 비대칭성을 측정 (0이면 대칭, +면 오른쪽으로 치우침, -면 왼쪽으로 치우침)
- 첨도(Kurtosis): 데이터의 분포가 얼마나 뾰족한지 나타냄
from scipy.stats import skew, kurtosis
print("왜도:", skew(data))
print("첨도:", kurtosis(data))
4.4 시계열 데이터 분석 기초
시계열 데이터(Time Series Data)는 시간의 흐름에 따라 수집된 데이터입니다.
1) 시계열 데이터의 특징
- 추세(Trend): 시간이 지남에 따라 증가하거나 감소하는 패턴
- 계절성(Seasonality): 일정한 주기로 반복되는 패턴
- 주기성(Cyclicality): 특정 패턴이 있지만 일정한 주기가 아님
- 불규칙성(Irregularity): 예측할 수 없는 랜덤한 요소
2) 이동 평균 (Moving Average)
이동 평균은 일정 기간 동안의 평균을 계산하여 변동성을 줄이고 추세를 파악하는 데 사용됩니다.
import pandas as pd
# 예제 데이터 생성
date_rng = pd.date_range(start="2023-01-01", periods=100, freq="D")
df = pd.DataFrame({"date": date_rng, "value": np.random.randn(100).cumsum()})
df.set_index("date", inplace=True)
# 이동 평균 계산
df["moving_avg"] = df["value"].rolling(window=7).mean()
# 시각화
plt.figure(figsize=(10, 5))
plt.plot(df["value"], label="Original Data")
plt.plot(df["moving_avg"], label="7-day Moving Average", color="red")
plt.legend()
plt.title("시계열 데이터와 이동 평균")
plt.show()
3) 자기상관 (Autocorrelation)
자기상관(Autocorrelation)은 이전 값과 현재 값 사이의 관계를 분석하는 기법입니다.
from pandas.plotting import autocorrelation_plot
autocorrelation_plot(df["value"])
plt.title("자기상관 분석")
plt.show()
- 자기상관 계수가 높으면 과거 데이터가 미래를 예측하는 데 유용함
- 금융, 날씨 예측, 수요 예측 등의 분석에 활용됨
정리
기술적 데이터 분석(Descriptive Analytics)은 데이터를 요약하고 패턴을 파악하는 기본적인 분석 기법입니다.
✅ 평균, 중앙값, 최빈값을 활용해 데이터의 중심값을 파악
✅ 표준 편차와 분산으로 데이터 변동성 분석
✅ 히스토그램, 왜도, 첨도 분석을 통해 데이터 분포 이해
✅ 시계열 데이터 분석으로 패턴 및 추세 파악