가우시안 피팅

6289 단어 math파이썬scipy

정규 분포와 그 피팅



벌써 몇번이나 등장하고 있다 선형 회귀 에서는 데이터의 분포에 피트하는 선의 이론식을 최소 제곱법으로 구했습니다. 선형 회귀 등 지금까지 등장 다른 분석의 많은 정규 분포를 가정 합니다.

피팅에 빼놓을 수 없는 수법이라고도 할 수 있는 최소 제곱법은, 플롯된 데이터를 이론식에 피팅시킴으로써 이론식 중에 포함되는 정수가 얼마인지, 거기로부터 다양한 정보를 얻을 수 있습니다. 예를 들어 각 점에 맞는 직선의 기울기를 구하고 싶을 때, 정규 분포를 가정하는 분포의 통계량을 구하고 싶을 때 등 다양한 장면에서 사용됩니다.

정규 분포(normal distribution)는 또 이름을 가우스 분포(Gaussian distribution)라고 하며, 평균값 부근에 피크가 집적되는 데이터의 분포를 나타내는 연속 변수에 관한 확률 분포인 것은 과거 기사 에서도 설명했습니다. 정규 분포에 대한 근사 곡선(피팅 곡선)의 함수를 구하는 것을 가우시안 피팅이라고 합니다. 예를 들어 SciPy 의 강력한 수학 함수를 구사함으로써 가우시안 피팅을 쉽게 실현할 수 있습니다.

정규 분포에 근사한 샘플을 얻는다.



우선은 정규 분포에 근사한 샘플을 구합니다. 다음과 같이 100을 평균으로 500개의 데이터를 생성합니다.
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import pylab as plb

# 正規分布に近似したサンプルを得る
# 平均は 100 、標準偏差を 1 、サンプル数を 500 とする
sample = norm.rvs(loc=100,scale=1,size=500)

print (sample) # =>
#[ 101.02975418   99.95689958  100.8338816    99.32725219  101.50090014
#   99.29039034  101.64895275  100.45222206  100.22525394   98.8036744
#  100.73576941   99.32705948  100.52278215  102.38383015   98.28409264
#   99.22632512  100.84625978   99.69653993  100.9957202    97.97846995
#   99.49731157  100.89595798  101.3705089   101.15367469  100.26415751
#   99.14143516  100.21385338   99.69883406   99.68494407  100.70380005
#  100.73544699  100.3434308    99.50291518   99.61483734  100.92201666
#  100.98639356  100.36362462   98.39298021   98.39137284  101.54821395
#  100.2748115   100.78672853   99.79335862   98.8123562   100.57942641
#  100.03497218   99.98368219  100.45979578   99.32342998   98.08908529
#  ...

피팅 및 시각화



피팅은 한 가지 방법입니다.
param = norm.fit(sample)

print (param)
# => (99.92158820017579, 1.0339291481971331)

파라미터가 구해졌으므로 나머지는 이것을 플롯하면 OK입니다.
x = np.linspace(95,105,100)
pdf_fitted = norm.pdf(x,loc=param[0], scale=param[1])
pdf = norm.pdf(x)
plt.figure
plt.title('Normal distribution')
plt.plot(x, pdf_fitted, 'r-', x,pdf, 'b-')
plt.hist(sample, normed=1, alpha=.3)
plt.show()
plt.savefig("image.png")



잘 작동했습니다.

최소 제곱법을 사용하여 공학상 등의 문제를 해석한 예 등은 매거에 여가가 없습니다. 또, 정규 분포를 가정한 모델로 그 전제가 흔들리면 데이터 분석 공정이 망가지기 때문에, 확률 분포나 검정에 대해서 잘 이해해 두는 것이 중요합니다.

좋은 웹페이지 즐겨찾기