为 R 中的多项式分布提供分位数和概率的函数

Functions to give quantile and probability for multinomial distribution in R

我希望能够计算 R 中多项式结果的分位数和概率。R 对 qnorm()pnorm() 等其他分布具有类似的功能。按照相同的命名方案,我想要 qmultinom()pmultinom(),因为 R 已经有 rmultinom()dmultinom()。我在 Internet 上搜索但找不到它们。

至于pmultinom(),假设Y是一个结果(一个向量),我想知道导致dmultinom(Y,size,prob)或更低的所有可能的多项式结果的比例。

你试过logspline包了吗?

library(log spline)
b <- rmultinom(10000, size = 100, prob = c(0.1,0.5,0.8))
hist(b, 100)
a <- logspline(b)
plot(a)
qlogspline(.2,a)

看看我的包裹,pmultinom

它不符合您将概率作为输入的定义,但类似于 pbinom。例如,询问二项式结果 <= 5 的概率:

pbinom(5, 10, .5)
# [1] 0.6230469
> pmultinom(upper=c(5,Inf), size=10, probs=c(.5, .5), method="exact")
# [1] 0.6230469

当然,您也可以询问多项式分布中的所有三个单元格的计数是否都 <= 5:

pmultinom(upper=c(5,5,5), size=10, probs=c(1/2, 1/4, 1/4), method="exact")
# [1] 0.5835915

还有another pmultinom library on Github。看起来我们都是基于相同的参考,但我实现了精确计算的建议,而这个包的作者实现了近似计算,所以它可能更快。