【Python入門】ガウス関数|正規分布をグラフ化する

ガウス関数|正規分布をグラフ化する_アイキャッチプログラミング
スポンサーリンク

統計分析で使用される「ガウス関数」は、Pythonで実装・グラフ化することができます。

本記事では、Pythonを使用したガウス関数の実装とグラフ化方法について、詳しくご説明します。

こんな人に読んでほしい
  • Python初心者の人
  • Pythonによるガウス関数の実装とグラフ化方法について学びたい人
スポンサーリンク

ガウス関数

ガウス関数(gaussian function)とは、データ平均\(\mu\)、データ分散\(\sigma ^{2}\)を用いて、下式で表される関数です。

\(f\left( x\right) =a\exp \left\{ -\dfrac{\left( x-\mu \right) ^{2}}{2\sigma ^{2}}\right\}\)

ガウス関数の実装

NumPyを使用した、ガウス関数の実装例を以下にご紹介します。

#input
import numpy as np

def gauss(x,a,mu,sigma):
    return a*np.exp(-(x-mu)**2 / (2*sigma**2))

x1 = gauss(0,1,0,1)
x2 = gauss(2,0.5,2,2)

print("gauss(0,1,0,1)=",x1)
print("gauss(2,0.5,2,2)=",x2)
#output
gauss(0,1,0,1)= 1.0
gauss(2,0.5,2,2)= 0.5

実装した関数を使用した、ガウス関数のグラフ化例を以下にご紹介します。

#input
import numpy as np
import matplotlib.pyplot as plt

def gauss(x,a,mu,sigma):
    return a*np.exp(-(x-mu)**2 / (2*sigma**2))

fig = plt.figure()

A = fig.add_subplot(111)
A.grid(color="k",linestyle="dotted")
A.set_title("gauss function", fontsize = 16)
A.set_xlabel("x", fontsize = 14)
A.set_ylabel("y", fontsize = 14)

A.set_xlim([-8, 8])
A.set_ylim([0, 1.2])

x = np.arange(-8, 8, 0.1)

y1 = gauss(x,1,0,1)
y2 = gauss(x,0.5,2,2)
y3 = gauss(x,0.5,-2,2)

A.plot(x, y1, color="deeppink", label="a=1.0, μ=0, σ=1")
A.plot(x, y2, color="lime", label="a=0.5, μ=2, σ=2")
A.plot(x, y3, color="aqua", label="a=0.25, μ=2, σ=2")

A.legend()
plt.show()
ガウス関数

正規分布

確率統計で多用される正規分布とは、下式で表される、ガウス関数を無限区間で積分した結果です。

\(N\left( \mu ,\sigma ^{2}\right) =\dfrac{1}{\sqrt{2\pi \sigma }}\exp \left\{ -\dfrac{\left( x-\mu \right) ^{2}}{2\sigma ^{2}}\right\}\)

正規分布の実装とグラフ化例を以下にご紹介します。

#input
import numpy as np
import matplotlib.pyplot as plt

def N(x,mu,sigma):
    return (1/np.sqrt(2*np.pi*sigma))*np.exp(-(x-mu)**2 / (2*sigma**2))

fig = plt.figure()

A = fig.add_subplot(111)
A.grid(color="k",linestyle="dotted")
A.set_title("normal distribution", fontsize = 16)
A.set_xlabel("x", fontsize = 14)
A.set_ylabel("y", fontsize = 14)

A.set_xlim([-4, 4])
A.set_ylim([0, 1])

x = np.arange(-4, 4, 0.01)

y1 = N(x,0,0.2)
y2 = N(x,0,1)
y3 = N(x,-2,0.5)
y4 = N(x,2,0.5)

A.plot(x, y1, color="red", label="μ=0, σ=0.2")
A.plot(x, y2, color="blue", label="μ=0, σ=1")
A.plot(x, y3, color="green", label=" μ=-2, σ=0.5")
A.plot(x, y4, color="orange", label=" μ=2, σ=0.5")

A.legend()
plt.show()
normal distribution
スポンサーリンク

まとめ

この記事では、Pythonを使用したガウス関数の実装とグラフ化方法について、ご説明しました。

本記事を参考に、ぜひ試してみて下さい。

スポンサーリンク

参考

Python学習用おすすめ教材

Pythonの基本を学びたい方向け

統計学基礎を学びたい方向け

Pythonの統計解析を学びたい方向け

おすすめプログラミングスクール

Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。

私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。

現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。

無料体験ができますので、まずは試してみてください!

\まずは無料体験!/
スポンサーリンク
タイトルとURLをコピーしました