我正在尝试将分布拟合到离散数据集。
可能的结果是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,这是可能结果的加权和。提前谢谢。
答案 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