確率密度関数の生成

正規分布を例に,Rで確率密度関数を生成してみます.


まずは準備

> N <- 100				# 各系列の長さ
> mean <- 0; sd <- 0.5		# 分布のパラメータ
> x <- ppoints(N)			# 0から1までの100分位点


確率密度関数の作成とグラフ化

> y <- qnorm(x, mean, sd)	# 分布を x : (1-x) に分割する値を返す
> z <- dnorm(y, mean, sd)	# yにおける密度関数の値を返す
> plot(y, z)

プロットの結果は以下のようになります.

確率の計算

> calcZ <- function(x){ dnorm(x, mean, sd)}		# 密度関数の定義
> integrate(calcZ, - sd, sd)					# ±1SD の範囲に入る確率
0.6826895 with absolute error < 7.6e-15
> integrate(calcZ, -2 * sd, 2 * sd)				# ±2SD の範囲に入る確率
0.9544997 with absolute error < 1.8e-11

こんな感じに,かの有名な0.683とか0.955とかが返されてますね.

        • -

参考
Rにおける確率分布 (RjpWiki) http://www.okada.jp.org/RWiki/?R%A4%CB%A4%AA%A4%B1%A4%EB%B3%CE%CE%A8%CA%AC%C9%DB
Rで学ぶデータサイエンス ベイズ統計データ解析, 姜 興起, 2010, 共立出版