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。如果 cov 和 cov_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.Generator
的 SPEC-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()
方法
random
([n])從多變量常態分佈中抽取 n 個 QMC 樣本。