📅  最后修改于: 2023-12-03 15:11:41.383000             🧑  作者: Mango
多项分布是概率论中的一个概念,它描述了在一个试验中,由多个互不独立的事件组成的情况。在这种情况下,每个事件都有一定的概率被选中,多个事件组成的结果也有一定的概率分布。多项分布可以用于模拟投掷多面骰子的结果,或者在考试中统计每种分数的出现概率等等。
假设一个试验包含 $n$ 个互不独立的事件,每个事件的结果可以是 $k$ 种可能,且每种结果发生的概率各不相等,分别为 $p_1, p_2, ..., p_k$,则试验的结果满足多项分布。多项分布的概率质量函数为:
$$P(X_1 = x_1, X_2 = x_2, ..., X_k = x_k) = \frac{n!}{x_1!x_2!...x_k!}p_1^{x_1}p_2^{x_2}...p_k^{x_k}$$
其中 $x_1, x_2, ..., x_k$ 分别表示 $k$ 种结果出现的次数。
在 Python 中,可以使用 NumPy 库中的 numpy.random.multinomial
函数来生成满足多项分布的随机样本。该函数的参数包括试验的次数、每种结果的概率以及生成样本的数量等等。下面是一个示例代码:
import numpy as np
# 假设投掷一枚骰子 100 次,每次出现 1, 2, 3, 4, 5, 6 的概率分别为 1/6
# 则可以用 multinomial 函数模拟该实验的结果
probs = [1/6]*6
n = 100
samples = 1000
results = np.random.multinomial(n, probs, samples)
# 打印结果中每种数字出现次数的平均值和方差
print("Mean:", np.mean(results, axis=0))
print("Variance:", np.var(results, axis=0))
该代码模拟了投掷一枚骰子 100 次,重复执行 1000 次的实验。运行结果中平均出现次数分别为 16.67, 16.63, 16.51, 16.52, 16.5, 16.17,方差分别为 3.44, 3.35, 3.42, 3.23, 3.29, 3.56。这些结果反映了骰子的概率分布,符合多项分布的特点。
多项分布是概率论中的一个重要概念,可以用来描述由多个互不独立的事件组成的试验的结果。在 Python 中,可以使用 NumPy 库中的 numpy.random.multinomial
函数来生成满足多项分布的随机样本。