choose((v - 1),(Nout - 1))*(0.1*p)^(v - Nout)*(1 - 0.1*p)^(Nout - 1)*(1 - 0.1*p)
- (v-1)から(Nout-1)を取り出す場合の数 x 0.1pの確率で(v-Nout)回とって、(1-0.1p)の確率で(Nout-1)回とる、という計算のこと
- このように、全部でA回の試行をしたとき、確率pの事象がB回起こって、A-B回は起こらなかったときの確率分布が2項分布で、Rでは次のように計算する
dbinom(x=B,size=A,prob=p)
- ここで"binom"は二項分布を表す文字、"d"は確率『密度(density)』を表す接頭辞
- "binom"を付けた関数には以下がある
- "dbinom()"
- "pbinom()"
- "qbinom()"
- "rbinom()"
- 正規分布("norm"に対しては同様に"dnorm()""pnorm()""qnorm()""rnorm()"がある。以下色々な確率分布について、同様)
- さて、2項分布の関数"xbinom()"に戻ろう
- A,B,pを与えたときに、その生起確率は"dbinom(x=B,size=A,prob=p)"が与える。これは、確率密度分布(distribution)の"d"
A<-10
B<-3
pr<-0.4
dbinom(x=B,size=A,prob=pr)
B<-0:A
dbinom(x=B,size=A,prob=pr)
sum(dbinom(x=0:A,size=A,prob=pr))
cumsum(dbinom(x=B,size=A,prob=pr))
pbinom(q=B,size=A,prob=pr)
qbinom(p=0.5,size=A,prob=pr)
p<-seq(from=0,to=1,by=0.01)
qbinom(p=p,size=A,prob=pr)
plot(p,qbinom(p=p,size=A,prob=pr))
ntrial<-1000
rbinom(n=ntrial,size=A,prob=pr)
hist(rbinom(n=ntrial,size=A,prob=pr))
maxNout.num<-10
maxBatter.num<-20
kizami<-0.1
Nout.nums<-1:maxNout.num
Batter.nums<-1:maxBatter.num
hitps<-seq(from=0,to=1,by=kizami)
result<-result2<-array(0,c(length(Nout.nums),length(Batter.nums),length(hitps)))
dim(result)
for(i in 1:length(Nout.nums)){
Nout.num<-Nout.nums[i]
for(j in 1:length(Batter.nums)){
Batter.num<-Batter.nums[j]
for(k in 1:length(hitps)){
hitp<-hitps[k]
if(Nout.num<=Batter.num){
result[i,j,k]<-choose(Batter.num-1,Nout.num-1)*(1-hitp)^(Nout.num-1)*hitp^(Batter.num-(Nout.num-1))*(1-hitp)
result2[i,j,k]<-dbinom(x=Nout.num-1,size=Batter.num-1,prob=(1-hitp))*(1-hitp)
}
}
}
}
apply(result2[,,3],1,sum)
persp(result2[,,3])