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