scipy.stats.qmc.
MultinomialQMC#
- class scipy.stats.qmc.MultinomialQMC(pvals, n_trials, *, engine=None, rng=None)[原始碼]#
從多項式分佈進行 QMC 取樣。
- 參數:
- pvalsarray_like (k,)
大小為
k
的機率向量,其中k
是類別的數量。元素必須是非負數且總和為 1。- n_trialsint
試驗次數。
- engineQMCEngine,選用
準蒙地卡羅引擎取樣器。如果為 None,則使用
Sobol
。- rng
numpy.random.Generator
,選用 虛擬隨機數產生器狀態。當 rng 為 None 時,會使用來自作業系統的熵建立新的
numpy.random.Generator
。除了numpy.random.Generator
之外的類型會傳遞至numpy.random.default_rng
以實例化Generator
。在版本 1.15.0 中變更:作為從使用
numpy.random.RandomState
過渡到numpy.random.Generator
的 SPEC-007 轉換的一部分,此關鍵字已從 seed 變更為 rng。在過渡期間,這兩個關鍵字將繼續運作,但一次只能指定一個。在過渡期之後,使用 seed 關鍵字的功能呼叫將發出警告。在棄用期之後,將移除 seed 關鍵字。
範例
讓我們定義 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 樣本。