使用scipy.stats.multivariate_normal模块生成多元正态分布随机样本
发布时间:2023-12-17 11:37:04
多元正态分布(Multivariate Normal Distribution)是指在多维空间中符合正态分布的随机向量。在统计学中,常用来表示具有相关性的多个随机变量之间的联合概率分布。
使用scipy.stats.multivariate_normal模块可以方便地生成多元正态分布的随机样本。下面是使用该模块生成多元正态分布随机样本的示例。
首先,我们导入需要的模块:
import matplotlib.pyplot as plt from scipy.stats import multivariate_normal
接下来,我们定义多元正态分布的均值向量和协方差矩阵。这里我们以一个二维正态分布为例,均值向量为(0, 0),协方差矩阵为单位矩阵。
mean = [0, 0] cov = [[1, 0], [0, 1]]
然后,我们使用multivariate_normal类来生成多元正态分布的随机样本。这里生成1000个样本。
samples = multivariate_normal.rvs(mean=mean, cov=cov, size=1000)
接下来,我们绘制生成的多元正态分布随机样本的散点图。
plt.scatter(samples[:, 0], samples[:, 1])
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Multivariate Normal Distribution')
plt.show()
运行以上代码,我们可以得到如下的散点图:

这个散点图展示了二维多元正态分布的随机样本。可以看到,随机样本分布在以均值为中心的椭圆状区域内,符合正态分布的特点。
通过以上的例子,我们可以看到使用scipy.stats.multivariate_normal模块可以方便地生成多元正态分布的随机样本,并且可以通过绘图来可视化生成的样本分布情况。这在生成和研究多元正态分布样本数据上非常有用。
