欢迎访问宙启技术站
智能推送

使用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()

运行以上代码,我们可以得到如下的散点图:

![multivariate_normal_distribution](https://user-images.githubusercontent.com/64155612/136721032-d7c1f029-67a5-4551-8c60-3e6cc98469e9.png)

这个散点图展示了二维多元正态分布的随机样本。可以看到,随机样本分布在以均值为中心的椭圆状区域内,符合正态分布的特点。

通过以上的例子,我们可以看到使用scipy.stats.multivariate_normal模块可以方便地生成多元正态分布的随机样本,并且可以通过绘图来可视化生成的样本分布情况。这在生成和研究多元正态分布样本数据上非常有用。