確率分布を作ってみる

  • 離散的で均一な生起確率を持つ確率密度分布
    • 確率変数は、k個の異なる値をとることがあり、それ以外の値は取ることがない
k<-sample(1:100,1)
vs<-sample(1:100,k)
ps<-rep(1/k,k)
plot(vs,ps,type="h")
plot(sort(vs),cumsum(ps[order(vs)]),type="l",xlim=c(0,100))
  • 離散的で不均一な生起確率を持つ確率密度分布(1)
    • 確率変数は、k個の異なる値をとることがあり、それ以外の値は取ることがない
k<-sample(1:20,1)
vs<-sample(1:20,k)
ps<-runif(k)
ps<-ps/sum(ps)
plot(vs,ps,type="h")
plot(sort(vs),cumsum(ps[order(vs)]),type="l",xlim=c(0,20))
  • 離散的で不均一な生起確率を持つ確率密度分布(2)
    • 確率変数は、k個の異なる値をとることがあり、それ以外の値は取ることがない
k<-sample(1:100,1)
vs<-sample(1:100,k)
library(MCMCpack)
ps<-rdirichlet(1,rep(1,k))
sum(ps)
plot(vs,ps,type="h")
plot(sort(vs),cumsum(ps[order(vs)]),type="l",xlim=c(0,100))
  • 離散的で、あるルールに則った生起確率を持つ確率密度分布
    • 取りうる値は、0,1,2,...,Nのいずれか
    • 0 \le k \le Nを取る確率は_N C_k p^k (1-p)^k, 0 < p < 1に比例する
      • p(k) \propto choose(N,k)p^k (1-p)^k
      • 二項分布
N<-10
p<-runif(1)
ks<-0:N
ps<-choose(N,ks)*p^ks*(1-p)^(N-ks)
sum(ps)
#ps<-ps/sum(ps)
plot(ks,ps,type="b")
  • 連続的で、あるルールに則った生起確率を持つ確率密度分布(1)
    • 取りうる値は、0 \le x \le \inftyのいずれか
    • xがm倍になると、生起確率が半分になる
      • p(mx) = \frac{p(x)}{2}
      • p(x)=C 2^{-\frac{x}{m}},Cは定数
      • 指数分布
m<-3
x<-seq(from=0,to=10,length=100)
ps<-2^(-x/m)
# このpsは「全部合わせて1になるように補正していない」のであくまでも相対値
plot(x,ps,type="l")
  • 連続的で、あるルールに則った生起確率を持つ確率密度分布(2)
    • 取りうる値は、-\infty \le x \le \inftyのいずれか
    • 原点からの距離の2乗x^2がm倍になると、生起確率が半分になる
m<-3
x<-seq(from=-10,to=10,length=100)
ps<-2^(-x^2/m)
# このpsは「全部合わせて1になるように補正していない」のであくまでも相対値
plot(x,ps,type="l")
  • 確率分布の式と比べてみる