理論関連事項

統計学の基本事項,確率分布の詳細,各種データ解析法の理論的背景について.

ある事象が生起するまでの間隔を連続確率変数Xで表したときに,その確率変数Xが従う確率分布を指数分布 (exponential distribution) という.幾何分布が離散的な待ち時間分布であるのに対し,指数分布は連続的な待ち時間分布である.事故の発生間隔,電球の寿命,下水管の耐用年数,銀行窓口への来客間隔等,日常生活における様々な事象のモデル化に利用することができる.パラメーターは単位時間中における事象の平均生起回数λであり,指数分布は Ex(λ) にて略記される.指数分布の形状は唯一のパラメーターλによって決定される.確率密度関数は以下で与えられる.

\begin{eqnarray*}f(x)=\lambda e^{-\lambda x}\tag{1}\end{eqnarray*}

確率変数Xの範囲は以下で与えられる.

\begin{eqnarray*}0\leq x < \infty\tag{2}\end{eqnarray*}

モーメント母関数は 't < λ' の範囲でのみ存在し,以下で与えられる.

\begin{eqnarray*}M_X(t)=\left(1-\frac{t}{\lambda}\right)^{-1}\ \ \ \ (t<\lambda)\tag{3}\end{eqnarray*}

期待値は以下で与えられる.期待値を事象が生起するまでの平均待ち時間間隔と解釈すると,ある単位時間中における事象の期待発生回数であるλの逆数が期待値と等しいのは理解し易い.

\begin{eqnarray*}E(X)=\frac{1}{\lambda}\tag{4}\end{eqnarray*}

分散は以下の式で与えられる.

\begin{eqnarray*}V(X)=\frac{1}{\lambda^2}\tag{5}\end{eqnarray*}

モーメント母関数,期待値および分散の導出

モーメント母関数は以下のように求める.

\begin{eqnarray*}M_X(t)&=&E(e^{tx})\\&=&\int_{0}^{\infty}e^{tx}\lambda e^{-\lambda x}dx\\&=&\int_{0}^{\infty}\lambda e^{(t-\lambda)x}dx\\&=&\left[\frac{\lambda}{t-\lambda}e^{(t-\lambda)x}\right]_0^\infty\tag{6}\end{eqnarray*}

ここで,以上の式はxの係数 't-λ' が以下の条件を満たすときのみ発散しない.

\begin{eqnarray*}t-\lambda<0\tag{7}\end{eqnarray*}

そこで,モーメント母関数はtが上の条件を満たすときのみ,以下のように求めることができる.

\begin{eqnarray*}M_X(t)=\frac{\lambda}{t-\lambda}(0-1)=\left(1-\frac{t}{\lambda}\right)^{-1}\tag{8}\end{eqnarray*}

期待値および分散はモーメントを利用して求める.モーメントを用いず,定義から計算する場合は部分積分が必要となる.モーメント母関数の1階微分および2階微分は以下のようになる.

\begin{eqnarray*}M_X'(t)=\frac{1}{\lambda}\left(1-\frac{t}{\lambda}\right)^{-2}\tag{9}\end{eqnarray*}
\begin{eqnarray*}M_X''(t)=\frac{2}{\lambda^2}\left(1-\frac{t}{\lambda}\right)^{-3}\tag{10}\end{eqnarray*}

以上より,原点まわりの1次モーメントを用いて期待値は以下のように求まる.

\begin{eqnarray*}E(X)=M_X'(0)=\frac{1}{\lambda}\tag{11}\end{eqnarray*}

分散は原点まわりの1次モーメントおよび2次モーメントを用いて以下のように求める.

\begin{eqnarray*}V(X)&=&E(X^2)-[E(X)]^2\\&=&M_X''(0)-[M_X'(0)]^2\\&=&\frac{2}{\lambda^2}-\left(\frac{1}{\lambda}\right)^2\\&=&\frac{1}{\lambda^2}\tag{12}\end{eqnarray*}

指数分布における原点まわりのr次のモーメント

指数分布の原点まわりのr次のモーメントμrには以下で表される便利な公式がある.覚えておくと簡単にモーメントを算出することができる.

\begin{eqnarray*}\mu_r=\frac{r!}{\lambda^r}\tag{13}\end{eqnarray*}

指数分布のポアソン分布からの導出

指数分布は離散型の待ち時間分布である幾何分布と様々な類似性ならびに関連性をもつが,ポアソン分布とも密接な関係を有する.指数分布はポアソン分布から導出することができる.まず,ポアソン分布とはある固定された時間間隔において対象とする事象の期待発生回数をτとして以下で与えられる確率分布である.ここで確率変数Xは事象の生起回数である.

\begin{eqnarray*}f(x)=\frac{e^{-\tau}\tau^x}{x!}\tag{14}\end{eqnarray*}

したがって,ある固定された時間間隔 '(0, t]' において事象がx回生起する確率は,単位時間中の事象の期待発生回数をλとして以下で表される.

\begin{eqnarray*}f(x)=\frac{e^{-\lambda t}(\lambda t)^x}{x!}\tag{15}\end{eqnarray*}

ここで,変数Tをある事象が初めて生起するまでの待ち時間であるとする.そうすると,1度たりとも事象が起きていない確率は 'P(T>t)' で表され,また,1度たりとも事象が起きていないということは上式で 'x=0' のときに相当するので,以下の関係が成立する.

\begin{eqnarray*}P(T>t)=e^{-\lambda t}\tag{16}\end{eqnarray*}

ここで,初めて事象が起きる確率は上の,1度たりとも事象が起きていないということの余事象となる.すなわち,初めて事象が生起する確率 'P(T≤t)' は以下のように計算される.

\begin{eqnarray*}P(T\leq t)=1-P(T>t)=1-e^{-\lambda t}\tag{17}\end{eqnarray*}

この式は確率を示しており,tを連続確率変数とする累積分布関数とみなすことができる.よって,上式を積分することによって以下の式が導かれる.

\begin{eqnarray*}f(t)=\lambda e^{-\lambda t}\tag{18}\end{eqnarray*}

これはまさに,パラメーターをλとする指数分布の確率密度関数に他ならない.

指数分布とガンマ分布

ポアソン分布と指数分布の他にも,指数分布はガンマ分布とも関連性がある.指数分布はガンマ分布の特別な形状のひとつであり,ガンマ分布のパラメーターαおよびβがそれぞれ,1および '1/λ' のときに対応する.

\begin{eqnarray*}Ga\left(1,\frac{1}{\lambda}\right)\sim Ex(\lambda)\tag{19}\end{eqnarray*}

無記憶性

幾何分布同様,指数分布にも記憶の欠如または無記憶性といわれる以下の性質が備わっている.

\begin{eqnarray*}P(X>n+m\ |\ X>m)=P(X>n)\tag{20}\end{eqnarray*}

これは,ある事象が時点mにおいて生起していないという条件の下において,さらにn経過した後に依然として事象が生起していない確率はmを考慮しない場合の確率,すなわち,単に時点nにおいて事象が生起していない確率と等しいということを意味する.すなわち,対象とするある事象が起こらない (または,起こる) 確率にそれまでの結果 (経過時間) は影響しないということを示している.連続確率分布において,指数分布は記憶の欠如または無記憶性を有する唯一の分布である.

確率密度関数の形状

指数分布の確率密度関数の形状は以下のようになる.x=0 のとき,y の値はパラメーターと等しくなる.

tpd_exponential_distribution_01.svg

図を生成するためのRソースコード

#!/usr/bin/env Rscript

main=function()
{
	svg("tpd_exponential_distribution_01.svg",width=8,height=4)
	par(plt=c(0.2,0.9,0.2,0.9))
	x=seq(0,5,0.01)
	plot(x,type="n",xaxs="i",yaxs="i",xlim=c(0,5),ylim=c(0,2),bty="l",xlab="",ylab="Probability density",las=1,family="Arial")
	lines(x,dexp(x,rate=2),lty=1,lwd=1.6,col="#2b4b65")
	lines(x,dexp(x,rate=1),lty=1,lwd=1.6,col="#ff8c00")
	lines(x,dexp(x,rate=0.6),lty=1,lwd=1.6,col="#e12f3c")
	lines(x,dexp(x,rate=0.2),lty=1,lwd=1.6,col="#00cc99")
	axis(side=1,at=0:5,tck=1.0,lty="dotted",lwd=0.5,labels=NA)
	axis(side=2,tck=1.0,lty="dotted",lwd=0.5,labels=NA)
	labels=c("Ex(2)","Ex(1)","Ex(0.6)","Ex(0.2)")
	legend("topright",legend=labels,lty=1,lwd=1.6,col=c("#2b4b65","#ff8c00","#e12f3c","#00cc99"),cex=0.8,bg="#ffffff",box.lty=3)
	dev.off()
}

main()
Hatena Google+