n <- 200 | # 個体数 |
m <- 10 | # メッシュ(m2 個) |
x <- runif(n) | # 一様乱数n個 |
y <- runif(n) | # 一様乱数n個 |
# | # |
count <- NULL | # count の定義 |
for(i in 1:m){ | # m 回の繰り返し |
n1 <- (1:n)[x < (i-1)/m] | # (i-1)/m 以下の乱数である番号 |
n2 <- (1:n)[x < i/m] | # i/m 以下の乱数である番号 |
nin <- n2[!n2 %in% n1] | # (i-1)/m から i/m の番号 |
yy <- y[nin] | # 上記 x 座標に対する y 座標 |
a <- hist(yy, breaks=0:m/m) | # yy を 0 から 1 まで 1/m きざみで区切る |
count <- c(count, a$counts) | # 区切った領域に入った個体の個数のベクトル |
} | # 繰り返しここまで |
mc <- max(count) | # メッシュ内の個数の最大値 |
xp <- 0:mc | # 個数の定義域 |
d <- factor(count, levels=xp) | # 個数が 0 の階級も含める |
table(d) | # メッシュ内個数の区分 |
s <- sum(table(d)) | # 総個数 |
m1 <- sum(xp*table(d)/s) | # カウント分布の平均 |
v1 <- sum(table(d)/s*(xp-m1)^2) | # カウント分布の分散 |
# | # |
op <- par(mfrow = c(1, 2)) | # 横に2つのグラフを並べる |
plot(x,y, col="red") | # 個体分布の表示 |
abline(h=0, v=0) | # 外枠 |
abline(h=1, v=1) | # 外枠 |
for(i in 1:m) abline(h=i/m, v=i/m, lty=2) | # メッシュ区分線 |
plot(xp, table(d)/s, type="h") | # 区分された分布のグラフ |
lam <- n/(m*m) | # 平均 |
yp <- dpois(xp, lam) | # ポアソン分布確率密度 |
points(xp, yp, type="b", col="red") | # ポアソン分布グラフ表示 |
par(op) | # グラフ表示もとに戻す |
title(main="区画内個体数へのポアソン分布のあてはめ(平均:2)") | # タイトル |
m1 | # カウント分布平均 |
v1 | # カウント分布分散 |
変数 X (カウント数) | x1 | x2 | x3 | x4 | x5 |
---|---|---|---|---|---|
確率 P    | p1 | p2 | p3 | p4 | p5 |
課題5:なわばりモデル,ハーレムモデル,家族モデルでパラメータの値を変えることにより, 配置が見た目でどのように
課題6:負の二項分布の確率密度は dnbinom(x, n, p) で与えられる.モーメント法を用いてパラメータ
n,p の値を推定し,この推定値を用いて,ハーレムモデルと家族モデルのカウント数分布に負の二項分布を
あてはめてみよ.
注)モーメント法:カウントデータの平均や分散が確率分布の平均や分散と等しいとおくことに
より,分布パラメータの値を推定すること.ポアソン分布のあてはめでは,カウントデータの平均が
ポアソン分布の平均 λ と等しいと考えて,ポアソン分布をあてはめた.