📜  Python中的 sympy.stats.Multinomial()函数(1)

📅  最后修改于: 2023-12-03 14:46:37.173000             🧑  作者: Mango

Python中的 sympy.stats.Multinomial()函数介绍

简介

sympy.stats.Multinomial()是 SymPy 中的一个随机变量类,用于表示多项式分布的随机变量。它可以通过指定多项式分布的参数来创建一个多项式分布的随机变量对象。

多项式分布通常用于描述从一个有限的、离散的集合中进行多次独立实验的结果。例如,扔多次骰子或从一组球中取多个球等等。

用法
创建多项式分布的随机变量对象

可以通过指定多项式分布的参数 $n, p_1, p_2, ..., p_k$ 来创建一个多项式分布的随机变量对象。其中,$n$ 为实验次数,$p_1, p_2, ..., p_k$ 是各种可能结果的概率。

from sympy.stats import Multinomial, P

# 创建一个多项式分布的随机变量对象
X = Multinomial('X', 4, [1/2, 1/4, 1/8, 1/8])

上述代码创建了一个名为 X 的多项式分布的随机变量对象,表示从一个有 $4$ 个球的集合中取球 $4$ 次,每次取到不同颜色的球的概率分别为 $1/2, 1/4, 1/8, 1/8$。

查看概率分布

可以使用 P() 函数查看多项式分布的概率分布。

# 查看概率分布
P(X)

输出结果为:

Piecewise((3/32, (X[0] == 3) & (X[1] == 0) & (X[2] == 0) & (X[3] == 1)), (3/32, (X[0] == 2) & (X[1] == 1) & (X[2] == 0) & (X[3] == 1)), (3/64, (X[0] == 2) & (X[1] == 0) & (X[2] == 2) & (X[3] == 0)), (3/32, (X[0] == 1) & (X[1] == 2) & (X[2] == 0) & (X[3] == 1)), (9/64, (X[0] == 1) & (X[1] == 1) & (X[2] == 2) & (X[3] == 0)), (3/64, (X[0] == 1) & (X[1] == 0) & (X[2] == 3) & (X[3] == 0)), (1/16, (X[0] == 2) & (X[1] == 0) & (X[2] == 1) & (X[3] == 1)), (1/16, (X[0] == 1) & (X[1] == 1) & (X[2] == 1) & (X[3] == 1)), (1/64, (X[0] == 0) & (X[1] == 4) & (X[2] == 0) & (X[3] == 0)), (3/32, (X[0] == 0) & (X[1] == 3) & (X[2] == 1) & (X[3] == 0)), (3/32, (X[0] == 0) & (X[1] == 2) & (X[2] == 2) & (X[3] == 0)), (9/64, (X[0] == 0) & (X[1] == 1) & (X[2] == 3) & (X[3] == 0)), (3/64, (X[0] == 0) & (X[1] == 0) & (X[2] == 4) & (X[3] == 0)), (1, (X[0] == 4) & (X[1] == 0) & (X[2] == 0) & (X[3] == 0)))

注意:由于多项式分布是离散分布,其概率密度函数是不连续的,因此用 P() 函数查看它的概率分布不会得到常规的密度函数图表,而是得到一个分段函数。

计算概率

可以使用 P() 函数计算多项式分布随机变量对象的概率。

# 计算概率
P(X[0] > 1, X[2] == 2)

上述代码计算了取 $4$ 个球中第一种颜色的球有 $2$ 个,第三种颜色的球有 $2$ 个的概率,结果为 $3/64$。

计算期望和方差

可以使用 EV 函数分别计算多项式分布随机变量对象的期望和方差。

# 计算期望
E(X)

# 计算方差
V(X)

上述代码分别计算了多项式分布随机变量对象 X 的期望和方差。

结论

sympy.stats.Multinomial() 是 SymPy 中的一个随机变量类,用于表示多项式分布的随机变量。可以使用它来创建多项式分布随机变量对象,并使用 P() 函数来查看其概率分布,使用 EV 函数来计算其期望和方差。