サムネがコーヒーの記事は書きかけです。

ガウス積分と正規分布 【Pythonで学ぶ統計】

正規分布については以下の記事にまとめています。

ガウス積分とは

ガウス積分とは、以下のように定義される積分のことです。

$$\int_{-\infty}^{\infty}e^{-\alpha x^2}dx=\sqrt{\frac{\pi}{\alpha}}$$

ガウス積分の証明

初めに、求めるガウス積分の値をIとします。

このとき、

$$I=\int_{-\infty}^{\infty}e^{-\alpha x^2}dx=\int_{-\infty}^{\infty}e^{-\alpha y^2}dy$$

が成り立つことから、

$$I^2=\iint_{-\infty}^{\infty}e^{-\alpha (x^2+y^2)}dxdy$$

と表すことができます。

ここで、

$$x=r\cos{\theta},y=r\sin{\theta}$$

とおくとヤコビアンは

$$\begin{bmatrix}\frac{\partial x}{\partial r} & \frac{\partial x}{\partial \theta}\\\frac{\partial y}{\partial r}&\frac{\partial x}{\partial \theta}\\\end{bmatrix}=\begin{bmatrix} cos{\theta}&-rsin{\theta} \\sin{\theta}&rcos{\theta}\\\end{bmatrix}$$

$$J_f=r$$

であるから、極座標変換を行い

$$I^2 = \int_{0}^{\infty}re^{-\alpha (r^2)}dr\int_{0}^{2\pi}d\theta$$

を得ます。

上記の式を計算すると

$$I^2 = 2\pi\left[\frac{e^{-\alpha r^2}}{2\alpha}\right]^\infty_0=\frac{\pi}{\alpha}$$

$$(\lim_{r \to \infty}2\pi\frac{e^{-\alpha r^2}}{2\alpha}=0より)$$

よって

$$I=\int_{-\infty}^{\infty}e^{-\alpha x^2}dx=\sqrt{\frac{\pi}{\alpha}}$$

となります。

正規分布との関係

$$f(x;\mu,\sigma^2)=\dfrac{1}{\sqrt{2\pi\sigma^2}}\exp(-\dfrac{(x-\mu)^ 2}{2\sigma^ 2})$$

ここで、正規分布の確率密度関数を改めてよく見てみます。

$$x-\mu=t$$

とおくと全区間積分は

$$\int_{-\infty}^{\infty}f(x;\mu,\sigma^2)=\dfrac{1}{\sqrt{2\pi\sigma^2}}\int_{-\infty}^{\infty}e^{-\frac{t^2}{2{\sigma}^2}}dt$$

と表されます。

ここで、ガウス積分を用いると、

$$\int_{-\infty}^{\infty}e^{-\frac{t^2}{2{\sigma}^2}}dt=\sqrt{2\sigma^2\pi}$$

であるから、

$$\int_{-\infty}^{\infty}f(x;\mu,\sigma^2)=1$$

が成り立ちます。

せっかくなので、Pythonを使ってゴリ押しで計算してみたいと思います。

全区間積分の値は標準偏差と平均の値によらないとわかったので、標準正規分布を用いて全区間積分を行ってみます。

import sympy as sp 
import numpy as np 
sp.init_printing(use_unicode=True)
x = sp.symbols("x")
sigma = 1
mu = 0
f = 1/(sp.sqrt(np.pi*2))*sp.exp(-(x**2)/2)
print(sp.integrate(f,(x,'-oo','oo')).evalf())

計算結果

1.00000000000000

ちゃんと1になってますね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です