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.

Generar números aleatorios mediante la inversión de la distribución uniforme

En el ejemplo se muestra cómo generar números aleatorios mediante el método de la inversión de la distribución uniforme. Es útil para distribuciones cuando se puede calcular la función de distribución acumulativa inversa, pero no se pueden crear muestras a partir de la distribución directamente.

Paso 1: Generar números aleatorios a partir de la distribución uniforme estándar.

Utilice rand para generar 1000 números aleatorios a partir de la distribución uniforme en el intervalo (0,1).

rng('default')  % For reproducibility
u = rand(1000,1);

El método de inversión se basa en el principio de que las funciones de distribución acumulativa continuas (cdf) se extienden uniformemente por el intervalo abierto (0,1). Si u es un número aleatorio uniforme en (0,1), entonces x=F-1(u) genera un número aleatorio x a partir de cualquier distribución continua con la cdf F especificada.

Paso 2: Generar números aleatorios a partir de la distribución de Weibull.

Utilice la función de distribución acumulativa inversa para generar los números aleatorios a partir de una distribución de Weibull con los parámetros A = 1 y B = 1 que corresponden a las probabilidades de u. Represente los resultados.

x = wblinv(u,1,1);
histogram(x,20);

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

El histograma muestra que los números aleatorios generados mediante la función wblinv de la cdf inversa de Weibull tienen una distribución de Weibull.

Paso 3: Generar números aleatorios a partir de la distribución normal estándar.

Los mismos valores de u pueden generar números aleatorios a partir de cualquier distribución, como la normal estándar, siguiendo el mismo procedimiento con la cdf inversa de la distribución deseada.

figure
x_norm = norminv(u,1,1);
histogram(x_norm,20)

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

El histograma muestra que, utilizando la cdf norminv inversa normal estándar, los números aleatorios generados a partir de u ahora tienen una distribución normal estándar.

Consulte también

| | |

Temas relacionados