Python中利用scipy.stats.multivariate_normal生成多元正态分布随机变量
发布时间:2023-12-17 11:36:42
在Python中,可以使用scipy.stats包中的multivariate_normal函数来生成多元正态分布的随机变量。下面是一个使用例子,步骤如下:
1. 导入必要的库:
import numpy as np import matplotlib.pyplot as plt from scipy.stats import multivariate_normal
2. 定义均值向量和协方差矩阵:
mean = np.array([0, 0]) # 均值向量 cov = np.array([[1, 0], [0, 1]]) # 协方差矩阵
3. 根据均值向量和协方差矩阵生成随机变量:
rv = multivariate_normal(mean, cov)
4. 生成随机样本:
samples = rv.rvs(size=1000)
5. 绘制散点图:
plt.scatter(samples[:, 0], samples[:, 1])
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Multivariate Normal Distribution')
plt.show()
上述代码中,首先定义了一个二维的均值向量mean和一个2x2的协方差矩阵cov。然后使用multivariate_normal函数创建了一个多元正态分布的随机变量rv。通过rv.rvs(size=1000)生成了1000个随机样本,并将其绘制成散点图。
运行上述代码,即可生成一个服从二维正态分布的随机样本散点图,其中X轴代表 个随机变量的取值,Y轴代表第二个随机变量的取值。
需要注意的是,可以通过调整均值向量和协方差矩阵的值来改变生成的随机变量的分布特征。
