UNIDAD 2
Simulación de Variables Aleatorias
2.1 Producción de números con comportamiento estadístico aleatorio y uniforme en [0, 1]
2.1.1. Uso del generador incluido en la hoja de cálculo.
2.1.2. Teoría: métodos congruenciales
2.2. Simulación de otras variables aleatorias
2.2.1. Teoría: transformación inversa, composición, convolución y otros
procedimientos.
2.2.2. Funciones inversas de hoja de cálculo, utilizables como simuladores.
2.3. Simulación de variables especiales: tablas
2.1 Producción de números con comportamiento estadístico aleatorio y uniforme en
[0, 1]
Un número aleatorio es un resultado de una variable al azar especificada por una función
de distribución. Cuando no se especifica ninguna distribución, se presupone que se utiliza
la distribución uniforme continua en el intervalo (0,1). Existen un gran número de métodos
para generar los números aleatorios uniformes entre 0 y 1. Algunas formas de obtener
estos números son:
Utilizando tablas de números aleatorios.
Utilizando calculadoras (algunas incluyen una función para generarlos).
Los lenguajes de programación y las hojas electrónicas incluyen una función para
generarlos.
Utilizando generadores congruenciales.
El método a utilizar, en sí mismo, no tiene importancia: la importancia radica en los
números que genera, ya que estos números deben cumplir ciertas características para que
sean válidos. Dichas características son:
Uniformemente distribuidos.
Estadísticamente independientes.
Su media debe ser estadísticamente igual a ½.
Su varianza debe ser estadísticamente igual a 1/12.
Su periodo o ciclo de vida debe ser largo.
Deben ser generados a través de un método que no requiera mucha capacidad de
almacenamiento de la computadora.
La mayor parte de los generadores de números aleatorios son, en realidad,
pseudoaleatorios: se calcula (o introduce internamente) un valor X0, que llamaremos
semilla, y, a partir de él, se van generando X1, X2, X3, … Siempre que partamos de la
misma semilla, se obtendrá la misma secuencia de valores.
2.1.1. Uso del generador incluido en la hoja de cálculo.
La función ALEATORIO() de Excel
Las hojas de cálculo como Excel (y cualquier lenguaje de programación estándar) son
capaces de generar números pseudoaleatorios provenientes de una distribución
uniforme entre el 0 y el 1. Este tipo de números pseudoaleatorios son los elementos
básicos a partir de los cuales se desarrolla cualquier simulación por ordenador. En
Excel, es posible obtener un número pseudoaleatorio proveniente de una distribución
uniforme entre el 0 y el 1- usando la función =ALEATORIO():
Los números generados mediante la función ALEATORIO tienen dos propiedades que
los hacen equiparables a números completamente aleatorios:
1. Cada vez que se usa la función ALEATORIO, cualquier número real entre 0 y 1
tiene la misma probabilidad de ser generado (de ahí el nombre de distribución
uniforme).
2. Los diferentes números generados son estadísticamente independientes unos
de otros (es decir, el valor del número generado en un momento dado no
depende de los generados con anterioridad).
La función ALEATORIO es una función volátil de Excel. Esto significa que cada vez que
pulsamos la tecla F9 o cambiemos alguno de los inputs del modelo, todas las celdas
donde aparezca la función ALEATORIO serán recalculadas de forma automática.
2.1.2 Métodos Congruenciales
a. Método congruencial multiplicativo
El método base es el método congruencial de generación de números {1, 2, …, (N - 1)}.
Para ello, se toman a, m (enteros adecuados), se indica un valor inicial Xo=(semilla). El
valor de Xn en el conjunto {1,2, …, (m – 1)}, se calcula con el esquema recursivo.
X0 = a • Xn-1 (mod m)
X1 = a • X0 (mod m)
X2 = a • X1 (mod m)
X3 = a • X2 (mod m)
Ejemplo: Encuentre 5 números aleatorios con el generador congruencial multiplicativo.
Considere los siguientes valores.
Xo= 17
a = 11
m = 23
n Formula Entero Residuo Aleatorio
a*Xn-1 Columna 2/m Xn Residuo/m
0 17 17/23 = 0.7391
1 11*17 = 187 187/23 = 8…. 187-(8*23)= 3 3/23 = 0.130
2 11*3 = 33 33/23 = 1….. 33-(1*23)= 10 10/23 = 0.4347
3 11*10 = 110 110/23 = 4….. 110-(4*23) = 18 18/23 = 0.7826
4 11*18 = 198 198/23 = 8….. 198-(8*23) = 14 14/23 = 0.6086
5 11*14 = 154 154/23 = 6….. 154-(6*23) = 16 16/23 = 0.6956
[Link] Método congruencial mixto
El método congruencial mixto genera una sucesión de números aleatorios enteros en
un rango de 0 m – 1. Este método siempre calcula el siguiente a partir del último que se
obtuvo, dado un número aleatorio inicial X0, llamado semilla, que se puede obtener de
alguna tabla publicada. En particular, calcula el (n + 1) ésimo número aleatorio Xn-1
usando la relación de recurrencia:
Xn = a • Xn-1 + C (mod m)
X1 = a • X0 + C (mod m)
X2 = a • X1 + C (mod m)
X3 = a • X2 + C (mod m)
En donde, a, c y m son enteros positivos. Esta notación matemática significa que Xn-1
es el residuo cuando aXn + c se divide por m. Entonces, los valores posibles de Xn+1
son 0, 1, …, m – 1, de manera que m representa el número deseado de valores
diferentes que se pueden generar como números aleatorios.
Ejemplo: Suponga que m = 41, a = 33, c = 73 y Xo= 13.
n Formula Entero Residuo Aleatorio
a*Xn-1+c Col 2/m Xn Residuo/m
0 13 13/41 = 0.3170
1 33*13+73 = 502 502/41 = 12…. 502-12*41 = 10 10/41 = 0.2439
2 33*10+73 = 403 403/41 = 9…… 403-9*41 = 34 34/41 = 0.8292
3 33*34+73 = 1195 1195/41 = 29…. 1195-29*41 = 6 6/41 = 0.1463
4 33*6 + 73 = 271 271/41 = 6…… 271-6*41 = 25 25/41 = 0.6097
5 33*25 +73 = 898 898/41 = 21…… 898-21*41 = 37 37/41 = 0.9024
2.2. Simulación de otras variables aleatorias
2.2.1. Teoría: transformación inversa, composición, convolución y otros
procedimientos.
Introducción a la generación de variables aleatorias
Una de las aplicaciones de la simulación surge en aquellas situaciones en las que se
requiere un cierto método de muestreo estocástico, aunque la toma de una muestra
resulta imposible o económicamente impracticable. Tal puede ser el caso con los datos
obtenidos con las fallas de la maquinaria en una industria en la que no se dispone de
archivos precisos, relativos a la historia de una o varias máquinas en particular. En
muchos casos estos datos estadísticos son imposibles de obtener; Sin embargo, se
pueden suponer ciertos comportamientos respecto a la población en la que se originan
los datos, esto es la esencia de la simulación; es decir, realizar un análisis del tipo “que
pasa si”.
La generación de estadísticas simuladas, o sea de los valores de las variables
aleatorias, tienen una naturaleza enteramente estocástica y debe soportarse por
números aleatorios, generados por algún método.
En todo modelo de simulación estocástico, existen una o varias variables aleatorias
interactuando. Generalmente, estas variables siguen distribuciones de probabilidad
teóricas o empíricas, diferentes a la distribución uniforme. Por consiguiente, para
simular este tipo de variables es necesario contar con un generador de números
aleatorios uniformes y una función que a través de un método especifico transforme
estos números en valores de la distribución de probabilidad deseada.
Variables Aleatorias
Una variable es aleatoria si toma diferentes valores como resultado de un experimento
aleatorio. Puede ser discreta o continua. Si puede tomar sólo un número limitado de
valores, entonces es una variable aleatoria discreta. En otro caso, si puede tomar
cualquier valor dentro de un intervalo dado, entonces se trata de una variable aleatoria
continua. La distribución de probabilidad de una variable aleatoria proporciona una
probabilidad para cada valor posible, y estas probabilidades deben sumar 1.
Sean x1, x2, x3,... xn los distintos valores que puede tomar la variable aleatoria. Yp(x1),
p(x2),... p(xn) su probabilidad. Los pares de valores (xj, p(xj)) constituyen la distribución
de probabilidades de la variable aleatoria. p(x) se denomina función de probabilidad, y
debe cumplir con las siguientes propiedades:
1. 0 < p(xj) < 1 (p(x) es una probabilidad, y por lo tanto debe tomar valores entre 0
y 1).
2. P(xj) = 1 (la suma de probabilidades repartidas entre todos los valores de la
variable debe ser igual a 1).
Método de la transformada inversa para variables aleatorias discretas.
Este método se usa, por lo general, para distribuciones cuya función de distribución
acumulada se pueda obtener en forma cerrada. Los ejemplos comprenden las
distribuciones exponencial, uniforme, triangular y de Weibull (para distribuciones cuya
función de distribución acumulada no existe en forma cerrada, se podrá usar algún
método numérico, como la expansión en serie de potencias, dentro del algoritmo para
evaluar la función. Sin embargo, es probable que esto complique el procedimiento a tal
grado que resulte mejor usar un algoritmo distinto para generar las cantidades
aleatorias). El método de transformación inversa es relativamente fácil de describir y de
ejecutar. Consiste en los pasos siguientes:
Paso 1:
Dada una función de densidad de probabilidad f(x)=f(t)dt para una variable aleatoria X,
obtener la función de distribución acumulada F(x)
𝑥
𝐹(𝑥) = ∫ 𝑓(𝑡)𝑑𝑡
−∝
Paso 2:
Despejar la variable aleatoria x y obtener la función acumulada inversa F(x) -1. Generar
un número aleatorio r.
Paso 3:
Generar las variables aleatorias x, sustituyendo valores con números pseudoaleatorios
r i uniformes entre cero y uno en la función acumulada inversa.
Distribución Uniforme
Función de densidad de las variables aleatorias uniformes entre a y b
1
𝑓(𝑥) = 𝑎≤𝑥≤𝑏
𝑏−𝑎
Función acumulada:
𝑥
1
𝐹(𝑥) = ∫ 𝑑𝑥
𝑎 𝑏−𝑎
1 𝑥 1 𝑥 𝑥 𝑎 𝑥−𝑎
𝐹 (𝑥 ) = ∫ 𝑑𝑥 = 𝑥 ]𝑎𝑥 = ]𝑎𝑥 = − = =
𝑏−𝑎 𝑎 𝑏−𝑎 𝑏−𝑎 𝑏−𝑎 𝑏−𝑎 𝑏−𝑎
𝑥−𝑎
𝐹(𝑥) = 𝑅 =
𝑏−𝑎
𝑅(𝑏 − 𝑎) = 𝑥 − 𝑎
𝑥 = 𝑎 + 𝑅(𝑏 − 𝑎)
Ejemplo:
La temperatura de una estufa se comporta uniformemente en el rango de 95 a 100
grados centígrados. Utilizando los números aleatorios 0.48, 0.82, 0.69, 0.67, 0.00, 1
modele el comportamiento de la variable aleatoria que simula la temperatura de la
estufa.
𝑥 = 𝑎 + 𝑅(𝑏 − 𝑎)
𝑥 = 95 + 𝑅(100 − 95)
𝑥 = 95 + 𝑅(5)
Medición ri Temperatura
1 0.48 95+5(.48) = 97.4
2 0.82 95+5(.82) = 99.1
3 0.69 95+5(.69) = 98.45
4 0.67 95+5(.67) = 98.35
5 0 95+5(0) = 95
6 1 95+5(1) = 100
Distribución Exponencial
Se genera a partir de la función de densidad de las variables aleatorias exponenciales
con media de 1⁄𝜆
Función de densidad:
𝑓(𝑥) = 𝜆𝑒 −𝜆𝑥 𝑝𝑎𝑟𝑎 𝑥 ≥ 0
Función acumulada
𝑥
𝐹(𝑥) = ∫ 𝜆𝑒 −𝜆𝑥 𝑑𝑥
0
La distribución acumulada de esta función de 0 a un valor de x es:
𝑥
𝐹(𝑥) = ∫ 𝜆𝑒 −𝜆𝑥 𝑑𝑥 𝑢 = −𝜆𝑥 𝑑𝑢 = −𝜆𝑑𝑥
0
𝑥
𝐹(𝑥) = − ∫0 𝑒 −𝜆𝑥 − 𝜆𝑑𝑥
𝑥
𝐹(𝑥) = −𝑒 −𝜆𝑥 ]0 = −𝑒 −𝜆𝑥 − (−𝑒 −𝜆(0) ) = −𝑒 −𝜆𝑥 + −𝑒 −0
𝑅 = 𝐹(𝑥) = 1 − 𝑒 −𝜆𝑥
𝑒 −𝜆𝑥 = 1 − 𝑅
−𝜆𝑥 = ln(1 − 𝑅)
1 1
𝑥= ln(1 − 𝑅) = − ln 𝑅
−𝜆 𝜆
Ejemplo:
Los datos históricos del tiempo de servicio en la caja de un banco se comportan de
forma exponencial con media de 3 minutos por cliente. Una lista de números pseudo
aleatorios uniformes son: 0.64, 0.83, 0.03, 0.50, 0.21. Simule el comportamiento de la
variable aleatoria.
Cliente Ri Formula Formula
X=-3 ln r X= -3 ln (1-r)
1 0.64 1.33 3.06
2 0.83 .5589 5.31
3 0.03 10.52 0.091
4 0.50 2.07 2.07
5 0.21 4.68 0.7071
Distribuciones Discretas
El método de la transformada inversa también puede emplearse para simular variables
aleatorias de tipo discreto, como en las distribuciones de poisson, de Bernoulli,
binomial, geométrica etc.. La generación se lleva a cabo a través de la probabilidad
acumulada P(X) y la generación de números pseudoaleatorios uniformes entre cero y
uno. El método consiste en:
1. Calcular todos los valores de la distribución de probabilidad p(x) de la variable a
modelar.
2. Calcular todos los valores de la distribución acumulada P(X)
3. Generar números pseudoaleatorios uniformes en el intervalo 0,1
4. Comparar el valor de P(X) y determinar qué valor de x corresponde.
Ejemplo:
El número de piezas que entran a un sistema productivo sigue una distribución de
poisson con media de 2 piezas por hora. Simular el comportamiento de la llegada de las
piezas al sistema.
A partir de la distribución de probabilidad de la variable aleatoria de poisson con media
2 y utilizando la fórmula de poisson se tiene:
𝜆𝑥 𝑒 −𝜆
𝑝(𝑥) = Para x=0,1,2,3,4,5……
𝑥!
Como la media es igual a 2 piezas por hora; λ=2
2𝑥 𝑒 −2
𝑝(𝑥) =
𝑥!
Las probabilidades puntuales y las acumuladas para x=0,1,2,3,4,5,6 son:
x p(x) P(X) Limite Limite
inferior Superior
0 .1353 .1353 0 .1353
1 .2706 .4060 .1354 .4060
2 .2706 .6766 .4061 .6766
3 .1804 .8571 .6767 .8571
4 .0902 .9473 .8572 .9473
5 .0360 .9834 .9474 .9834
6 .0120 .9954 .9835 .9954
Simulación de la llegada de piezas al sistema con variables aleatorias de poisson
Hora Ri Piezas/hora
1 .6754 2
2 .0234 0
3 .7892 3
4 .5134 2
5 .3331 1
Método de convolucion
En algunas distribuciones de probabilidad como la normal, binomial, poisson, gamma,
erlang etc. la variable aleatoria a simular, Y, puede generarse mediante la suma de
otras variables aleatorias x de manera más rápida que a través de otros métodos.
Entonces el método de convolucion se puede expresar como:
Y=X1 + X2 +X3 +X4 +X5 +X6 +X7 +…….Xk
Distribución Normal
La variable aleatoria normal con media de µ y desviación estándar σ, puede generarse
usando el teorema de límite central:
Y=X1 + X2 +X3 +X4 +X5 +X6 +X7 +…….Xk N(Kµx, Kσx2)
Al sustituir Xi por números pseudoaleatorios ri, se obtiene:
Y= r1 +r2 +r3 +r4 +r5 +r6 +r7 +……..+rk N(K½, K 1/12)
Y= r1 +r2 +r3 +r4 +r5 +r6 +r7 +……..+r12 N(12/2,12/12) N(6,1)
Y= Z= (r1 +r2 +r3 +r4 +r5 +r6 +r7 +……..+r12) – 6 N(0,1)
𝑥−𝜇
𝑍 = 𝑁𝑖 = [ ∑12
𝑖=1(𝑟𝑖) ] − 6 = N(0,1)
𝜎
Despejando Xi se tiene que:
12
𝑥 = 𝑁𝑖 = [ ∑ (𝑟𝑖 ) − 6]𝜎 + 𝜇
𝑖=1
Ejemplo:
El volumen de líquido de un refresco sigue una distribución normal con media de 12
onzas y desviación estándar de 0.4 onzas. Generar 5 variables aleatorias con esta
distribución para simular el proceso de llenado.
12
𝑥 = 𝑁𝑖 = [∑ (𝑟𝑖 )) − 6]𝜎 + 𝜇
𝑖=1
12
𝑥 = 𝑁𝑖 = [∑ (𝑟𝑖 ) − 6]0.4 + 12
𝑖=1
Números aleatorios:
.011+ .272+.261+.808+.195+.994+.369+.49+.271+.255+.869+.824 = 5.619
𝑁𝑖 = ⌈5.619⌉ − 6]0.4 + 12 = 11.8476
Botella 𝟏𝟐 Volumen
[∑ (𝒓𝒊 )
𝒊=𝟏 (onzas)
1 5.619 11.847
2 6.21 12.084
3 5.34 11.736
4 6.03 12.012
5 4.81 11.524
MÉTODO DE COMPOSICIÓN
Otro método para generar valores de variables aleatorias no-uniformes es el método de
composición. Mediante este método la distribución de probabilidad F(x) se expresa
como una mezcla de varias distribuciones de probabilidad F(x) seleccionadas
adecuadamente.
El procedimiento para la selección de las F(x) se basa en el objetivo se minimizar el
tiempo de computación requerido para la generación de valores de la variable aleatoria
analizada.
Los pasos requeridos para la aplicación de este método en la simulación de variables
no-uniformes son los siguientes:
1. Dividir la distribución de probabilidad original en sub-áreas, tal como se muestra
en la figura
2. Definir la distribución de probabilidad para cada sub-área.
3. Expresar la distribución de probabilidad original en la forma siguiente:
F(x)=A1F1(x) + A2F2(x) +… AnFn(x) y ∑Ai = 1
4. Obtener la distribución acumulada de las áreas:
5. Generar dos números uniformes R1, R2
6. Seleccionar la distribución de probabilidad F(x) con la cual se va simular el valor
de x. La selección de esta distribución se obtiene al aplicar el método de la
transformada inversa, en la cual el eje Y está representado por la distribución
acumulada de las áreas, y el eje X por las distribuciones F(x). Para esta
selección se utiliza el numero uniforme R1.
7. Utilizar el numero uniforme R2 para simular por el método de la transformada
inversa o algún otro procedimiento especial, números al azar que sigan la
distribución de probabilidad F(x) seleccionada en el paso anterior.
2.2.2. Funciones inversas de hoja de cálculo, utilizables como simuladores.
Independientemente del complemento Análisis de datos, es posible usar un resultado
muy conocido de la teoría estadística, llamado método de la transformada inversa, para
derivar las fórmulas que permiten obtener valores pseudoaleatorios provenientes de
distribuciones como la Weibull o la Lognormal. En la tabla siguiente se muestran
algunas fórmulas que, implementadas en celdas de Excel, nos permiten obtener
valores pseudoaleatorios de algunas de las distribuciones continuas más usadas:
DISTRIBUCION PARAMETROS FORMULA EXCELL
Exponencial Media = b = -LN(ALEATORIO())*b
Weibull Escala = b = b*(-LN(ALEATORIO())^(1/a)
Forma = a
Normal Media = µ = [Link](ALEATORIO(),μ,σ)
Desv. Est.= σ
Lognormal Media de Ln(X)= µ = [Link](ALEATORIO(),μ,σ)
Desv. [Link] Ln(X)= σ
Uniforme entre a y b Extremo inferior = a = a+(b-a)*ALEATORIO()
Extremo superior = b
2.3. Simulación de variables especiales: tablas