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.

mvnrnd

Números aleatorios normales multivariantes

Descripción

ejemplo

R = mvnrnd(mu,Sigma,n) devuelve una matriz R de n vectores aleatorios seleccionados de la misma distribución normal multivariante, con el vector de media mu y la matriz de covarianzas Sigma. Para obtener más información, consulte Distribución normal multivariante.

ejemplo

R = mvnrnd(mu,Sigma) devuelve una matriz de m por d R de vectores aleatorios obtenidos de m distribuciones independientes normales multivariantes de d dimensiones, con las medias y covarianzas especificadas por mu y Sigma, respectivamente. Cada fila de R es un solo vector aleatorio normal multivariante.

Ejemplos

contraer todo

Genere números aleatorios a partir de la misma distribución normal multivariante.

Defina mu y Sigma y genere 100 números aleatorios.

mu = [2 3];
Sigma = [1 1.5; 1.5 3];
rng('default')  % For reproducibility
R = mvnrnd(mu,Sigma,100);

Represente los números aleatorios.

plot(R(:,1),R(:,2),'+')

Figure contains an axes object. The axes contains a line object which displays its values using only markers.

Obtenga una muestra de forma aleatoria de 5 distribuciones normales tridimensionales diferentes.

Indique las medias mu y las covarianzas Sigma de las distribuciones. Deje que todas las distribuciones compartan la misma matriz de covarianzas, pero varíe los vectores de media.

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

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

Sigma = eye(3)
Sigma = 3×3

     1     0     0
     0     1     0
     0     0     1

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

rng('default')  % For reproducibility
R = mvnrnd(mu,Sigma)
R = 5×3

    1.5377   -0.3077   -0.3499
    3.8339    1.5664    5.0349
    0.7412    3.3426    3.7254
    4.8622    7.5784    3.9369
    5.3188    7.7694    5.7147

Represente los resultados.

scatter3(R(:,1),R(:,2),R(:,3))

Figure contains an axes object. The axes object contains an object of type scatter.

Argumentos de entrada

contraer todo

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

  • Si mu es un vector, entonces mvnrnd replica el vector para coincidir con las 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

Las covarianzas de las distribuciones normales multivariantes, especificadas como una matriz semidefinida, positiva y simétrica de d por d o un arreglo numérico de d por d por m.

  • Si Sigma es una matriz, mvnrnd replicará la matriz para coincidir 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 semidefinida, 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 m que contenga solo las entradas diagonales.

Tipos de datos: single | double

Cantidad de números aleatorios multivariantes, especificada como un entero escalar positivo. n especifica el número de filas de R.

Tipos de datos: single | double

Argumentos de salida

contraer todo

Números aleatorios normales multivariantes, devueltos de una de las siguientes formas:

  • Matriz numérica de m por d, donde m y d son las dimensiones especificadas por mu y Sigma

  • Matriz numérica de n por d, donde n es el argumento de entrada especificado y d es la dimensión especificada por mu y Sigma

Si mu es una matriz y Sigma es un arreglo, mvnrnd calculará R(i,:) usando 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

  • mvnrnd requiere que la matriz Sigma sea simétrica. Si Sigma tiene una pequeña asimetría, puede usar (Sigma + Sigma')/2 en su lugar para solucionarla.

  • En el caso de una sola dimensión, Sigma es la varianza, no la desviación estándar. Por ejemplo, mvnrnd(0,4) es igual a normrnd(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