scipy.stats.qmc.

MultivariateNormalQMC#

scipy.stats.qmc.MultivariateNormalQMC(mean, cov=, *, cov_root=, inv_transform=, engine=, seed=)[来源]#

从多变量正态 \(N(\mu, \Sigma)\) 中进行 QMC 采样。

参数:
meanarray_like (d,)

平均向量。其中 d 是维度。

covarray_like (d, d), 可选

协方差矩阵。如果省略,则使用 cov_root 代替。如果 covcov_root 均省略,则使用单位矩阵。

cov_rootarray_like (d, d’), 可选

协方差矩阵的根分解,其中,如果协方差不是满秩,则 d' 可能小于 d。如果省略,则使用 cov

inv_transform布尔,可选

如果为 True,则使用逆变换代替 Box-Muller。默认值为 True。

engineQMCEngine,可选

准蒙特卡罗引擎采样器。如果为 None,则使用 Sobol

seed{None,int,numpy.random.Generator,可选}

仅当 engine 为 None 时使用。如果 seed 为 int 或 None,则使用 np.random.default_rng(seed) 创建新的 numpy.random.Generator。如果 seed 已经是 Generator 实例,则使用所提供的实例。

示例

>>> 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 样本。