ケィオスの時系列解析メモランダム

時系列解析,生体情報学,数学・物理などの解説です.

【Rで確率モデル】確率密度関数と確率分布関数

世の中には正規分布とか,指数分布とか,ワイブル分布とかいろいろな分布に従う現象があります.確率的な現象が従う分布の関数形を特定すると,背後にある生成メカニズムを考えるヒントになるので,分布のことを理解しておくと役に立ちます.今回は,Rで確率分布を描いたりする方法を紹介します.

 「確率分布」という用語はその意味が曖昧なので,ここでは,「確率密度関数」,「確率分布関数」という呼び方を使います.以下では,連続的な区間の値をとる連続確率変数を考えます.

確率密度関数 (上)と確率分布関数 (下).確率密度関数の赤い部分の面積が,確率分布関数の値に対応する.

確率密度関数

 正規分布は,\mu\sigmaをパラメタとして,

  \displaystyle f(x) = \frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{(x-\mu)^2}{2 \sigma^2}}

で与えられます.これは,正規分布確率密度関数です.

 確率密度関数 \displaystyle f(x)が与えられたとき,確率を求めたいのであれば区間を考える必要があります.例えば, \displaystyle f(x)に従う確率変数Xが, a < X < b区間の値をとる確率は,

  \displaystyle {\rm Prob}\, (a < X < b) = \int_a^b \!\! f(x) \, dx

で与えられます.

確率分布関数

 確率密度関数 \displaystyle f(x)とすれば,確率分布関数 \displaystyle F(x)

  \displaystyle F(x) = \int_{-\infty}^x \!\! f(\xi) \, d\xi

となります.この両辺を微分すると,

  \displaystyle f(x) = \frac{d F(x)}{dx}

となります.

Rで確率密度関数はdと確率分布関数はp

 Rで確率密度関数を扱うコマンドの最初の文字はd,確率分布関数を扱うコマンドの最初の文字はpです.その後に分布を示す文字列が付きます.

 例えば,正規分布 (normal distribution)の場合は,normを付けます.そして,

  • 確率密度関数を表すコマンドは,d+norm=dnorm
  • 確率分布関数を表すコマンドは,p+norm=pnorm

です.

 おまけですが,確率分布関数の逆関数を表すコマンドは,q+norm=qnormになります.

 以下は,確率密度関数,確率分布関数,確率分布関数の逆関数を描くRスクリプトの例です.

mu <- 1
sig <- 2
par(mfrow=c(3,1),mar=c(5,5,2,2))
curve(dnorm(x,mu,sig),xlim=c(mu-4*sig,mu+4*sig),ylab="f(x)",main="Probability Density Function",lwd=2,col=4)
curve(pnorm(x,mu,sig),xlim=c(mu-4*sig,mu+4*sig),ylab="F(x)",main="Probability Distribution Function",lwd=2,col=4)
curve(qnorm(x,mu,sig),xlim=c(0,1),ylab=expression(paste(F^{-1},"(x)")),main="Probability Distribution Function",lwd=2,col=4)

これを実行すると,以下の図が描かれます.

Rスクリプトの実行例

最後に

 次回は,他の分布や,疑似乱数の生成について説明します.