N = 9; xx = 0:N; s1 = 2; s2 = 3
dy = dbetabin.ab(xx, size = N, shape1 = s1, shape2 = s2)
barplot(rbind(dy, dbinom(xx, size = N, prob = s1/(s1+s2))),
beside = TRUE, col = c("blue","green"), las = 1,
main = paste("Beta-binomial (size=",N,", shape1=",s1,
", shape2=",s2,") (blue) vs\n",
" Binomial(size=", N, ", prob=", s1/(s1+s2), ") (green)", sep = ""),
names.arg = as.character(xx), cex.main = 0.8)
sum(dy*xx) # Check expected values are equal
sum(dbinom(xx, size = N, prob = s1/(s1+s2))*xx)
cumsum(dy) - pbetabin.ab(xx, N, shape1 = s1, shape2 = s2)
y = rbetabin.ab(n = 10000, size = N, shape1 = s1, shape2 = s2)
ty = table(y)
barplot(rbind(dy, ty/sum(ty)),
beside = TRUE, col = c("blue","red"), las = 1,
main = paste("Beta-binomial (size=",N,", shape1=",s1,
", shape2=",s2,") (blue) vs\n",
" Random generated beta-binomial(size=", N, ", prob=", s1/(s1+s2),
") (red)", sep = ""), cex.main = 0.8,
names.arg = as.character(xx))
Run the code above in your browser using DataLab