- 無限大()のRandom Exchangeable Partitions
- こんな方法(KingmanのPaintboxの方法)というのがある
- 1,2,...,Nという数列を長さ1の線分に見立てて、それを分割する
- ただし、Nは無限大なのでこの線分上には無限個の自然数が並んでいる
- これを有限個に区切って、そこには線分の長さに比例した数の自然数が帰属するとする。ただし、全体が無限個の自然数に対応するから、有限の長さの線分はどんなに短くても無限個の自然数が対応する
- このようにすると、無限個の自然数を有限個にしか分割できない
- 分割数を無限にする
- 無限個にある分割が有限の長さに対応するとそれを合算すると長さ1の線分に納まらない
- なので、無限個の分割には無限小の長さを対応付ける
- これを実現するために、長さ1の線分を有限個に分割し、そのうちの1つは、自然数が1個帰属する小さな分割の集まりとする。それ以外の分割線分には長さに応じた無限個の自然数が帰属するとする
- こうすることで、無限個のの長さの線分の集合があることを表現できる
- Exchangeableであることを考慮すれば、長さ1の線分を有限個に適当に分割し、無限分割用の線分を取り除ける。それ以外の線分は長さの順にならべても一般性を失わない
- そんな風にして無限個への分割を作成し
- さらに、無限個の自然数を割り当てることにする。ただし、無限個の自然数の割り当ては無限に続けなくてはならないので、適当な数までランダムに割り付けることにする
k <- 10
library(MCMCpack)
r <- rdirichlet(1,rep(1,k))
r. <- cumsum(r)
n <- 10^5
u <- runif(n)
my.label <- function(x){
tmp <- which(r. > x)
tmp[1]
}
lb <- unlist(sapply(u,my.label))
plot(r,c(table(lb)))
abline(0,n,col=2)
- このKingmanのPaintboxの方法は単位線分のタイリングとも称されるが、exchangeable random partitionとKingmanのpaintbox タイリングとは1対1対応することが知られている