確率的に単位線分を分割し続けて作る Random Exchangeable Partitions

  • 長さ1の単位線分をあるルールで確率的に分割していけば、それもRandom Exchangeable Partitionsとなる
  • Poisson-Dirichlet Processと呼ばれる方法がその一つで、よく研究されている
  • 何度でも分割し続けるルールとして、単位線分から出発して、分割点を1点とり二分する。生じた2つの線分のうち片方(たとえば1に近い方)はそれ以上いじらないことにして、もう片方をまた二分する。これはいつまでも繰り返せる。この二分点の取り方として、ベータ乱数を使う方法は確率過程として扱いやすく、この方法をPoisson-Dirichlet Processと言う
  • ベータ乱数を発生させる元となるベータ分布としてBeta(1-\alpha,\theta+i\alpha);\theta \ge 0, 0 \le \alpha < 1,i=1,2,...とするという。ただしベータ乱数の発生に当たり、i回目ごとに用いるベータ分布のパラメタが\alphaに応じて変化するように設計されていることに注意。また、この定義の中で\theta=0,\alpha>0,\theta>0,\alpha=0の2つの場合は特殊形として、単純なモデルとして取り上げられることがある
    • また\alpha=0,\theta=1の場合は、Beta(1,1)になり、一様乱数での分割の繰り返しになる
  • Rでやってみる
theta <- runif(1)
alpha <- runif(1)

n.iter <- 100
beta <- rep(0,n.iter)
for(i in 1:n.iter){
	beta[i] <- rbeta(1,1-alpha,theta + i * alpha)
}
P <- rep(0,n.iter)
P[1] <- beta[1]
for(i in 2:n.iter){
	P[i] <- (1-sum(P[1:(i-1)])) * beta[i]
}

plot(P)

S <- cumsum(P)

plot(S,type="b",pch=20,cex=0.1,ylim=c(0,1))
    • 特に\alhap=0の場合は
theta <- runif(1)
alpha <- 0

n.iter <- 10
beta <- rep(0,n.iter)
for(i in 1:n.iter){
	beta[i] <- rbeta(1,1-alpha,theta + i * alpha)
}
P <- rep(0,n.iter)
P[1] <- beta[1]
for(i in 2:n.iter){
	P[i] <- (1-sum(P[1:(i-1)])) * beta[i]
}

plot(P)

S <- cumsum(P)

plot(S,type="b",pch=20,cex=0.1,ylim=c(0,1))
    • また、\theta=0の場合は
theta <- 0
alpha <- runif(1)

n.iter <- 10
beta <- rep(0,n.iter)
for(i in 1:n.iter){
	beta[i] <- rbeta(1,1-alpha,theta + i * alpha)
}
P <- rep(0,n.iter)
P[1] <- beta[1]
for(i in 2:n.iter){
	P[i] <- (1-sum(P[1:(i-1)])) * beta[i]
}
plot(P)

S <- cumsum(P)

plot(S,type="b",pch=20,cex=0.1,ylim=c(0,1))
  • Poisson-Dirichlet Processの別の見方
    • \alpha=0,\thetaでの分割は、長さ1の線分を確率的ルールで分割していくものと読み取れる。Stick-breaking processと称される理由である
    • 次のように中華料理店過程がある意味で(*)同じ分割をもたらす
    • 中華料理店過程ではi+1番目の客が、i番目までの客の着席状態に応じて、新しいテーブルに1人で座るか、既に客の居るテーブルのどれかに座るかを決める、というルールで着席状態が変化していく過程である
    • \alpha=0,\thetaの場合には
      • \frac{\theta}{i+\theta}の確率で新しいテーブルに着席し、\frac{m_j}{i + \theta}の確率でj番目のテーブルに着席するという確率過程のときに現れる整数分割(とそれに対応する単位線分分割)と同じであると言う。ただしm_jはi人まで着席が終わったときのj番目のテーブルの人数であり、\sum_{j=1}^k m_j = iである。ここでkはi番目までの客で着席者の居るテーブルの数である
    • \alha>0,\theta=0の場合には
      • \frac{k\alpha}{i}の確率で新しいテーブルに着席し、\frac{m_j-\alpha}{i}の確率でj番目のテーブルに着席する
    • この中華料理店過程で得られるランダムな分割はexchangeableなランダム分割になっており、size-biased ordering of the asymptotic block frequeiciesがstick-breakingで得られるものになることが知られている。"size-biased"というのは、「ある誰かしらを特定して、その人が座っているテーブルの人数割合」を調べる場合に使う用語である。そのようにすると、テーブルの人数割合は、割合の大きいテーブルが割合に比例して選ばれるので、そのようにして得られる割合の分布は、割合で重みづいた分布となるのだが、この分割の分野では、この点を考慮することがよくある