多项式分布 R 的 dmultinom 函数

dmultinom function for Multinomial distribution R

函数 dmultinom (x, size = NULL, prob, log = FALSE) 估计多项分布的概率。但是,它不 运行 大小 =1。

理论上,当设置 size=1 时,多项式分布应该等同于分类分布。

有人知道为什么会出现错误信息吗?

仅供参考,分类分布可以通过 dist.Categorical {LaplacesDemon} 建模。

示例:

dmultinom(c(1,2,1),size = 1,prob = c(0.3,0.5,0.4))

dmultinom(c(1, 2, 1), size = 1, prob = c(0.3, 0.5, 0.4)) 错误: 大小 != 总和 (x)

dcat(c(1,2,1),p = c(0.3,0.5,0.4))

[1] 0.3 0.5 0.3

谢谢

LaplacesDemon::dcatstats::dmultinom 做两件不同的事情。如果您有多个观察值 dcat 采用类别值向量,而 dmultinom 采用 单向量响应 ,因此您必须构建响应矩阵并使用apply(或其他)。

library(LaplacesDemon)
probs <- c(0.3,0.5,0.2)
dcat(c(1,2,1), p = probs) ## ans: 0.3 0.5 0.3
x=matrix(c(1,0,0,
           0,1,0,
           1,0,0),
         nrow=3,byrow=TRUE)
apply(x,1,dmultinom,size=1, prob=probs)

(我修改了您的示例,因为您的原始概率 c(0.3,0.5,0.4) 加起来不等于 1 - 两个 函数都会给您警告,但是 dmultinom 自动重新调整概率总和为 1)

如果我尝试 dmultinom(c(1,2,1),p=probs, size=1) 我会得到

size != sum(x)

也就是说,dmultinomc(1,2,1) 解释为 "one sample from group 1, two samples from group 2, 1 from group 3",这与总样本量 1 ...

不一致