2026a

# 多项概率分布对象

此示例说明如何生成随机数、计算和绘制 pdf,以及使用概率分布对象计算多项分布的描述性统计。

# 步骤 1. 定义分布参数。

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

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

# 步骤 2. 创建多项概率分布对象。

使用指定值 p 创建多项概率分布对象。

pd = makedist("TyMultinomial", p=[1 / 2, 1 / 3, 1 / 6])
pd = TyMultinomial{Vector{Float64}}(p=[0.5, 0.3333333333333333, 0.16666666666666666])

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

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

rng = MT19937ar(5489)
r = random(rng,pd)
r = 2.0

该试验产生了结果 2.0。

# 步骤 4. 生成随机数矩阵。

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

r = random(rng,pd,reps,n)
8×5 Matrix{Float64}:
 3.0  3.0  3.0  2.0  1.0
 1.0  1.0  2.0  2.0  1.0
 3.0  3.0  3.0  1.0  2.0
 2.0  3.0  2.0  2.0  2.0
 1.0  1.0  1.0  1.0  1.0
 1.0  2.0  3.0  2.0  3.0
 2.0  1.0  3.0  1.0  1.0
 3.0  1.0  2.0  1.0  1.0

结果矩阵中的每个元素都是一次试验的结果。 列对应于每个实验中的五个试验,行对应于八个实验。 例如,在第一个实验中(对应于第一行),五项试验中的一项产生了结果 1.0,五项试验中的一项产生了结果 2.0,五项试验中的三项产生了结果 3.0。

# 步骤 5. 计算并绘制 pdf。

计算分布的 pdf。

using TyPlot

x = 1:3;
y = pdf.(pd,x);
bar(x,y)
xlabel("Outcome")
ylabel("Probability Mass")
title("Trinomial Distribution")

# 步骤 6. 计算描述性统计量。

计算分布的均值、中值和标准差。

m = mean(pd)
m = 1.6666666666666665
med = median(pd)
med = 1
s = std(pd)
s = 0.74535599249993