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, wobeikdie 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
Sobolverwendet.- rng
numpy.random.Generator, optional Zustand des pseudozufälligen Zahlengenerators. Wenn rng None ist, wird ein neuer
numpy.random.Generatormit Entropie aus dem Betriebssystem erstellt. Typen außernumpy.random.Generatorwerden annumpy.random.default_rngübergeben, um einenGeneratorzu instanziieren.Geändert in Version 1.15.0: Im Rahmen der SPEC-007-Umstellung von der Verwendung von
numpy.random.RandomStatezunumpy.random.Generatorwurde 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()