scipy.stats.qmc.

MultivariateNormalQMC#

class scipy.stats.qmc.MultivariateNormalQMC(mean, cov=None, *, cov_root=None, inv_transform=True, engine=None, rng=None)[source]#

從多變量常態分佈 \(N(\mu, \Sigma)\) 進行 QMC 取樣。

參數:
mean (均值)array_like (d,)

均值向量。其中 d 是維度。

cov (共變異數矩陣)array_like (d, d), optional

共變異數矩陣。如果省略,則改用 cov_root。如果 covcov_root 都省略,則使用單位矩陣。

cov_root (共變異數矩陣的根分解)array_like (d, d’), optional

共變異數矩陣的根分解,其中如果共變異數矩陣不是滿秩矩陣,則 d' 可能小於 d。如果省略,則使用 cov

inv_transform (反轉換)bool, optional

如果為 True,則使用反轉換而不是 Box-Muller 方法。預設值為 True。

engine (引擎)QMCEngine, optional

擬蒙地卡羅引擎取樣器。如果為 None,則使用 Sobol

rng (隨機數生成器)numpy.random.Generator, optional

虛擬隨機數生成器狀態。當 rng 為 None 時,會使用作業系統的熵建立新的 numpy.random.Generator。除了 numpy.random.Generator 以外的類型會傳遞給 numpy.random.default_rng 以實例化 Generator

版本 1.15.0 更新: 作為從使用 numpy.random.RandomState 過渡到 numpy.random.GeneratorSPEC-007 轉換的一部分,此關鍵字已從 seed 變更為 rng。在過渡期間,這兩個關鍵字將繼續運作,但一次只能指定一個。在過渡期之後,使用 seed 關鍵字的功能呼叫將會發出警告。在棄用期過後,seed 關鍵字將會移除。

範例

>>> import matplotlib.pyplot as plt
>>> from scipy.stats import qmc
>>> dist = qmc.MultivariateNormalQMC(mean=[0, 5], cov=[[1, 0], [0, 1]])
>>> sample = dist.random(512)
>>> _ = plt.scatter(sample[:, 0], sample[:, 1])
>>> plt.show()
../../_images/scipy-stats-qmc-MultivariateNormalQMC-1.png

方法

random([n])

從多變量常態分佈中抽取 n 個 QMC 樣本。