連続確率分布#
正規分布#
確率変数\(X\)が平均\(\mu\)、分散\(\sigma^2\)の正規分布(normal distribution)に従うとは、\(X\)の確率密度関数が
\[
P(x|\mu, \sigma^2)
= \frac{1}{\sqrt{2\pi}\sigma}
\exp \left\{ - \frac{(x-\mu)^2}{2\sigma^2} \right\}
, \hspace{1em} -\infty < x < \infty
\]
で与えられることをいい、この分布を\(N(\mu, \sigma^2)\)で表す。
Show code cell source
import matplotlib.pyplot as plt
from scipy.stats import norm
np.random.seed(0)
x = np.linspace(-5, 5, 100)
pdf = norm.pdf(x)
fig, ax = plt.subplots()
ax.plot(x, pdf)
ax.set(title="Normal(μ=0, σ^2=1)", xlabel="x", ylabel="probability density")
fig.show()
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[1], line 4
1 import matplotlib.pyplot as plt
2 from scipy.stats import norm
----> 4 np.random.seed(0)
5 x = np.linspace(-5, 5, 100)
6 pdf = norm.pdf(x)
NameError: name 'np' is not defined
ガンマ分布#
ガンマ分布(gamma distribution)は非負の実数直線上の代表的な確率分布。その確率密度関数は
\[
f(x|\alpha, \beta)
= \frac{1}{\Gamma(\alpha)}
\frac{1}{\beta}
\left( \frac{x}{\beta} \right) ^{\alpha-1}
e^{-x/\beta}
, \ x > 0
\]
である。\(\alpha\)はshape parameter、\(\beta\)はscale parameterと呼ばれ、\(\alpha > 0, \beta > 0\)である。
尺度変換\(Y = X /\beta\)を行うと、\(Y\)の分布は\(\beta f(\beta y|\alpha, \beta)\)となり
\[
f(y|\alpha) = \frac{1}{\Gamma(\alpha)}
y^{\alpha-1}
e^{-y}
, \ y > 0
\]
となる。
尺度変換\(\lambda = 1 /\beta\)を行った
\[
f(x|\alpha, \lambda) = \frac{\lambda^\alpha}{\Gamma(\alpha)}
t^{\alpha-1}
e^{-\lambda x}
,\quad x > 0
\]
という定義も使われる(\(\lambda\)はrateと呼ばれる)
\(a=1\)のとき、ガンマ分布は指数分布と一致する。指数分布はmemoryless
Show code cell source
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import gamma
x = np.linspace(0, 20, 100)
fig, ax = plt.subplots()
for alpha in [1, 3, 5, 10]:
y = gamma.pdf(x, alpha)
ax.plot(x, y, label=fr"$\alpha={alpha}$")
ax.legend()
ax.set(title=r"Gamma distribution", xlabel=r"$x$")
fig.show()
Show code cell source
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import gamma
x = np.linspace(0, 20, 100)
fig, ax = plt.subplots()
for alpha in [1, 5, 10]:
for lambda_ in [1, 5, 10]:
y = gamma.pdf(x, alpha, scale=lambda_)
ax.plot(x, y, label=fr"$\alpha={alpha}, \lambda={lambda_}$")
ax.legend()
ax.set(title=r"Gamma distribution", xlabel=r"$x$")
fig.show()
ここで\(\Gamma(\alpha)\)はガンマ関数(gamma function)
\[
\Gamma(\alpha)
= \int^{\infty}_0 y^{\alpha-1} e^{-y} dy
\]
Show code cell source
from scipy.special import gamma
x = np.linspace(0, 10, 10)
y = gamma(x)
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set(title=r"Gamma function $\Gamma(\alpha)$", xlabel=r"$\alpha$")
fig.show()
\(\chi^2\)分布#
データの二乗和が従う確率分布のこと。標準正規分布に従う確率変数\(X_i\)の二乗和\(Z_i = \sum_i^n X_i^2\)は自由度\(n\)のカイ2乗分布(chi-square distribution with n degrees of freedom)に従う(\(n\)は自然数)
\[
Z \sim \chi^2_{(n)}
\]
カイ2乗分布の密度関数は
\[
f(x) = \frac{1}{\Gamma(n/2)} \left( \frac{1}{2} \right)^{n/2} x^{n/2-1} \exp \{ - \frac{x}{2} \}, x > 0
\]
Show code cell source
from scipy.stats import chi2
x = np.linspace(0, 20, 100)
dfs = [1, 3, 5, 10]
fig, ax = plt.subplots()
for df in dfs:
y = chi2.pdf(x, df=df)
ax.plot(x, y, label=f"df={df}")
ax.legend()
ax.set(title=r"$\chi^2$ distribution")
fig.show()