将结果分配给离散分布Matlab

时间:2018-04-28 12:21:39

标签: matlab distribution multinomial

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

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 个答案:

答案 0 :(得分:1)

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

  

为具有三个分布的分布创建多项分布对象   可能的结果。结果1的概率为1/2,结果2的概率为1   概率为1/3,结果3的概率为1/6。

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

基本上,您的可能结果向量包括与null(符号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