多项式分布 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::dcat
和 stats::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)
也就是说,dmultinom
将 c(1,2,1)
解释为 "one sample from group 1, two samples from group 2, 1 from group 3",这与总样本量 1 ...
不一致
函数 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::dcat
和 stats::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)
也就是说,dmultinom
将 c(1,2,1)
解释为 "one sample from group 1, two samples from group 2, 1 from group 3",这与总样本量 1 ...