ランダムか、集中か
水田の調査圃場において、正方形に区切った調査区画毎にニカメイガの卵塊が次のように見つかったとする。
egg <- c(2,4,1,1,
4,0,3,3,
4,3,0,1,
3,2,1,1,
2,1,4,3,
2,2,1,0,
1,0,5,1,
2,1,3,2,
2,2,2,2,
4,1,1,2,
3,2,0,1,
1,2,1,0)
もし、ニカメイガの産卵が先に卵塊があるか否かに影響されず、ランダムに行われるのであれば、その分布は二項分布に従うことが予想される。
また、今回の例のように、任意の個体の特定の調査区への飛来確率pが非常に小さく*1、総個体数Nが大きい場合、二項分布をポアソン分布で近似できる。
よって、得られた分布のポアソン分布への適合度を確認することで分布がランダムか否かを確認できる。
また、ポアソン分布は分散と平均値が等しいという性質を持つことから、得られた分布の分散と平均の比(実際には)が1に等しいか、大きいか、小さいかを確認することでもポアソン分布かどうかの判断ができる。
ポアソン分布への適合度を確認する
まず、得られた分布から度数分布表を作成する。そして、分布がポアソン分布に従っていた場合の各度数の理論値を求める。ポアソン分布はパラメータとして母平均のみを持つ。ここでは平均値を母平均の不偏推定量として用いる。
>
>
> (e.table <- table(egg))
egg
0 1 2 3 4 5
6 15 14 7 5 1
>
> (e.table <- data.frame(count = c(e.table, 0, 0),
+ p = dpois(0:7, mean(egg))))
count p
1 6 0.156583374
2 15 0.290331673
3 14 0.269161656
4 7 0.166356857
5 5 0.077113335
6 1 0.028596195
7 0 0.008837019
8 0 0.002340758
>
> e.table$p[8] <- 1 - sum(e.table$p[1:7])
比率は合計が1になるように、分布に現れなかった項まで計算し、余分な分はまとめておく。
>
> (e.table <- cbind(e.table, phi = e.table[,2] * length(egg)))
count p phi
1 6 0.156583374 7.5160020
2 15 0.290331673 13.9359203
3 14 0.269161656 12.9197595
4 7 0.166356857 7.9851291
5 5 0.077113335 3.7014401
6 1 0.028596195 1.3726174
7 0 0.008837019 0.4241769
8 0 0.003019892 0.1449548
>
> (e.table <- rbind(e.table[1:4,], lapply(e.table[5:8,], sum)))
count p phi
1 6 0.1565834 7.516002
2 15 0.2903317 13.935920
3 14 0.2691617 12.919759
4 7 0.1663569 7.985129
5 6 0.1175664 5.643189
ここで理論値が小さな項目をまとめるのは、観測値は0と1の間をとらないため、後にカイ二乗統計量を計算する際にこれが大きくなりすぎるのを防ぐため、ということのようである。
次にカイ二乗統計量=観測値と理論値の差の自乗の総和を求める。
>
> (e.table <- cbind(e.table, d = abs(e.table$count - e.table$phi)))
count p phi d
1 6 0.1565834 7.516002 1.5160020
2 15 0.2903317 13.935920 1.0640797
3 14 0.2691617 12.919759 1.0802405
4 7 0.1663569 7.985129 0.9851291
5 6 0.1175664 5.643189 0.3568109
>
> (e.table <- cbind(e.table, d2 = e.table$d^2))
count p phi d d2
1 6 0.1565834 7.516002 1.5160020 2.2982620
2 15 0.2903317 13.935920 1.0640797 1.1322655
3 14 0.2691617 12.919759 1.0802405 1.1669196
4 7 0.1663569 7.985129 0.9851291 0.9704794
5 6 0.1175664 5.643189 0.3568109 0.1273140
>
> (e.table <- cbind(e.table, "d2/phi" = e.table$d2/e.table$phi))
count p phi d d2 d2/phi
1 6 0.1565834 7.516002 1.5160020 2.2982620 0.30578251
2 15 0.2903317 13.935920 1.0640797 1.1322655 0.08124799
3 14 0.2691617 12.919759 1.0802405 1.1669196 0.09032054
4 7 0.1663569 7.985129 0.9851291 0.9704794 0.12153584
5 6 0.1175664 5.643189 0.3568109 0.1273140 0.02256065
> (chi <- sum(e.table$"d2/phi"))
[1] 0.6214475
そして得られたカイ二乗統計量を検定にかける。自由度は階級数-2=5となる。
>
> pchisq(chi, 3, lower.tail = FALSE)
[1] 0.8915054
以上より分布がポアソン分布に従わないとは言えない。
ニカメイガの卵塊はポアソン分布に近い分布をするだろう(実際にはプロットしてみたほうが良い)。