【Python】正規分布を作成する方法

  • URLをコピーしました!

今回は、統計学で最も使用する分布図である正規分布について紹介します。

目次

正規分布とは

正規分布(Normal Distribution)は統計学で最も使用される確率分布です。ガウス分布とも呼ばれます。

正規分布は以下の式で表されます。

\[ f(x) = \frac{1}{\sqrt{2\pi \sigma^2}} \exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right) \]

平均\(\mu\)(ミュー)と標準偏差\(\sigma\)(シグマ)の2つのパラメータによって値が決まります。

平均\(\mu\)は分布の位置、標準偏差\(\sigma\)は分布の幅に対応しています。

このことから正規分布は\(N(\mu, \sigma^2)\)と表記されることもあります。

また、平均0, 標準偏差1 すなわち\(N(0, 1)\)のときの正規分布を標準正規分布といいます。

正規分布を作成

それではPythonで正規分布を作成する方法を紹介します。

正規分布を作成するには、SciPyのstatsモジュールを使用します。

使い方は以下の通りです。

normが正規分布、pdfが確率密度関数を表しています。

stats.norm.pdf(x, loc, scale)

x: 確率変数
loc: 平均
scale: 標準偏差

標準正規分布 \(N(0, 1)\) を作成してみましょう。

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

# 確率変数の準備
x = np.linspace(-3, 3, 100)
# yに正規分布の値を格納
y = stats.norm.pdf(x, loc=0, scale=1)

# 正規分布を描画
plt.plot(x, y)

実行結果

パラメータの変更

平均\(\mu\)と標準偏差\(\sigma\)を変更してみて、グラフがどのように変化するのか見てみましょう。

以下3パターン作成してみます。

  • \(N(0, 1)\)
    標準正規分布
  • \(N(2, 1)\)
    平均\(\mu\)を変更したパターン
  • \(N(0, 2)\)
    標準偏差\(\sigma\)を変更したパターン

以下、コードです。

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

# 確率変数の準備
x = np.linspace(-5, 5, 100)

# N(0, 1)標準正規分布
y1 = stats.norm.pdf(x, loc=0, scale=1)
# 正規分布を描画
plt.plot(x, y1, label="N(0, 1)")

# N(2, 1)平均μを変更したパターン
y2 = stats.norm.pdf(x, loc=2, scale=1)
# 正規分布を描画
plt.plot(x, y2, label="N(2, 1)")

# N(0, 2)標準偏差σを変更したパターン
y3 = stats.norm.pdf(x, loc=0, scale=2)
# 正規分布を描画
plt.plot(x, y3, label="N(0, 2)")
# 凡例の表示
plt.legend()

実行結果

まとめ

今回は正規分布について、Pythonで出力する方法を紹介しました。

正規分布は平均\(\mu\)と標準偏差\(\sigma\)により、決まります。

正規分布は統計学で非常によく登場する分布なので、マスターしていきましょう!

ここまで読んでくださりありがとうございます。

参考

おすすめ教材

米国データサイエンティストが教える統計学超入門講座【Pythonで実践】 icon 【世界で55万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜 icon

他のUdemyの講座が気になる方はこちら

¥3,630 (2024/04/08 23:55時点 | Amazon調べ)
よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

エンジニア。20代。組み込みエンジニアとして働き始めるも、働き方や業務内容に限界を感じ、 AI,Web3エンジニアを目指して勉強中。 エンジニアとして思うことや、学んだことを発信します。

目次