scipy.stats.qmc.
MultivariateNormalQMC#
- class scipy.stats.qmc.MultivariateNormalQMC(mean, cov=None, *, cov_root=None, inv_transform=True, engine=None, rng=None)[源代码]#
从多元正态 \(N(\mu, \Sigma)\) 进行 QMC 采样。
- 参数:
- meanarray_like (d,)
均值向量。其中
d
是维度。- covarray_like (d, d), 可选
协方差矩阵。如果省略,则使用 cov_root 代替。如果同时省略 cov 和 cov_root,则使用单位矩阵。
- cov_rootarray_like (d, d’),可选
协方差矩阵的根分解,其中如果协方差不是满秩的,则
d'
可能小于d
。如果省略,则使用 cov。- inv_transformbool,可选
如果为 True,则使用逆变换而不是 Box-Muller。默认为 True。
- 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 关键字。
示例
>>> 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 样本。