- こちらのシリーズの補助メモ
- ある関数があって、その関数はa個の引数をとり、b個のスカラー値からなる値の組を返すとする
- 何かを量的に評価したいときには、b=1個のスカラー値を返し、その値の大小を比べることができることが便利(「点数」をつけること)
- 大小を比べることができることは、「順序」を与えることができること
- 確率と順序
- 確率は事象に与えられたスカラー量であって、「0以上」であって、「全部足すと1」である
- 確率は「スカラー量」であって、順序をつけられるので、何かしらの「強弱」を評価するのに便利
- 例
- N個の要素からn個取り出して戻し、m個取り出して戻した。n個の中にもm個の中にも含まれた要素の個数kについて考える
- すべての要素が同確率で取り出されるものとしてシミュレーションしてみる
N <- 10
n <- 5
m <- 7
n.iter <- 100000
X.n <- X.m <- matrix(0,n.iter,N)
for(i in 1:n.iter){
X.n[i,sample(1:N,n)] <- 1
X.m[i,sample(1:N,m)] <- 1
}
X.sum <- X.n + X.m
zeros <- ones <- twos <- matrix(0,n.iter,N)
zeros[which(X.sum == 0)] <- 1
ones[which(X.sum == 1)] <- 1
twos[which(X.sum == 2)] <- 1
n.zeros <- apply(zeros,1,sum)
n.ones <- apply(ones,1,sum)
n.twos <- apply(twos,1,sum)
par(mfcol=c(1,3))
hist(n.zeros)
hist(n.ones)
hist(n.twos)
n.iter.zeros <- apply(zeros,2,sum)
n.iter.ones <- apply(ones,2,sum)
n.iter.twos <- apply(twos,2,sum)
n.iter.zeros
n.iter.ones
n.iter.twos
n.iter.zeros/n.iter
n.iter.ones/n.iter
n.iter.twos/n.iter
a0 <- (1-n/N)*(1-m/N)
a1 <- 1-a0-a2
a2 <- (n/N) *(m/N)
a0
a1
a2
-
- 今あるグラフがあり、そこに2個のノードがあるという。から距離以内にある点の集合をとする。以下のようなベン図でいうところの、、、の個数の分布を知りたい
library(gplots)
g1 <- sample(1:10,3)
g2 <- sample(1:10,5)
venn(list(g1,g2))
-
- N個の要素からn,m個抜き出して、その共通要素の数を数える、というのは、に関する特殊な場合と考えることもできる
- 中央に一列にN個のノードが並び、その中央の列の左側にたくさんのノードがある。左側ノードの次数はすべてnであって、左側ノードに連結するエッジはすべて、中央の列のノードと連結する。他方、中央の列の右側にもたくさんのノードがあって、これらの次数はmであって、同様に中央の列のノードとの間にエッジがある
- このようなグラフにおいて、左側のノードから距離が1、右側のノードから距離が1という範囲を設定すればよい
- 別のタイプのグラフについては、ある制約を与えた上で、ランダムなグラフが作れると、ある程度のことはできるだろう