将结果分配给离散分布 Matlab

Assign outcomes to discrete distribution Matlab

我正在尝试将分布拟合到离散数据集。 可能的结果是 A = [1 3 4 5 9 10],概率为 prob

prob = [0.2 0.15 0.1 0.05 0.35 0.15];

我已经使用 makedist 找到了分布

pd = makedist('Multinomial','probabilities', prob);

我想知道是否有一种方法可以将 A 的结果 1 到 10 包括在分布中,这样我就可以用 var(pd), mean(pd) 计算可能结果的均值和方差。到目前为止,平均值是 3.65,但我的目标是使平均值 (pd) = 5.95,这是可能结果的加权和。提前致谢。

解决方法很简单。多项式分布的可能结果由从 1 开始到 numel(prob) 结束的一系列值定义。来自这个官方文档页面:

Create a multinomial distribution object for a distribution with three possible outcomes. Outcome 1 has a probability of 1/2, outcome 2 has a probability of 1/3, and outcome 3 has a probability of 1/6.

pd = makedist('Multinomial','probabilities',[1/2 1/3 1/6])

基本上,您的可能结果向量包括一些与空(信号 0)概率相关的值。因此,按如下方式定义您的分布以获得预期结果:

p = [0.20 0.00 0.15 0.10 0.05 0.00 0.00 0.00 0.35 0.15];
pd = makedist('Multinomial','probabilities',p);

mean(pd) % 5.95
var(pd) % 12.35