連続確率分布

連続確率分布#

正規分布#

確率変数Xが平均μ、分散σ2の正規分布(normal distribution)に従うとは、Xの確率密度関数が

P(x|μ,σ2)=12πσexp{(xμ)22σ2},<x<

で与えられることをいい、この分布をN(μ,σ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|α,β)=1Γ(α)1β(xβ)α1ex/β, x>0

である。αはshape parameter、βはscale parameterと呼ばれ、α>0,β>0である。

尺度変換Y=X/βを行うと、Yの分布はβf(βy|α,β)となり

f(y|α)=1Γ(α)yα1ey, y>0

となる。

尺度変換λ=1/βを行った

f(x|α,λ)=λαΓ(α)tα1eλx,x>0

という定義も使われる(λは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 function)

Γ(α)=0yα1eydy
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

χ2分布#

データの二乗和が従う確率分布のこと。標準正規分布に従う確率変数Xiの二乗和Zi=inXi2自由度nのカイ2乗分布(chi-square distribution with n degrees of freedom)に従う(nは自然数)

Zχ(n)2

カイ2乗分布の密度関数は

f(x)=1Γ(n/2)(12)n/2xn/21exp{x2},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