scipy.stats.qmc.

MultinomialQMC#

класс scipy.stats.qmc.MultinomialQMC(pvals, n_trials, *, движок=None, rng=None, seed=None)[источник]#

QMC выборка из мультиномиального распределения.

Параметры:
pvalsarray_like (k,)

Вектор вероятностей размера k, где k это количество категорий. Элементы должны быть неотрицательными и суммироваться в 1.

n_trialsint

Количество испытаний.

движокQMCEngine, опционально

Квази-Монте-Карло движок сэмплера. Если None, Sobol используется.

rngnumpy.random.Generator, опционально

Состояние генератора псевдослучайных чисел. Когда rng равно None, новый numpy.random.Generator создаётся с использованием энтропии из операционной системы. Типы, отличные от numpy.random.Generator передаются в numpy.random.default_rng для создания экземпляра Generator.

Изменено в версии 1.15.0: В рамках SPEC-007 переход от использования numpy.random.RandomState to numpy.random.Generator, этот ключевое слово было изменено с seed to rng. В течение переходного периода оба ключевых слова будут продолжать работать, хотя можно указать только одно за раз. После переходного периода вызовы функций с использованием seed ключевое слово будет выдавать предупреждения. После периода устаревания, seed ключевое слово будет удалено.

Методы

random([n])

Генерировать n QMC выборки из мультиномиального распределения.

Примеры

Давайте определим 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()
../../_images/scipy-stats-qmc-MultinomialQMC-1.png