2026a

# 多项概率分布函数

此示例演示如何使用概率分布函数生成随机数并计算和绘制多项式分布的 pdf。

# 步骤1 定义分布参数。

创建一个包含每个结果概率的向量 p。结果 1 的概率为 1/2,结果 2 的概率为 1/3,结果 3 的概率为 1/6。每个实验n中的试验次数为5,实验重复次数为8。

using TyPlot
using TyMath
using TyStatistics
using TyBase
p = [1/2 1/3 1/6];
n = 5;
reps = 8;

# 步骤2 生成一个随机数。

从多项式分布生成一个随机数,这是单个试验的结果。

rng = MT19937ar(5489)
r = mnrnd(rng,1,p,1)
r = 1×3 Matrix{Int64}:
 0  1  0

返回的向量 r 包含三个元素,它们显示每个可能结果的计数。这项单一试验产生了结局2。

# 步骤3 生成一个随机数矩阵。

您还可以从多项式分布生成随机数矩阵,该矩阵报告多个试验的结果,每个试验包含多个试验。生成一个矩阵,其中包含 n = 5 次试验和重复次数 = 8 次的实验结果。

r = mnrnd(rng,n,p,reps)
r = 8×3 Matrix{Int64}:
 1  1  3
 3  2  0
 1  1  3
 0  4  1
 5  0  0
 1  2  2
 3  1  1
 3  1  1

结果矩阵中的每一行都包含 k 个多项式箱中每个的计数。例如,在第一个实验(对应于第一行)中,五项试验中有一项产生结果1,五项试验中有一项产生结果2,五项试验中有三项产生结果3。

# 步骤4 计算 pdf。

由于多项式函数使用箱计数,因此请创建所有可能的结果组合的多维数组,并使用 mnpdf 计算 pdf。

count1 = 1:n;
count2 = 1:n;
x1,x2 = meshgrid2(count1,count2);
x3 = @. n-(x1+x2);
y = mnpdf([x1[:] x2[:] x3[:]],repeat(p,(n)^2,1));

# 步骤5 画出 pdf。

创建三维条形图,以可视化每种结果频率组合的 pdf。

y = reshape(y,n,n);
bar3(y)
xticklabels(1:n);
yticklabels(1:n);
xlabel("x_1 Frequency")
ylabel("x_2 Frequency")
zlabel("Probability Mass")
plt_view([3 4 3]);

该图显示了每个可能的结果组合的概率质量。它不显示 ,由约束 决定。