上式为 x 服从 k 元正态分布,x 为 k 维向量;|Σ| 代表协方差矩阵的行列式。
二维正态分布概率密度函数为钟形曲面,等高线是椭圆线族,并且二维正态分布的两个边缘分布都是一维正态分布,如图
numpy生成一个服从多元正态分布的数组
multivariate_normal(mean, cov, size=None, check_valid=None, tol=None)
各参数含义:
mean:均值,维度为1,必选参数;
cov:协方差矩阵,必选参数;
size: 指定生成矩阵的维度,若size=(1, 1, 2),则输出的矩阵的 shape 即形状为 1X1X2XN(N为mean的长度);
check_valid:可取值 warn,raise以及ignore;
tol:检查协方差矩阵奇异值时的公差,float类型。
import numpy as np
import matplotlib.pyplot as plt
mean = (1, 1)
cov = np.array([[0.1, 0], [0, 1]])
x = np.random.multivariate_normal(mean, cov, (500,), 'raise') # nx2
plt.scatter(x[:, 0], x[:, 1])
plt.xlim(-3, 5)
plt.ylim(-3, 5)
plt.show()
运行结果:
[1] multivariate_normal 多元正态分布