経験分布に理論分布を重ね書きする

関数 hist() を用いて 理論分布と比較する時には probability=T なる オプションを付加すると各棒グラフの棒の(高さ)×(幅)が、それぞれの階級に サンプルが落ちた相対頻度(確率)となる。 ( なお、 probability=T のオプションを追加するときなどに、加えて ylimの指定をするときは、指定する値に注意する必要がある。 大きな区間を指定するとグラフが見えないことがある。) 以下に例を示す。

乱数の個数は固定して例示しているが、いろいろな個数でグラフを描画してみよ。

連続型分布の場合

data <- rexp(1000,10)           # 平均1/10の指数分布の場合
hist( data, probability=T )     # 確率に直した、頻度分布の作図
xx <- seq(min(data),max(data),length=1000)
                                # 密度関数値を調べるポイント
                                #  初項と末項、項数を指定している
lines( xx, dexp(xx,10) )        # 密度関数の直線の図への追加
title("指数乱数のヒストグラムへの理論確率密度関数の重ね描き")

離散型分布の場合

data <- rpois(1000,3)                # 平均3のポアソン分布の場合

hist( data, breaks=seq(-0.5,max(data)+0.5), probability=T ) 
                                     # 確率に直した、頻度分布の作図
xx <- seq(min(data),max(data),by=1)  # 密度関数値を調べるポイント
                                     #  初項と末項、項差を指定している
lines( xx, dpois(xx,3) )             # 密度関数の直線の図への追加
title("ポアソン乱数のヒストグラムへの理論確率密度関数の重ね描き")

分布関数の描画の方法

cdf.compare(x, distribution)
なる関数で、データx の経験分布関数と、分布distributionの理論分布関数を 比較した図を作成してくれる。

# 平均10の指数分布の場合
cdf.compare(rexp(100,10), distribution = "exponential",rate=10)

# 平均20、標準偏差5の正規分布の場合
cdf.compare(rnorm(100,20,5), distribution = "normal",mean=20,sd=5)

関庸一 Home Page へ