2017-09-18 4 views
1

Je veux calculer le PDF gaussien de données bidimensionnelles, j'essaie de le faire en python en utilisant la fonction scipy.stats.multivariate_normal, mais je ne comprends pas comment puis-je transmettre mes données à l'intérieur?Transmettre des données bidimensionnelles dans la fonction de densité normale multivariée de python?

Est-ce que multivariate_normal est utilisé uniquement pour analyser des données unidimensionnelles en n dimensions ou est-ce que je peux également utiliser pour mon ensemble de données?

data set-> X = [X1,X2....Xn] 

où chaque

Xi=[x1 x2] 

est égal à 2 dimensions.

Répondre

2

Pour calculer la fonction de densité, utilisez la méthode pdf() de l'objet scipy.stats.multivariate_normal. Le premier argument est votre tableau X. Les deux arguments suivants sont la moyenne et la matrice de covariance de la distribution.

Par exemple:

In [72]: import numpy as np 

In [73]: from scipy.stats import multivariate_normal 

In [74]: mean = np.array([0, 1]) 

In [75]: cov = np.array([[2, -0.5], [-0.5, 4]]) 

In [76]: x = np.array([[0, 1], [1, 1], [0.5, 0.25], [1, 2], [-1, 0]]) 

In [77]: x 
Out[77]: 
array([[ 0. , 1. ], 
     [ 1. , 1. ], 
     [ 0.5 , 0.25], 
     [ 1. , 2. ], 
     [-1. , 0. ]]) 

In [78]: p = multivariate_normal.pdf(x, mean, cov) 

In [79]: p 
Out[79]: array([ 0.05717014, 0.04416653, 0.05106649, 0.03639454, 0.03639454])