統計学 – 正規分布

統計学 – 正規分布

概要

連続確率分布の1つである正規分布について解説します。

確率密度関数

確率変数 $X$ が次のような確率密度関数をもつとき、$X$ はパラメータ $\mu, \sigma^2$ の正規分布 (normal distribution) またはガウス分布 (Gaussian distribution) に従うという。 確率変数 $X$ がパラメータ $\mu, \sigma^2$ の正規分布に従うとき、$X \sim N(\mu, \sigma^2)$ と表す。

$$ f_X(x) = \frac{1}{\sqrt{2 \pi \sigma^2}} \exp \left( -\frac{(x – \mu)^2}{2 \sigma^2} \right), x \in \mathbb{R} $$

確率密度関数の要件を満たしている

$$ \begin{aligned} \int_{-\infty}^{\infty} \frac{1}{\sqrt{2 \pi \sigma^2}} \exp \left( -\frac{(x – \mu)^2}{2 \sigma^2} \right) dx &= \int_{-\infty}^\infty \frac{1}{\sqrt{2 \pi \sigma^2}} \exp \left( -\frac{(t – \mu)^2}{2 \sigma^2} \right) dt \\ &= \frac{1}{\sqrt{2 \pi} \sigma} \int_{-\infty}^\infty \exp(-u^2) \sqrt{2} \sigma du \quad \because u = \frac{t – \mu}{\sqrt{2} \sigma} と置換積分 \\ &= \frac{1}{\sqrt{\pi}} \int_{-\infty}^\infty \exp(-u^2) du \quad \because ガウス積分 \\ &= \frac{1}{\sqrt{\pi}} \sqrt{\pi} \\ &= 1 \end{aligned} $$

累積確率関数

$$ \begin{aligned} P(X \le x) &= \int_{-\infty}^x \frac{1}{\sqrt{2 \pi \sigma^2}} \exp \left( -\frac{(t – \mu)^2}{2 \sigma^2} \right) dt \\ &= \frac{1}{\sqrt{2 \pi} \sigma} \int_{-\infty}^\frac{x – \mu}{\sqrt{2} \sigma} \exp(-u^2) \sqrt{2} \sigma du \quad \because u = \frac{t – \mu}{\sqrt{2} \sigma} と置換積分 \\ &= \frac{1}{\sqrt{\pi}} \int_{-\infty}^\frac{x – \mu}{\sqrt{2} \sigma} \exp(-u^2) du \\ &= \frac{1}{\sqrt{\pi}} \left( \int_{-\infty}^0 \exp(-u^2) du + \int_{0}^\frac{x – \mu}{\sqrt{2} \sigma} \exp(-u^2) du \right) \\ &= \frac{1}{\sqrt{\pi}} \left( \frac{\sqrt{\pi}}{2} + \int_{0}^\frac{x – \mu}{\sqrt{2} \sigma} \exp(-u^2) du \right) \quad \because ガウス積分 \\ &= \frac{1}{2} + \frac{1}{2} \frac{2}{\sqrt{\pi}} \int_{0}^\frac{x – \mu}{\sqrt{2} \sigma} \exp(-u^2) du \\ &= \frac{1}{2} \left(1 + \text{erf}\left(\frac{x – \mu}{\sqrt{2} \sigma}\right) \right) \quad \because \text{erf} の定義 \\ \end{aligned} $$

期待値

$$ \begin{aligned} E[X] &= \frac{1}{ \sigma \sqrt{2 \pi}} \int_{-\infty}^\infty x \exp \left( -\frac{(x – \mu)^2}{2 \sigma^2} \right) dx \\ &= \frac{\sqrt{2} \sigma}{\sqrt{2 \pi} \sigma} \int_{-\infty}^\infty (\sqrt{2} \sigma t + \mu) \exp \left( -t^2 \right) dx \quad \because t = \dfrac {x – \mu} {\sqrt 2 \sigma} で置換積分 \\ &= \frac{1}{\sqrt{\pi}} \left( \sqrt{2} \sigma \int_{-\infty}^\infty t \exp(-t^2) dt + \mu \int_{-\infty}^\infty \exp(-t^2) dt \right) \\ &= \frac{1}{\sqrt{\pi}} \left( \sqrt{2} \sigma \cdot 0 + \mu \sqrt{\pi} \right) \quad \because ガウス積分 \\ &= \mu \end{aligned} $$

分散

$$ \begin{aligned} E[X^2] &= \frac{1}{ \sigma \sqrt{2 \pi}} \int_{-\infty}^\infty x^2 \exp \left( -\frac{(x – \mu)^2}{2 \sigma^2} \right) dx \\ &= \frac{\sqrt{2} \sigma}{\sqrt{2 \pi} \sigma} \int_{-\infty}^\infty (\sqrt{2} \sigma t + \mu)^2 \exp \left( -t^2 \right) dx \quad \because t = \dfrac {x – \mu} {\sqrt 2 \sigma} で置換積分 \\ &= \frac{1}{\sqrt{\pi}} \left( 2 \sigma^2 \int_{-\infty}^\infty t^2 \exp(-t^2) dt + 2 \sqrt{2} \sigma \mu \int_{-\infty}^\infty t \exp(-t^2) dt + \mu^2 \int_{-\infty}^\infty \exp(-t^2) dt \right) \\ &= \frac{1}{\sqrt{\pi}} \left( 2 \sigma^2 \frac{\sqrt{\pi}}{2} + 2 \sqrt{2} \sigma \mu \cdot 0 + \mu^2 \sqrt{\pi} \right) \\ &= \sigma^2 + \mu^2 \end{aligned} $$

よって、分散は

$$ \begin{aligned} Var[X] &= E[X^2] – (E[X])^2 \\ &= \sigma^2 + \mu^2 – \mu^2 \\ &= \sigma^2 \end{aligned} $$

標準偏差

$$ Std[X]= \sqrt{Var[X]} = \sigma $$

積率母関数

$$ \begin{aligned} m_X(t) &= E[e^{tX}] \\ &= \frac{1}{\sqrt{2 \pi} \sigma} \int_{-\infty}^\infty e^{tx} \exp \left( -\frac{(x – \mu)^2}{2 \sigma^2} \right) dx \\ &= \frac{1}{\sqrt{2 \pi} \sigma} \int_{-\infty}^\infty \exp \left( tx -\frac{(x – \mu)^2}{2 \sigma^2} \right) dx \\ &= \exp \left(\mu t + \frac{\sigma^2 t^2}{2} \right) \int_{-\infty}^\infty \frac{1}{\sqrt{2 \pi} \sigma} \exp \left( -\frac{(x – (\mu + \sigma^2 t))^2}{2 \sigma^2} \right) dx \\ &= \exp \left(\mu t + \frac{\sigma^2 t^2}{2} \right) \int_{-\infty}^\infty f_X(x) dx \quad \because パラメータ \mu + \sigma^2 t, \sigma^2 の正規分布 \\ &= \exp \left(\mu t + \frac{\sigma^2 t^2}{2} \right) \end{aligned} $$

scipy.stats の正規分布

scipy.stats.norm で正規分布に従う確率変数を作成できます。

In [1]:
import numpy as np
import seaborn as sns
from matplotlib import pyplot as plt
from scipy.stats import norm

sns.set(style="white")

X = norm()

サンプリング

In [2]:
x = X.rvs(size=5)
print(x)
[ 0.49353417  1.45683727 -2.78100417 -0.28630157 -0.79504348]

確率密度関数

In [3]:
x = np.linspace(-10, 10, 100)
y = X.pdf(x)

fig, ax = plt.subplots()
ax.plot(x, y)
ax.grid()

plt.show()

累積分布関数

In [4]:
x = np.linspace(-10, 10, 100)
y = X.cdf(x)

fig, ax = plt.subplots()
ax.plot(x, y)
ax.grid()

plt.show()

統計量

In [5]:
print("mean", X.mean())
print("var", X.var())
print("std", X.std())
mean 0.0
var 1.0
std 1.0