シリンダ集合

  • こちらでシリンダ集合なるものについて教えてもらっている
  • 確率過程の話の一部分に相当する
  • よく知らない用語がたくさんあるので、コードにできるかどうかを試してみて、理解を前に進めたい
  • シリンダ集合の構成方法としてコイン投げがあるので、これはベルヌーイ試行とする
  • 無限のものは適当に上限を設けて、集合の全体は「仮」のものを作り
  • 部分集合は「一部をsampling」することとする
  • 2通り考えたけれど、後者、かな?
# シリンダ集合の要素をひとまず100個作る
N <- 100
# 各要素のためのコイン投げの試行回数に便宜上の上限を入れる
N.max <- 10000
# シリンダ集合Cを作る。要素は(何回投げて、0,1がそれぞれ何回だったか)
C <- list()
for(i in 1:N){
tmp <- c(0,0)
# この要素のための試行回数をランダムに決める
# 試行回数0、もあり??
n.max <- sample(0:N.max,1)
# ランダムトライアル
trial <- sample(0:1,n.max,replace=TRUE)
# 0,1、の回数を数えて、納める
tmp[2] <- sum(trial)
tmp[1] <- n.max-tmp[2]
C[[i]] <- tmp
}
# 試行回数に便宜上の上限を入れる
N.max <- 1000
# コイン投げする
trials <- sample(0:1,N.max,replace=TRUE)
# 1が出た回数を数える
cums <- cumsum(trials)
# 0が出た回数を計算する
zeros <- 1:N.max - cums
# (0,1)の結果(Cの要素)を行とする行列にする
C <- cbind(zeros,cums)
plot(C)
# Omegaはその部分集合
Omega <- C[sample(1:N.max,sample(1:N.max,1),replace=TRUE),]