Y染色体とGalton-Watson過程

  • こちらでRandom Treeというのが、ブラウン運動と関係していたりする話を書いた
  • Random treeの根っこには、Y染色体遺伝的浮動を表したGalton-Watson過程というのがあるという
  • 世代nでのあるY染色体の本数がx(n)であるとき、x(n)本のそれぞれが平均mの子孫Y染色体を世代n+1に残すとして、その和を世代n+1のそのY染色体の本数とするというもの
    • X_{n+1} = \sum{i=1}^{X_n} p_iただし、p_iは平均mの乱数
    • ここでp_iは0,1,2...の乱数なのでポアソン分布を取ることにすれば以下のようになる
    • mが1より小さければ、いずれ必ず消滅する。mが1より大きければ、消滅しない確率は0ではない
    • ただし、離散的な過程なので、次世代が0になる確率は常にある

  • さて、分岐木としてのランダム木の何をブラウン運動と見るのかということを問題にする
  • ランダム木にルートがあって、そこから、深さ優先探索で探索し、葉ノードと節ノードについてたどる道筋に沿って、ルートノードからの距離を記録していくことにするとき、これをContour 関数と呼ぶ。葉ノードは1回しか訪れないが、節ノードは何度も訪れることとなる
  • このContour 関数とは別のもう一つの関数を作る。同じく深さ優先探索をしつつ、ノードに順序をつける。辞書式順序をつけると説明することもある。この辞書式順序のノード順でルートノードからの距離を測る。これがHight 関数と呼ばれるものである。節ノードも1度しか数えらえれない点が異なる
  • このHeight 関数(もしくはcontour関数)がブラウン運動するらしい
m.kid <- 1.5
n.iter <- 100
n <- 20

X <- matrix(0,n+1,n.iter)
for(ii in 1:n.iter){
	X[1,ii] <- 1

	for(i in 1:n){
		tmp <- rpois(X[i,ii],m.kid)
		#print(tmp)
		X[i+1,ii] <- sum(tmp)
	}
}
matplot(log10(X),type="l")