連続確率分布

連続確率分布#

正規分布#

確率変数\(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)\)で表す。

Hide 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

Hide 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()
../../_images/74748d6319851f84525ba4917189b521363983f47f62ea20e1bacd5db08a7f7a.png
Hide 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()
../../_images/3e8193d97e6179dbc931b0b62c0f3676c5ef5b06534c4218027a8bd14a85c8f2.png

ここで\(\Gamma(\alpha)\)ガンマ関数(gamma function)

\[ \Gamma(\alpha) = \int^{\infty}_0 y^{\alpha-1} e^{-y} dy \]
Hide 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()
../../_images/f28760ef5b7278bd567135e79912a018f1b1d8a5c23c1745cd218194fc85ee74.png

\(\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 \]
Hide 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()
../../_images/ecfba27059a8734223de73f277db69c03068ff4155958daf82148364ec2aa9cd.png