Main Content

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),'+')

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))

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