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используется.- rng
numpy.random.Generator, опционально Состояние генератора псевдослучайных чисел. Когда rng равно None, новый
numpy.random.Generatorсоздаётся с использованием энтропии из операционной системы. Типы, отличные отnumpy.random.Generatorпередаются вnumpy.random.default_rngдля создания экземпляраGenerator.Изменено в версии 1.15.0: В рамках SPEC-007 переход от использования
numpy.random.RandomStatetonumpy.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()