正規分布(normal distribution)と指数関数(exponential distribution)の畳み込み積分

手計算でチェックしたかったので過程をメモ。

以下の二つの関数を畳み込み積分した場合、

  f(x) = \begin{cases}  \lambda \exp(-\lambda x) & (x\ge 0) \\  0 & (x<0)  \end{cases}
  \displaystyle g(x) = \frac{1}{\sqrt{2\pi}\sigma}\exp\left\{-\frac{(x-\mu)^2}{2\sigma^2}\right\}

Exponentially modified Gaussian distribution
にあるようにex-Gaussian distributionと呼ばれる分布が出来る。
  \displaystyle f(x)\ast g(x) = \frac{\lambda}{2}e^{\lambda \mu + \frac{1}{2}\lambda^2\sigma^2}e^{-\lambda x}\mbox{erfc}\left(\frac{\mu+\lambda \sigma^2 -x}{\sqrt{2}\sigma}\right)
ここでerfcはガウスの相補誤差関数(complementary error function)で以下のように定義されている。erfはガウスの誤差関数。
  \displaystyle \mbox{erfc}(x) = 1-\mbox{erf}(x) = \frac{2}{\sqrt{\pi}} \int ^{+\infty}_{x} e^{-t^2}dt

Convolution of the normal and exponential probability density functions


以下計算、
  \displaystyle f(x)\ast g(x) = \int^{+\infty}_{-\infty} dx'f(x')g(x-x')\\[1.0ex]  =\int^{+\infty}_{0} dx' \lambda \exp(-\lambda x') \frac{1}{\sqrt{2\pi}\sigma}\exp\left\{-\frac{(x-x'-\mu)^2}{2\sigma^2}\right\}\\[1.0ex]  = \frac{\lambda}{\sqrt{2\pi}\sigma} \int^{+\infty}_{0} dx' \exp\left[-\frac{1}{2\sigma^2} \left\{x'^2+2x'(\mu-x+\lambda \sigma^2)+(x-\mu)^2 \right\} \right]\\[1.0ex]  = \frac{\lambda}{\sqrt{2\pi}\sigma} \int^{+\infty}_{0} dx'\exp\left\{-\frac{1}{2\sigma^2}(x'-x+\mu+\lambda \sigma^2)^2 + \frac{1}{2}\lambda^2 \sigma^2 -\lambda x + \lambda \mu \right\}\\[1.0ex]  = \frac{\lambda}{\sqrt{2\pi}\sigma} e^{\lambda \mu + \frac{1}{2}\lambda^2\sigma^2}e^{-\lambda x}\int^{+\infty}_{0} dx'\exp\left\{-\frac{1}{2\sigma^2}(x'-x+\mu+\lambda \sigma^2)^2 \right\}

ここで、変数変換
  \displaystyle z = \frac{1}{\sqrt{2}\sigma}(x'-x+\mu+\lambda \sigma^2), \; dz' = \frac{dx'}{\sqrt{2}\sigma}
とガウスの相補誤差関数の定義を使えば、
  \displaystyle f(x)\ast g(x) = \frac{\lambda}{\sqrt{\pi}} e^{\lambda \mu + \frac{1}{2}\lambda^2\sigma^2}e^{-\lambda x}\int^{+\infty}_{\frac{\mu+\lambda \sigma^2-x}{\sqrt{2}\sigma}} dz e^{-z^2}\\[1.0ex]  = \frac{\lambda}{2}e^{\lambda \mu + \frac{1}{2}\lambda^2\sigma^2}e^{-\lambda x}\mbox{erfc}\left(\frac{\mu+\lambda \sigma^2 -x}{\sqrt{2}\sigma}\right)\\
が得られる。

Python code


Pythonに用意されてるモジュールについてはnumpy.convolveも参照

結果はこんな感じ。
convolution_test

9月27日

想像を超えた撮影方法に驚き…キラウエア火山の溶岩の写真

自動車のネット接続に向けて、乗り出したシスコ

プラシーボ効果の謎を進化論が説明する
エネルギーコストのかかる免疫システムのスイッチを仮想的に再現する。

「地球外文明」の数がわかるインフォグラフィック

本日、アート トークを生中継━エスパス ルイ・ヴィトン東京『Madness is part of Life』展|イズムコンシェルジュ

透明度が高すぎて浮いてる気持ちになる世界の海や河川の写真34枚
メモメモ。

保護中: 8月21日

このコンテンツはパスワードで保護されています。閲覧するには以下にパスワードを入力してください。

カテゴリー: 未分類 | コメントを読むにはパスワードを入力してください。

保護中: 8月20日

このコンテンツはパスワードで保護されています。閲覧するには以下にパスワードを入力してください。

カテゴリー: 未分類 | コメントを読むにはパスワードを入力してください。