関数解読pdiscp

Bayesian Computation with R: Second Edition (Use R!)

比率に関する離散分布を用いた場合の将来の二項分布による実験の成功数に関する予測分布の計算

使用法

pdiscp(p, probs, n, s)

引数
p:比率の候補となる値で構成されるベクトル
probs:各比率の確率で構成されるベクトル
n:将来の二項分布による実験のサンプル数
s:将来の二項分布による実験における成功数
  seq(0,n)のうち,関心を持つ要素のみに限定しても良い。



成功数の予測確率(ベクトル)
 確率probsが事前確率なら,事前予測確率
 確率probsが事後確率なら,事後予測確率(BCwithR p29) 

#関数pdiscpの中身
pdiscp = function (p, probs, n, s)
{
    pred = 0 * s
     # ベクトルsと同じ長さのベクトルpredを作成(空箱作り)。
    for (i in 1:length(p)) {
        pred = pred + probs[i] * dbinom(s, n, p[i])
         # sの各要素に対して予測確率を計算。
         #  BCwithR p29一番下の数式
    }
    return(pred) #predを出力。
}


#比率と対応する確率(その1)
p1=c(.1,.2,.3,.4,.5,.6,.7,.8,.9)
prob1=c(0.05,0.10,0.10,0.15,0.20,0.15,0.10,0.10,0.05)

#比率と対応する確率(その2)
p2=c(.1,.2,.3,.4,.5,.6,.7,.8,.9)
prob2=c(0.2,0.2,0.2,0.2,0.2,0,0,0,0)


par(mfrow=(c(2,1)))
plot(p1,prob1,type="h")
plot(p2,prob2,type="h")

#将来の試行回数
n=10
#予測確率を計算する成功数
s=0:10
#予測確率の計算
yf1 = pdiscp(p1,prob1,n,s)
yf2 = pdiscp(p2,prob2,n,s)

par(mfrow=(c(2,1)))
plot(s,yf1,type="h")
plot(s,yf2,type="h")