Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

mvnpdf

Función de densidad de probabilidad normal multivariante

Descripción

ejemplo

y = mvnpdf(X) devuelve un vector y de n por 1 que contiene los valores de la función de densidad de probabilidad (pdf) de la distribución normal multivariante con d dimensiones con una media de cero y una matriz de covarianzas identidad, evaluada en cada fila de la matriz X de n por d. Para obtener más información, consulte Distribución normal multivariante.

ejemplo

y = mvnpdf(X,mu) devuelve valores de pdf de los puntos en X, donde mu determina la media de cada distribución normal multivariante asociada.

ejemplo

y = mvnpdf(X,mu,Sigma) devuelve valores de pdf de los puntos en X, donde Sigma determina la covarianza de cada distribución normal multivariante asociada.

Especifique [] para mu para usar su valor predeterminado de cero cuando solo desee especificar Sigma.

Ejemplos

contraer todo

Evalúe la pdf de una distribución normal estándar de cinco dimensiones en un conjunto de puntos aleatorios.

Obtenga una muestra de forma aleatoria de ocho puntos a partir de una distribución normal estándar de cinco dimensiones.

mu = zeros(1,5);
Sigma = eye(5);
rng('default')  % For reproducibility
X = mvnrnd(mu,Sigma,8)
X = 8×5

    0.5377    3.5784   -0.1241    0.4889   -1.0689
    1.8339    2.7694    1.4897    1.0347   -0.8095
   -2.2588   -1.3499    1.4090    0.7269   -2.9443
    0.8622    3.0349    1.4172   -0.3034    1.4384
    0.3188    0.7254    0.6715    0.2939    0.3252
   -1.3077   -0.0631   -1.2075   -0.7873   -0.7549
   -0.4336    0.7147    0.7172    0.8884    1.3703
    0.3426   -0.2050    1.6302   -1.1471   -1.7115

Evalúe la pdf de la distribución en los puntos de X.

y = mvnpdf(X)
y = 8×1

    0.0000
    0.0000
    0.0000
    0.0000
    0.0054
    0.0011
    0.0015
    0.0003

Encuentre el punto en X con el valor de pdf mayor.

[maxpdf,idx] = max(y)
maxpdf = 0.0054
idx = 5
maxPoint = X(idx,:)
maxPoint = 1×5

    0.3188    0.7254    0.6715    0.2939    0.3252

El quinto punto en X tiene un valor de pdf mayor que ningún otro punto seleccionado de forma aleatoria.

Cree seis distribuciones normales tridimensionales, cada una con una media distinta. Evalúe la pdf de cada distribución en un punto aleatorio distinto.

Especifique las medias mu y las covarianzas Sigma de las distribuciones. Cada distribución cuenta con la misma matriz de covarianzas: la matriz identidad.

firstDim = (1:6)';
mu = repmat(firstDim,1,3)
mu = 6×3

     1     1     1
     2     2     2
     3     3     3
     4     4     4
     5     5     5
     6     6     6

Sigma = eye(3)
Sigma = 3×3

     1     0     0
     0     1     0
     0     0     1

Obtenga una muestra aleatoriamente de cada una de las seis distribuciones.

rng('default')  % For reproducibility
X = mvnrnd(mu,Sigma)
X = 6×3

    1.5377    0.5664    1.7254
    3.8339    2.3426    1.9369
    0.7412    6.5784    3.7147
    4.8622    6.7694    3.7950
    5.3188    3.6501    4.8759
    4.6923    9.0349    7.4897

Evalúe las pdf de las distribuciones en los puntos de X. La pdf de la primera distribución se evalúa en el punto X(1,:), la pdf de la segunda distribución se evalúa en el punto X(2,:), y así sucesivamente.

y = mvnpdf(X,mu)
y = 6×1

    0.0384
    0.0111
    0.0000
    0.0009
    0.0241
    0.0001

Evalúe la pdf de una distribución normal bidimensional en un conjunto de puntos dados.

Especifique la media mu y la covarianza Sigma de la distribución.

mu = [1 -1];
Sigma = [0.9 0.4; 0.4 0.3];

Obtenga muestras aleatoriamente de la distribución 100 veces. Especifique X como la matriz de los puntos de muestra.

rng('default')  % For reproducibility
X = mvnrnd(mu,Sigma,100);

Evalúe la pdf de la distribución en los puntos de X.

y = mvnpdf(X,mu,Sigma);

Represente los valores de densidad de probabilidad.

scatter3(X(:,1),X(:,2),y)
xlabel('X1')
ylabel('X2')
zlabel('Probability Density')

Figure contains an axes object. The axes object with xlabel X1, ylabel X2 contains an object of type scatter.

Cree diez distribuciones normales de cinco dimensiones diferentes y compare los valores de sus pdf en un punto concreto.

Establezca las dimensiones n y d como iguales a 10 y 5, respectivamente.

n = 10;
d = 5;

Especifique las medias mu y las covarianzas Sigma de las distribuciones normales multivariantes. Deje que todas las distribuciones tengan el mismo vector de media, pero varíe las matrices de covarianza.

mu = ones(1,d)
mu = 1×5

     1     1     1     1     1

mat = eye(d);
nMat = repmat(mat,1,1,n);
var = reshape(1:n,1,1,n);
Sigma = nMat.*var;

Muestre las dos primeras matrices de covarianza en Sigma.

Sigma(:,:,1:2)
ans = 
ans(:,:,1) =

     1     0     0     0     0
     0     1     0     0     0
     0     0     1     0     0
     0     0     0     1     0
     0     0     0     0     1


ans(:,:,2) =

     2     0     0     0     0
     0     2     0     0     0
     0     0     2     0     0
     0     0     0     2     0
     0     0     0     0     2

Establezca x para que sea un punto aleatorio en un espacio en cinco dimensiones.

rng('default')  % For reproducibility
x = normrnd(0,1,1,5)
x = 1×5

    0.5377    1.8339   -2.2588    0.8622    0.3188

Evalúe la pdf en x para cada una de las diez distribuciones.

y = mvnpdf(x,mu,Sigma)
y = 10×1
10-4 ×

    0.2490
    0.8867
    0.8755
    0.7035
    0.5438
    0.4211
    0.3305
    0.2635
    0.2134
    0.1753

Represente los resultados.

scatter(1:n,y,'filled')
xlabel('Distribution Index')
ylabel('Probability Density at x')

Figure contains an axes object. The axes object with xlabel Distribution Index, ylabel Probability Density at x contains an object of type scatter.

Argumentos de entrada

contraer todo

Puntos de evaluación, especificados como un vector numérico de 1 por d o una matriz numérica de n por d, donde n es un entero escalar positivo y d es la dimensión de una sola distribución normal multivariante. Las filas de X corresponden a observaciones (o puntos) y las columnas corresponden a variables (o coordenadas).

Si X es un vector, entonces mvnpdf lo replica para que coincida con la dimensión mu del principio o la dimensión Sigma del final.

Tipos de datos: single | double

Medias de las distribuciones normales multivariantes, especificadas como un vector numérico de 1 por d o una matriz numérica de n por d.

  • Si mu es un vector, entonces mvnpdf replica el vector para que coincida con la siguiente dimensión de Sigma.

  • Si mu es una matriz, cada fila de mu es el vector medio de una sola distribución normal multivariante.

Tipos de datos: single | double

Covarianzas de las distribuciones normales multivariantes, especificadas como una matriz definida, positiva y simétrica de d por d o un arreglo numérico de d por d por n.

  • Si Sigma es una matriz, mvnpdf replicará la matriz para que coincida con el número de filas de mu.

  • Si Sigma es un arreglo, cada página de Sigma, Sigma(:,:,i), corresponderá a la matriz de covarianzas de una sola distribución normal multivariante y, por tanto, se tratará de una matriz definida, positiva y simétrica.

Si las matrices de covarianzas son diagonales, que contienen varianzas en la diagonal sin covarianzas fuera de ellas, también puede especificar Sigma como un vector de 1 por d o un arreglo de 1 por d por n que contenga solo las entradas diagonales.

Tipos de datos: single | double

Argumentos de salida

contraer todo

valores de la pdf, devueltos como un vector numérico de n por 1, donde n es uno de los siguientes:

  • Número de filas de X si X es una matriz

  • Número de veces que X se replica si X es un vector

Si X es una matriz, mu es una matriz y Sigma es un arreglo, mvnpdf calculará y(i) usando X(i,:), mu(i,:) y Sigma(:,:,i).

Más acerca de

contraer todo

Distribución normal multivariante

La distribución normal multivariante es una generalización de la distribución normal univariante a dos o más variables. Tiene dos parámetros, un vector de media μ y una matriz de covarianzas Σ, que son análogos de los parámetros de media y varianza de una distribución normal univariante. Los elementos de la diagonal de Σ contienen las varianzas de cada variable, y los elementos fuera de la diagonal de Σ contienen las covarianzas entre variables.

La función de densidad de probabilidad (pdf) de la distribución normal multivariante dimensional d es

y = f(x,μ,Σ) = 1|Σ|(2π)dexp(12(x-μΣ-1(x-μ)')

donde x y μ son vectores de 1 por d y Σ es una matriz definida positiva y simétrica de d por d. Solo mvnrnd admite matrices semidefinidas positivas Σ, que pueden ser singulares. La pdf no puede tener la misma forma cuando Σ es singular.

La función de distribución acumulativa (cdf) multivariante evaluada en x es la probabilidad de que un vector aleatorio v, distribuido como una normal multivariante, se encuentre dentro del rectángulo semiinfinito con límites superiores definido por x:

Pr{v(1)x(1),v(2)x(2),...,v(d)x(d)}.

Aunque la cdf normal multivariante no tiene una forma cerrada, mvncdf puede calcular los valores de cdf de manera numérica.

Sugerencias

  • En el caso de una sola dimensión, Sigma es la varianza, no la desviación estándar. Por ejemplo, mvnpdf(1,0,4) es igual a normpdf(1,0,2), donde 4 es la varianza y 2 es la desviación estándar.

Referencias

[1] Kotz, S., N. Balakrishnan, and N. L. Johnson. Continuous Multivariate Distributions: Volume 1: Models and Applications. 2nd ed. New York: John Wiley & Sons, Inc., 2000.

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido antes de R2006a