scipy.stats.qmc.

MultinomialQMC#

class scipy.stats.qmc.MultinomialQMC(pvals, n_trials, *, engine=None, rng=None)[Quelle]#

QMC-Stichproben aus einer multinomialen Verteilung.

Parameter:
pvalsarray_like (k,)

Vektor von Wahrscheinlichkeiten der Größe k, wobei k die Anzahl der Kategorien ist. Elemente müssen nicht-negativ sein und sich zu 1 summieren.

n_trialsint

Anzahl der Versuche.

engineQMCEngine, optional

Quasi-Monte-Carlo-Engine-Sampler. Wenn None, wird Sobol verwendet.

rngnumpy.random.Generator, optional

Zustand des pseudozufälligen Zahlengenerators. Wenn rng None ist, wird ein neuer numpy.random.Generator mit Entropie aus dem Betriebssystem erstellt. Typen außer numpy.random.Generator werden an numpy.random.default_rng übergeben, um einen Generator zu instanziieren.

Geändert in Version 1.15.0: Im Rahmen der SPEC-007-Umstellung von der Verwendung von numpy.random.RandomState zu numpy.random.Generator wurde dieses Schlüsselwort von seed zu rng geändert. Für eine Übergangszeit werden beide Schlüsselwörter weiterhin funktionieren, obwohl nur eines gleichzeitig angegeben werden darf. Nach der Übergangszeit werden Funktionsaufrufe, die das Schlüsselwort seed verwenden, Warnungen ausgeben. Nach einer Deprekationsperiode wird das Schlüsselwort seed entfernt.

Methoden

random([n])

Zeichnen Sie n QMC-Stichproben aus der multinomialen Verteilung.

Beispiele

Definieren wir 3 Kategorien und für eine gegebene Stichprobe ist die Summe der Versuche jeder Kategorie 8. Die Anzahl der Versuche pro Kategorie wird durch die mit jeder Kategorie verbundenen pvals bestimmt. Dann sampeln wir diese Verteilung 64 Mal.

>>> 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)

Wir können die Stichprobe plotten und verifizieren, dass der Median der Anzahl der Versuche für jede Kategorie den pvals folgt. Dies wären 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