scipy.stats.qmc.
MultinomialQMC#
- class scipy.stats.qmc.MultinomialQMC(pvals, n_trials, *, engine=None, seed=None)[源代码]#
从多项分布进行 QMC 采样。
- 参数:
- pvalsarray_like (k,)
大小为
k
的概率向量,其中k
为类别数。元素必须为非负且求和为 1。- n_trialsint
试验次数。
- engineQMCEngine,可选
准蒙特卡罗引擎采样器。如果为 None,则使用
Sobol
。- seed{None,int,
numpy.random.Generator
}, 可选 仅当engine为 None 时才会使用。如果seed为整数或 None,则使用
np.random.default_rng(seed)
创建一个新的numpy.random.Generator
。如果seed已为Generator
实例,则会使用所提供的实例。
示例
让我们定义 3 个类别,而对于给定的样本,每个类别的试验合计为 8。每个类别的试验次数由与每个类别关联的pvals 决定。然后,我们对该分布进行 64 次抽样。
>>> import matplotlib.pyplot as plt >>> from scipy.stats import qmc >>> dist = qmc.MultinomialQMC( ... pvals=[0.2, 0.4, 0.4], n_trials=10, engine=qmc.Halton(d=1) ... ) >>> sample = dist.random(64)
我们可以绘制样本,并验证每个类别的试验次数中值为遵循pvals。那将为
pvals * n_trials = [2, 4, 4]
。>>> fig, ax = plt.subplots() >>> ax.yaxis.get_major_locator().set_params(integer=True) >>> _ = ax.boxplot(sample) >>> ax.set(xlabel="Categories", ylabel="Trials") >>> plt.show()
方法
random
([n])从多项分布中获取n 个 QMC 样本。