← retour aux snippets

numpy: multivariate_normal

Échantillons gaussiens multivariés corrélés.

python numpy #numpy#random#mvnorm

objectif

Échantillons gaussiens multivariés corrélés.

code minimal

import numpy as np

rng = np.random.default_rng(0)
mu = [0.0, 1.0]; cov = [[1.0, 0.8],[0.8, 1.5]]
x = rng.multivariate_normal(mu, cov, size=5)
print(x.shape)

utilisation

import numpy as np

rng = np.random.default_rng(1)
s = rng.multivariate_normal([0,0], [[1,0],[0,1]], size=1000)
print(s.mean(axis=0).round(1).tolist())

variante(s) utile(s)

import numpy as np

print(np.allclose(np.cov(x.T, bias=True).shape, (2,2)))

notes

  • La matrice de covariance doit être symétrique définie positive.