반응형

파이썬(Python)으로 정규분포 그래프를 그리는 방법은 거의 대부분 matplotlib를 사용하여 그릴 수 있다. 그리기에 앞서, 정규분포에 대한 설명을 하고자 한다.

 

정규분포

정규분포는 가우시안 분포라고도 하며, 정규분포는 통계학이나 데이터 분석 때 정말 많이 사용하는 기본이 되는 분포라고 할 수 있다. 우리가 흔히 아는 T-분포, F-분포, 카이제곱 분포도 결국에는 정규분포가 성립이 되어야 사용할 수 있는 분포다. 거기에, 정규분포는 평균(mu)과 표준편차(sigma)를 알기만 하면 정규분포 그래프를 그릴 수 있다.

 

정규 분포에 대한 정의는 위키백과에서 아래와 같이 정의하고 있다.

정규분포는 가우스 분포라고도 하며, 연속 확률 분포의 하나이다. 정규분포는 수집된 자료의 분포를 근사하는 데에 자주 사용되며, 중심극한정리에 의하여 독립적인 확률 변수들의 평균은 정규분포에 가까워지는 성질이 있기 때문이다. 평균이 0이고, 표준편차가 1인 정규분포 N(0,1)을 표준정규분포라고 한다.

 

파이썬(Python) 정규분포 그래프 그리기

파이썬으로 정규 분포 그리는 방법은 정말 간단하다.

 

1. 라이브러리 import

2. x축 설정

3. pyplot을 이용한 x, y축 범주 및 그래프 설정

4. 평균, 표준편차를 사용한 그래프 그리기(scipy.stats)

 

위의 4단계로 진행할 수 있다.

정규 분포는 확률 밀도 함수를 사용하는 방법과 누적분포함수를 사용하는 방법 2가지가 있다.

 

먼저, 확률 밀도 함수를 사용하는 방법이다.

 

1. 라이브러리 import

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

 

2. x축 설정

x = np.arange(-1000, 8000, 0.001)

 

3. pyplot을 이용한 x, y축 범주 및 그래프 설정

plt.figure(figsize = (25, 10))
plt.title('normal distribution')
plt.xlabel('mu')
plt.ylabel('f(x)')
plt.grid()

 

4. 평균, 표준편차를 사용한 그래프 그리기(scipy.stats)

plt.plot(x, norm.pdf(x, loc=621.782719186785, scale=225.927589137865))
plt.show()

 

 

위와 같이 그래프가 나오게 된다.

 

두 번째로, 누적분포함수인데, 1번부터 3번까지는 동일하다. 근데, 4번에서 norm.pdf 대신에 norm.cdf를 사용하면 된다.

plt.plot(x, norm.cdf(x, loc=621.782719186785, scale=225.927589137865))
plt.show()

 

 

전체 소스 코드

1. 확률밀도함수

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

x = np.arange(-1000, 8000, 0.001)
plt.figure(figsize = (25, 10))
plt.title('g')
plt.xlabel('mu')
plt.ylabel('f(x)')
plt.grid()
plt.plot(x, norm.pdf(x, loc=621.782719186785, scale=225.927589137865))
plt.show()

 

2. 누적분포함수

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

x = np.arange(-1000, 8000, 0.001)
plt.figure(figsize = (25, 10))
plt.title('g')
plt.xlabel('mu')
plt.ylabel('f(x)')
plt.grid()
plt.plot(x, norm.cdf(x, loc=621.782719186785, scale=225.927589137865))
plt.show()
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기