본문 바로가기

ChatGPT

정규분포(Normal Distribution)와 Python으로 데이터 시각화하기

728x90
반응형

1. 정규분포란?

정규분포는 통계학에서 가장 중요하고 널리 사용되는 분포 중 하나입니다. 이것은 종 모양의 곡선으로 표현되며, 평균을 중심으로 대칭이며 분포의 형태는 평균과 표준편차에 의해 결정됩니다. 정규분포는 다른 많은 현상들을 모델링하는 데 사용되며, 중심극한정리에 따라 자연 현상에서도 발생하는 경우가 많습니다.

2. 정규분포의 수학적 정의

정규분포는 평균(mu)과 표준편차(sigma)라는 두 매개변수로 정의됩니다. 확률 변수 X가 정규분포를 따른다고 할 때, 확률밀도함수(probability density function, PDF)는 다음과 같이 표현됩니다:

여기서:

  • $x$는 확률 변수의 값
  • $μ$는 평균
  • $σ$는 표준편차

3. 정규분포의 사용 분야

  1. 자연 현상 모델링: 자연 과학과 공학 분야에서는 정규분포를 사용하여 다양한 현상을 모델링합니다. 예를 들어, 천문학에서 별의 빛의 밝기, 지구의 지진 세기, 기후 데이터 등을 정규분포로 모델링할 수 있습니다.
  2. 품질 통제: 제조업에서 제품의 품질을 통제하고 검사할 때 정규분포를 사용합니다. 제품의 크기, 중량, 내구성 등이 정규분포를 따른다고 가정하며 이를 통해 품질 관리를 수행합니다.
  3. 금융 분야: 주식 시장, 금융 데이터 분석, 리스크 관리 등에서도 정규분포를 사용하여 가격 변동을 모델링하고 투자 전략을 개발합니다.
  4. 의학과 생물학: 생물학적 실험 결과나 환자 데이터를 분석할 때 정규분포를 사용합니다. 예를 들어, 인구의 키, 혈압, 혈당 농도 등이 정규분포를 따를 수 있습니다.


4. Python으로 정규분포 데이터 생성 및 시각화하기

Python을 사용하여 가상의 정규분포 데이터를 생성하고 이를 시각화하는 방법을 알아보겠습니다. 이를 위해 numpy와 matplotlib 라이브러리를 사용합니다.

import numpy as np
import matplotlib.pyplot as plt

# 평균과 표준편차 정의
mu = 0
sigma = 1

# 정규분포에서 샘플 데이터 생성
data = np.random.normal(mu, sigma, 1000)

# 히스토그램으로 데이터 시각화
plt.hist(data, bins=30, density=True, alpha=0.6, color='b')

# 확률밀도함수 그리기
x = np.linspace(-5, 5, 100)
pdf = (1/(sigma * np.sqrt(2 * np.pi))) * np.exp(-(x - mu)**2 / (2 * sigma**2))
plt.plot(x, pdf, 'r-', lw=2)

plt.title('정규분포 시각화')
plt.xlabel('값')
plt.ylabel('밀도')
plt.show()

위 코드는 평균이 0, 표준편차가 1인 정규분포를 따르는 1000개의 샘플 데이터를 생성하고 이를 히스토그램으로 시각화한 예시입니다.

이제 정규분포에 대한 기본적인 이해와 Python을 사용하여 데이터를 생성하고 시각화하는 방법을 알게 되었습니다. 이를 기반으로 데이터 분석 및 모델링에 정규분포를 적용할 수 있을 것입니다.

728x90
반응형