当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


R Multinom 多项式分布

R语言 Multinom 位于 stats 包(package)。

说明

生成多项分布的随机数向量并计算多项概率。

用法

rmultinom(n, size, prob)
dmultinom(x, size = NULL, prob, log = FALSE)

参数

x

0:size 中整数的长度为 的向量。

n

要绘制的随机向量的数量。

size

整数,例如 ,指定在典型多项式实验中放入 框中的对象总数。对于 dmultinom ,默认为 sum(x)

prob

长度为 的数值非负向量,指定 类的概率;内部标准化为总和 1。不允许出现无限值和缺失值。

log

逻辑性;如果为 TRUE,则计算对数概率。

细节

如果 x 分量向量,则 dmultinom(x, prob) 是概率

其中 是“多项式系数” .
根据定义,每个组件 二项分布为Bin(size, prob[j])为了 .

rmultinom() 算法从 中依次提取二项式 ,其中 (N := size )、 ( prob 缩放至和 1),对于 ,递归地,

对于 rmultinom() ,整数 矩阵,其中每列都是根据所需多项式定律生成的随机向量,因此求和为 size 。虽然转置结果一开始看起来更自然,但由于按列存储,返回的矩阵更有效。

注意

dmultinom 目前根本没有矢量化,也没有 C 接口 (API);将来可能会对此进行修改。

例子

rmultinom(10, size = 12, prob = c(0.1,0.2,0.8))

pr <- c(1,3,6,10) # normalization not necessary for generation
rmultinom(10, 20, prob = pr)

## all possible outcomes of Multinom(N = 3, K = 3)
X <- t(as.matrix(expand.grid(0:3, 0:3))); X <- X[, colSums(X) <= 3]
X <- rbind(X, 3:3 - colSums(X)); dimnames(X) <- list(letters[1:3], NULL)
X
round(apply(X, 2, function(x) dmultinom(x, prob = c(1,2,5))), 3)

也可以看看

Distributions 用于标准发行版,包括 dbinom,这是概念上的特殊情况。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 The Multinomial Distribution。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。