mvnpdf
Función de densidad de probabilidad normal multivariante
Descripción
devuelve un vector y
= mvnpdf(X
)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.
Ejemplos
Pdf normal multivariante estándar
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.
Pdf normales multivariantes evaluadas en puntos diferentes
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
Pdf normal multivariante
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')
Pdf normales multivariantes evaluadas en el mismo punto
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')
Argumentos de entrada
X
— Puntos de evaluación
vector numérico | matriz numérica
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
mu
— Medias de las distribuciones normales multivariantes
vector de ceros (predeterminado) | vector numérico | matriz numérica
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, entoncesmvnpdf
replica el vector para que coincida con la siguiente dimensión deSigma
.Si
mu
es una matriz, cada fila demu
es el vector medio de una sola distribución normal multivariante.
Tipos de datos: single
| double
Sigma
— Covarianzas de las distribuciones normales multivariantes
matriz identidad (predeterminado) | matriz definida, positiva y simétrica | arreglo numérico
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 demu
.Si
Sigma
es un arreglo, cada página deSigma
,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
y
— valores de la pdf
vector numérico
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
siX
es una matrizNúmero de veces que
X
se replica siX
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
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
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:
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 anormpdf(1,0,2)
, donde4
es la varianza y2
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™.
Arreglos GPU
Acelere código mediante la ejecución en una unidad de procesamiento gráfico (GPU) mediante Parallel Computing Toolbox™.
Esta función es totalmente compatible con los arreglos de GPU. Para obtener más información, consulte Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Historial de versiones
Introducido antes de R2006a
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)