Вы находитесь на странице: 1из 83

Instituto Politcnico Nacional

Escuela Superior de Fsica y Matemticas

Simulacin.
Versin 3

Autor: Ramn Sebastin Salat Figols . Septiembre de 2016.

D.R. Instituto Politcnico Nacional (IPN), Av. Luis Enrique Erro S/N,
Unidad Profesional Adolfo Lpez Mateos, Zacatenco, Delegacin
Gustavo A. Madero, C.P. 07738, Ciudad de Mxico; Mxico 2016.

1
Prlogo.

El autor de stas notas sobre simulacin las ha escrito considerando los


programas de estudio de las materias de Simulacin I y de Simulacin II de la
carrera de Ingeniera Matemtica de la Escuela Superior de Fsica y Matemticas y
aprovechando la experiencia de haber impartido ambas materias en varias
ocasiones, con el propsito de que los estudiantes dispongan de un material
pertinente a los cursos.
Las notas contienen algunos programas para computadora que utilizan el
lenguaje de programacin Python.
sta es una tercera edicin, en la que se han agregado varias secciones, la
bibliografa y se han corregido algunos errores de la primera; espero que puedan
seguir otras ediciones que incluyan ampliaciones, mejoras y una mayor cantidad de
ejercicios.

Ramn Sebastin Salat Figols, octubre de 2016.

2
ndice.
Captulo I.
1.1 Introduccin a la simulacin..................................................................5
1.2 Generacin de nmeros aleatorios.........................................................8
1.3 Pruebas de aleatoriedad........................................................................11
1.4 Evaluacin de integrales......................................................................13
1.5 Caminata aleatoria y movimiento Browniano.....................................16
1.6 Aplicaciones a las finanzas y a la ingeniera...18
1.6.1 Modelo binomial para el precio de una accin.18
1.6.2 Simulacin de una lnea de espera....20
Captulo II
2.1 Generacin de variables aleatorias discretas.......................................23
2.1.1 Generacin de nmeros aleatorios que siguen una distribucin
binomial.....................................................................................................24
2.1.2 Generacin de nmeros aleatorios que siguen una distribucin
de Poisson..................................................................................................25
2.2 Mtodo de aceptacin y rechazo..........................................................25
2.3 Mtodo de composicin.......................................................................27
2.4 Generacin de nmeros aleatorios para variables aleatorias continuas...28
2.4.1 Mtodo de la transformada inversa...................................................28

3
2.4.2 Mtodo polar para generar nmeros que sigan una distribucin
normal..................................................................................................29
2.5 Generacin de un proceso de Poisson....................................................31
Captulo III.
3.1 Lneas de espera de un solo servidor, M/M/1.........................................35
3.2 Lneas de espera con dos servidores.......................................................40
3.3 Inventarios..............................................................................................42
3.4 Reparacin y substitucin de mquinas.................................................48
3.5 Ejercicio de opciones financieras...........................................................54
3.6 Verificacin.56
Captulo IV.
4.1 Interpretacin estadstica de resultados..................................................58
4.2 Mtodos de reduccin de varianza.........................................................63
4.2.1 Variables antitticas.............................................................................63
4.2.2 Mtodo de variables de control...........................................................65
4.2.3 Por condicionamiento..........................................................................68
Captulo V
5.1 Introduccin............................................................................................70
5.2 Validacin estadstica..............................................................................70
5.2.1 Pruebas de bondad de ajuste................................................................70
5.2.2 El problema de las dos muestras..........................................................74
5.2.3 Validacin de la hiptesis de que un proceso de Posisson
es no homogneo..... 78
5.2.4 Aplicaciones a las finanzas y a la ingeniera79
Apndice.......................................................................................................80

4
Captulo I

1.1 Introduccin a la simulacin.

Clculo de .

Consideremos que lanzamos N dardos sobre un cuadrado unitario con una


esquina en el origen del sistema cartesiano y ubicado en el primer cuadrante, de
manera uniforme. En ste cuadrado est inscrito un cuarto de crculo de radio igual
a 1 . El rea del cuadrado es 1 , mientras que la del crculo es /4 . Por lo
tanto, si los dardos se lanzan de manera uniforme, el nmero de dardos n que
caen dentro del crculo, para N grande, ser al nmero total de dardos,
aproximadamente, como el rea del crculo /4 es al rea del cuadrado, que es
1 :

n (1.1)
4 N

Es sencillo escribir un programa en computadora para simular el lanzamiento


de los dardos, imaginando que el centro del crculo est en el origen de un sistema
cartesiano de coordenadas con sus ejes paralelos a los lados del cuadrado. Un
algoritmo para realizar ste clculo puede ser el siguiente:
i=0 , cuenta=0 .
Mientras i< N :

5
Generar dos nmeros independientes x y y , uniformemente
distribuidos en [0,1] .

Figura 1.

Si x 2 + y2<1 , hacemos cuenta=cuenta+1 .


Hacemos i=i+1 .
Calculamos 4cuenta/ N .

A continuacin se muestra el cdigo de un programa para realizar el algoritmo


anterior, que imprime en la pantalla los valores que se obtienen cada mltiplo de
1000 dardos lanzados.

6
from random import random
i=0
cuenta=0
N=1000000
while i<N:
x=random()
y=random()
if x**2+y**2<1:
cuenta=cuenta+1
i=i+1
if i%1000==0:
print(i,4*cuenta/i)
print(4*cuenta/N)

En la Fig. 1 se muestran los resultados de la realizacin de una simulacin


para estimar . Se observa que conforme el nmero de dardos lanzados
aumenta, el valor estimado se acerca cada vez ms a . Para entender con ms
precisin el sentido de sta afirmacin, debemos recurrir a los conocimientos de la
Teora de la Probabilidad. Si X N es la variable aleatoria que da el nmero de los
N dardos que caen dentro del crculo, entonces XN sigue una distribucin
binomial con parmetros N y p= /4 . Luego la media de XN ser
N / 4 y la varianza ser (N/ 4)(1 / 4) . Y la media y la varianza de la
proporcin de dardos que caen dentro del crculo sern /4 y
(/ 4N )(1/ 4) , respectivamente.
Por otro lado, la desigualdad de Tchebychev establece que para cualquier
positivo (ver apndice):

7
(1 )
4 4
P(|X N | >)< (1.2)
4 N2

De donde:
lim P(|X N | >)=0
N 4
Es decir, la probabilidad de que la proporcin de dardos que caigan dentro del
crculo se alejen de / 4 en ms que tiende a cero cuando N tiende a
infinito; y esto es cierto, cualquiera que sea el valor positivo de . Es importante
observar que ste concepto, llamado convergencia en probabilidad, es muy
diferente al concepto de convergencia estudiado en los cursos de Clculo.
Ejercicios.
1. Con respecto al ejemplo de la aproximacin de de sta seccin,
Cuntos dardos hay que lanzar para asegurar que P(|X n | > 0.01)<0.1 ?
4
2. Empleando un mtodo similar al empleado en esta seccin para aproximar
, estime mediante simulacin el valor de 2 .
3. Estime mediante simulacin el volumen de una esfera de radio 1.
4. Dos jugadores A y B lanzan volados hasta que alguno de los dos se queda
sin dinero. Si A gana, B paga un peso a A; si B gana, A paga un peso a B. A tiene
inicialmente 3 pesos y B tiene 12 pesos. Estime mediante simulacin la
probabilidad de que A gane al final del juego y el valor esperado del nmero de
volados que se realizarn en el juego.

1.2 Generadores de nmeros aleatorios.

Uno de los generadores de nmeros aleatorios ms sencillos consiste en tomar

8
un nmero de dos cifras, elevarlo al cuadrado y seleccionar el nmero de dos cifras
centrales del cuadrado, y repetir el procedimiento en forma sucesiva. Por ejemplo,
si empezamos por 96, el siguiente nmero ser 21, el siguiente, 44, etc. Por
supuesto, el algoritmo puede utilizarse con nmeros de ms de dos cifras.
Otro mtodo utilizado frecuentemente es el congruencial. Se define mediante
la frmula:
xk +1 =(ax k +c) mod (m) para k=0, 1, 2, 3,.. .

en donde x 0 es algn valor inicial y a mod b es el residuo que resulta de


dividir a entre b .
Puesto que al dividir entre m solamente puede haber m residuos
diferentes, ste algoritmo a lo ms puede producir m residuos diferentes. El
hecho de que produzca m residuos diferentes o que produzca menos, depende de
cmo estn relacionados los parmetros. El algoritmo produce ciclos de tamao
completo m , si y solamente si, se cumplen las tres condiciones siguientes:
1. m y c son primos relativos.
2. Si p es un factor primo de m , entonces p divide a a1 .
3. Si 4 divide a m , entonces 4 divide a a1 .
Ejemplo. Si a=271, c=235 , m=47 y x 0 =32 , un ciclo de los nmeros
generados es 32, 24, 18, 37, 16, 12, 9, 42, 8, 6, 28, 21, 4, 3, 14, 34, 2, 25, 7, 17, 1,
36, 27, que es de longitud 23, menor que m . Obsrvese que el nico factor primo
de 47 es el mismo, y ste no divide a a1 , que es 270. Es decir, no se cumple la
condicin 2.
Ejemplo. Si a=48, c=23 , m=47 y x 0 =32 , un ciclo generado es 32, 8,
31, 7, 30, 6, 29, 5, 28, 4, 27, 3, 26, 2, 25, 1, 24, 0, 23, 46, 22, 45, 21, 44, 20, 43, 19,
42, 18, 41, 17, 40, 16, 39, 15, 38, 14, 37, 13, 36, 12, 35, 11, 34, 10, 33, 9, que es de
longitud igual a m , es decir, es de periodo completo. En este caso, se cumplen
las tres condiciones dadas anteriormente.
El estndar ANSI C emplea m=231 , a=1103515245 y c=12345 .
A continuacin se muestra un programa que genera nmeros aleatorios por el

9
mtodo congruencial y encuentra el periodo.
a=237
c=467
m=337
l=[]
x=37
i=0
while x not in l:
l.append(x)
i=i+1
print(x)
x=(a*x+c)%m
print(i,x)

En simulacin, frecuentemente se requieren de nmeros aleatorios flotantes en


el intervalo [0,1] ; a partir de stos se pueden generar nmeros aleatorios que
sigan las distribuciones frecuentemente empleadas, tales como binomial, normal,
de Poisson, etc. stos pueden obtenerse dividiendo los nmeros obtenidos por un
generador congruencial y dividindolos entre el valor mximo posible; si el
generador es de periodo completo, hay que dividir entre m1 , si se quiere
incluir el 1, o entre m si no se quiere incluir el 1.
Ejemplo. Si a=48, c=23 , m=47 y x 0 =32 se obtienen 0.5614, 0.0351,
0.1930, 0.2456, 0.9298, 0.8246, 0.4561, 0.6667, 0.4035, 0.9825, 0.5088, 0.3509,
0.2982, 0.6140, 0.7193, 0.0877, 0.8772 y 0.1404, aproximados a cuatro cifras
decimales.

Ejercicios.
1. Comience con un nmero de tres cifras, tal como 673, elvelo al cuadrado y
qudese con las dos cifras centrales; continue el procedimiento hasta obtener 4
nmeros aleatorios.

10
2. Utilizando a=51, c=23 , m=57 y x 0 =32 , genere un ciclo y diga de qu
longitud es, Es completo? A partir de este ciclo, construya una lista de nmeros
aleatorios en [0,1] .

1.3 Pruebas de aleatoriedad

Una de las primeras pruebas que pueden realizarse es construir una


representacin grfica de puntos, los cuales se forman tomando los nmeros
aleatorios generados como abscisas y el siguiente nmero generado al de la abscisa,
tomarlo como ordenada, es decir si los nmeros generados son x1, x2, x3, ... x n ,
entonces se grafican los puntos (x1, x 2),(x2, x3 ),... ,(x n1 , x n ) . Si en el grfico se
observan patrones definidos en la distribucin de los puntos, entonces podemos
suponer que se hace notoria una relacin entre los nmeros aleatorios y los
siguientes, lo cual, no es deseable, ver las figuras 2 y 2a.

Figura 2 Figura 2a

Para verificar si los nmeros aleatorios se distribuyen efectivamente de forma


uniforme se realizan varios tipos de pruebas de hiptesis. Una de ellas, es sobre la
hiptesis nula de que los nmeros generados provienen de una poblacin que sigue
una distribucin uniforme en [0, 1 ] ; se puede usar el estadstico chi-cuadrado o
el de la prueba de Kolmogorov-Smirnov.
Para realizar una prueba basada en el estadstico chi-cuadrado, se divide el

11
intervalo [0, 1 ] en n intervalos de igual tamao y se calcula, de acuerdo a la
muestra, la frecuencia absoluta f e de datos que estn en isimo intervalo; por
i

otro lado, la frecuencia absoluta de datos que deberan estar en dicho intervalo
f t , bajo la hiptesis nula, es igual al nmero total de datos por la longitud del
i

subintervalo; se calcula el estadstico:

2 (f e f t )2
n
n1 = i i
(1.3)
i=1 ft i

Se compara el valor obtenido con el valor crtico de la tabla de la distribucin


de 2n1 con n1 grados de libertad, de acuerdo al nivel de significancia
deseado.
Para una prueba basada en el distribucin de Kolmogorov-Smirnov se usa el
estadstico:
D=Supremo|F t (x )F e ( x)| (1.4)
x [0,1]

donde F e es la distribucin de frecuencias empricas acumuladas y Ft es la


distribucin acumulada terica; en este caso, F t (x )= x para x[0,1] . Si la
muestra de nmeros aleatorios que se va a probar es x1, x2, x3,. .. , x n , primero se
ordenan los datos de menor a mayor y se obtiene x(1) , x(2) , x(3) ,..., x( n) ; entonces,
F e ( x(i))=i /n . Puesto que Ft es creciente:

i1 i 1
D=Supremo {|F t ( x)F e (x )|}=Mx {Mx {| x(i ) |, | x (i) | ,|},| x(1) }
x [0,1] i=2,.. n n n n
(1.5)
En este caso la distribucin terica es una uniforme, pero la prueba puede
aplicarse a cualquier distribucin; en general, la distribucin de D bajo la hiptesis
nula no depende de la distribucin terica.
Para estudiar la posible dependencia entre datos sucesivos, se puede recurrir a
la covarianza de U i y U k con ki , donde las U i forman una muestra
aleatoria de variables uniformemente distribuidas en [0, 1 ] (hiptesis nula). Para
n grande, bajo la hiptesis nula, la variable:

12
nk
1 1 1
Ck=
nk =1
(U i )(U i+ k )
2 2
(1.6)

1
sigue una distribucin normal con media cero y desviacin estndar .
12 nk
Debe realizarse sta prueba para diferentes valores de k , digamos 1, 2, 3,.
A stas pruebas se les llama pruebas de correlacin serial.

Ejercicios.
1. Aplicar las tres pruebas estadsticas de esta seccin a una muestra de 1000
nmeros generados con:
a) Congruencial con parmetros a=48, c=23 , m=47 y x0 =32 .

b) Congruencial con parmetros:


31
m=2 , a=1103515245, c=12345 y x 0 =743871 .

2. Para los generadores del ejercicio anterior construir los grficos presentados
al principio de la seccin.
3. Usar el generador definido en el inciso b) del problema 1 para generar diez
mil nmeros entre cero y uno. Realizar las pruebas de hiptesis para la uniformidad
de la distribucin y la independencia entre nmeros sucesivos, al conjunto de datos
generados, a un nivel de significancia de 5 %.

1.4 Evaluacin de integrales

Si X es una variable aleatoria continua con funcin de densidad f X y


g es una funcin continua, la esperanza de g( X ) est dada por:

+
E (g( X ))= g(x )f X (x) dx

13
Si X est uniformemente distribuida en [0,1] , entonces:
1

E( g( X ))= g ( x) dx (1.7)
0

Este hecho sugiere que podemos emplear simulacin para estimar la integral
1

g (x) dx , estimando el valor de E (g( X )) . Si X 1 , X 2 , X 3 ,... , X n son


0

independientes y uniformemente distribuidas en [0,1] , entonces las g (X i ) ,


tambin son independientes. Por lo tanto, si definimos a g (X ) como:
g ( X 1 )+ g (X 2)+...+ g (X n )
g (X )=
n
y suponemos que g (X ) tiene media y varianza , entonces:
2
E (g( X ))= y V (g( X ))=
n
Estas dos igualdades sugieren que para estimar , podemos generar una
secuencia de nmeros u1, u2, u3,. .. ,un uniformemente distribuidos en [0,1] ,
independientes y calcular (g(u1 )+ g (u2 )+ g(u3 )+...+ g(un ))/ n . Obsrvese que la
varianza de g (X ) , puede hacerse tan pequea como se quiera tomando n
suficientemente grande.

Ejemplo. A continuacin se presenta un programa para aproximar como


1
1
4 2 dx .
0 1+ x

from random import random


N=1000000
suma=0
for i in range(N):
suma=suma+1/(1+random()**2)

14
print(4*suma/N)

1
En este caso, g ( x)= . El programa anterior, estima valores para la
1+ x
1 1
+ ...+
1+U 1 1+U n
variable X =4 , donde las U i son independientes y
n
uniformemente distribuidas en [0,1 ] .
b

Para calcular una integral como g (x ) dx , simplemente hacemos un


a

cambio de variable para que el intervalo de integracin se convierta en [0,1] , o


bien, podemos generar nmeros aleatorios en el intervalo [a , b] ; este cambio
puede ser, por ejemplo v=(xa)/(ba) . De forma similar, para calcular la

integral g (x) dx , podemos usar el cambio de variable v=1/(1+ x ) (siempre
0

que la integral exista) .

De manera similar, para estimar una integral g(x , y) dxdy podemos


[0,1][0,1]

generar (u1 , v 1 ), (u2 , v 2), (u3 , v3 ),... , (u n , v n ) con los ui y los vi independientes
todos entre s y uniformemente distribuidos en [0,1] .

Ejercicios.
1 1
1
1. Estimar el valor de las integrales
1+x
2
dx y 1x 2 dx , usando
0 0

simulacin.
3
1
2. Estimar el valor de la integral 1+x dx , usando simulacin.
2

3. Las dos integrales del problema 1 tienen el mismo valor / 4 . Cul de


las dos integrales del problema anterior produce estimaciones con menor varianza?
Demuestre su respuesta.

15

2

4. Por medio de simulacin estime el valor de ex dx . Encuentre un


0

intervalo de confianza del 90 % para la estimacin del valor de la integral.


5. Por medio de simulacin estimar el valor de la integral
2 2

e(x + y ) dx dy . Encuentre un intervalo de confianza del 90 % para la


0 0

estimacin del valor de la integral.

1.5 Caminata aleatoria y movimiento Browniano


Imaginemos una partcula en la recta numrica que se encuentra en una
posicin dada por un nmero entero i y que al siguiente intervalo de tiempo
avanza a i+1 con probabilidad p y retrocede a i1 con probabilidad
1 p . Si X i representa el avance de la partcula en el i-simo movimiento,
entonces:
P( X i =1)= p y P ( X i =1)=1 p

Si se define Z i =( X i +1)/2 , entonces Z i es de Bernoulli con parmetro p .


Despus de n movimientos, la posicin de la partcula estar dada por:
S n =S0 +X 1 +X 2 +... X n =S0 +2(Z 1 +Z 2 +...+Z n )n

donde las X i son independientes. Y por lo tanto la media y la varianza de S n


sern:
E( Sn )=S 0 +2 npn= S0 +n(2 p1) y V ( Sn )=4 np(1 p)

A partir de este modelo de caminata aleatoria construiremos otro, llamado de


movimiento Browniano y finalmente, conoceremos un modelo para describir la
evolucin del precio de una accin en el tiempo.
Considrese el intervalo [0,t] y divdase en n intervalos iguales, cada uno de
ellos de longitud =t /n y supngase que en cada intervalo avanzamos d o
retrocedemos d con probabilidades p y 1-p, respectivamente. Entonces
2
E(S n S0 )=d (t /)(2 p1) y V (S n S0 )=d (t /)(1(2 p1)) , pensando que

16
tanto d como p puedan depender de Si consideramos d=k 1 con k1
2
constante, entonces lim V (S n S0 )=k 1 t lim (1(2 p1)) . Por otro lado,
0 0

lim E(S nS 0 )= lim (k 1 / )t (2 p1) . Tomando 2 p1=k 2 ,


0 0

2 1+k 2
lim E( Sn S0 )=k 1 k 2 t y lim V (S n S0 )=k 1 t , ya que como ,
p=
0 0 2
cuando tiende a cero, p tiende a 1/2 . Para n grande, S n S0 seguir
una distribucin normal con media k 1 k 2 t y desviacin estndar k 1 t . Luego
se considera a k 1 k 2 a la media en el intervalo unitario y se le denota por y a
k 1 se le considera como la desviacin estndar en el intervalo unitario y se le
denota por En efecto, veamos que una caminata aleatoria con stas
caractersticas, cuando tiende a cero, resulta un movimiento Browniano.
Divdase el intervalo [0, t ] en n partes iguales, de tal manera que cada parte
ser de longitud =t /n y supongamos que en cada intervalo de tiempo, en lugar
de avanzar o retroceder una unidad, se avanza o retrocede en con
1 1
probabilidades p= (1+ ) y 1 p= (1 ) , respectivamente. Ahora
2 2
la posicin de la partcula al momento t , ser:
S(t )S (0)= (X 1 + X 2 +...+ X n )

Para n grande S (t)S (0) seguir una distribucin normal. Adems, por la
misma forma de construir el proceso, S (t 2)S (t 1) y S (t 4 )S(t 3 ) sern
independientes, si los intervalos [t 1 ,t 2 ] y [t 3 ,t 4 ] son disjuntos.

La esperanza del cambio en la posicin en t ser:


t
E( S(t )S(0))= = t (1.8)

Cuando n tiende a infinito, tiende a cero y p tiende a 1/2 ; la varianza
del cambio de posicin tender a:
2 t 2
V (S (t ) S(0))= 4 p(1 p) t (1.9)

Luego, S (t)S (0) sigue una distribucin normal con media t y varianza

17
2
t , cuando n tiende a infinito. S (t)S (0) Es un movimiento Browniano.
Si S(t )S (0) es un movimiento Browniano tal como lo acabamos de construir,
entonces a e S(t )S(0) se le llama movimiento Browniano geomtrico. El
movimiento Browniano geomtrico es un modelo que se emplea frecuentemente
para modelar la evolucin del precio de una accin en el tiempo. Al aplicar el
modelo a una accin en particular es necesario verificar primero, si en efecto los
datos se ajustan bien al modelo. Esto puede realizarse efectuando pruebas acerca de
si los valores ln (S(t +1)/ S (t )) son independientes y si siguen una distribucin
normal; la media y la desviacin estndar de stos valores son estimadores para
y .
Ejercicios.
1. Sea X una variable aleatoria que sigue una distribucin normal con media
X
y desviacin estndar . Y sea Y =e , decimos que Y sigue una
distribucin log-normal. Encuentre la funcin de densidad de probabilidad de Y .
X
2. a) Calcule el valor esperado de Y =e , donde X sigue una distribucin
normal con media y desviacin estndar . b) Calcule la varianza de Y .
3. Considere =0.01 , =0.142 y t=2 . Simule 100,000 valores para
S(2)S(0)
e y calcule la media y la desviacin estndar de la muestra. Para generar
nmeros que sigan una distribucin normal utilice una funcin que tenga su
lenguaje de programacin.

1.6 Aplicaciones a las finanzas y a la ingeniera.

1.6.1 Modelo binomial para el precio de una accin.


Se supone que el precio inicial de una accin es S 0 y que durante un intervalo
t , el precio es uS0 con probabilidad p y dS0 con probabilidad 1 p .
Alsiguiente intervalo de tiempo t ocurre lo mismo, es decir, el precio anterior se
multiplica por u con probabilidad p o por d con probabilidad 1 p .

18
2
p u S0

uS0
1 p
p
udS 0

S0

udS 0
p
1 p

dS0

1 p
2
d S0

Si estamos interesados en estimar el precio de la accin en el tiempo T ,


dividimos el intervalo de tiempo [0,T ] en n subintervalos iguales de tiempo de
tamao t=T /n y aplicamos la regla anterior en cada subintervalo.

Ejemplo. Suponiendo p=1 /2 , u=1.015 , d=0.99 , S 0 =$ 15 y


t=1 . Estimar la probabilidad de que despus de diez periodos de tiempo el
precio de la accin sea menor que $ 15.
A continuacin se presenta un programa para resolver el problema. Entre las
lneas 1010 y 1100 est la definicin de una funcin que obtiene un precio
simulado para la accin despus de diez periodos de tiempo. De las lneas 110 a
160 est el programa principal.

1000 from random import random


1010 def precio():
1020 s=15
1030 u=1.015
1040 d=0.99
1050 for i in range(10):

19
1060 if random()<0.5:
1070 s=s*u
1080 else:
1090 s=s*d
1100 return s
1110 cuenta=0
1120 nr=1000000
1130 for i in range(nr):
1140 if precio()<15:
1150 cuenta=cuenta+1
1160 print(cuenta/nr)

Ejercicios.

1. Tomando los mismos datos del ejemplo de sta seccin, estime el valor
esperado del precio de la accin despus de diez periodos de tiempo.

1.6.2 Simulacin de una lnea de espera.


Supngase que los clientes llegan a un banco que dispone de un solo cajero.
Al llegar un cliente, si no hay fila es atendido inmediatamente; si hay fila entonces
pasa al ltimo lugar de la fila. Si el tiempo de llegada de un cliente es mayor que el
tiempo de salida del cliente anterior es atendido inmediatamente; por el contrario, si
el tiempo de llegada del cliente es menor que el tiempo de salida del cliente
anterior, entonces tendr que esperar hasta que se termine de atender al cliente
anterior; es decir, el tiempo en el que se empieza a atender a un cliente es el
mximo del tiempo en el que lleg y el tiempo de salida del cliente anterior. A
continuacin se muestran los tiempos de llegada, de inicio de atencin de cada
cliente y los tiempos de salida.
Tabla 1

Nmero de Tiempo Inicio del Tiempo de


cliente de llegada servicio salida
1 0 0 1
2 5 5 6
3 10 10 11
4 11 11 12
5 15 15 16

20
6 19 19 20
7 22 22 23
8 25 25 26
9 30 30 31
10 35 35 36
11 40 40 41
12 42 42 43
13 46 46 47
14 50 50 51
15 55 55 56
16 58 58 59
17 63 63 64
18 64 64 65
19 69 69 70
20 71 71 72

En la tabla 1 se observa que los tiempos entre llegadas consecutivas son 5, 5, 1, 4,


4, 3, 3, 3, 5, 5, ,5, 2, ...Los tiempos de atencin a cada cliente son constantes,
iguales a 1. Haciendo algunas suposiciones acerca de los tiempos entre llegadas
sucesivas y acerca de los tiempos de atencin a cada cliente, es posible simular los
tiempos de ocurrencia de los eventos en el futuro. En la medida en que nuestras
suposiciones sean vlidas, los resultados obtenidos sern ms semejantes a los que
ocurran en la realidad. Por ejemplo, puede suponerse que los tiempos entre llegadas
sucesivas pueden ser 1, 2, 3, 4 y 5 con igual probabilidad y que los tiempos de
atencin a cada cliente son constantes, iguales a 1.
Con el siguiente programa se puede simular a la lnea de espera para los 20
primeros clientes, bajo los supuestos que se han hecho.
from random import randint
d=1
n=20
tl=0
tis=0
ts=tis+d
for i in range(n):

21
print("%5i"%(i+1),'\t',"%5i"%tl,'\t',"%5i"%tis,'\t',"%5i"%ts)
tl=tl+randint(1,5)
tis=max(tl,ts)
ts=tis+d

A partir de ste modelo para simular a la lnea de espera puede estimarse, por
ejemplo, el tiempo promedio de permanencia de los clientes en el banco.
Las hiptesis que se han hecho en este ejemplo son para ejemplificar y no son
plausibles en la prctica. Posteriormente se tratarn las lneas de espera con ms
profundidad.

Ejercicio.
1. Modifique el programa de sta seccin para estimar el tiempo promedio de
permanencia de los clientes en el banco.

22
Captulo II

2.1 Generacin de variables aleatorias discretas

Supongamos que f es una funcin de densidad discreta definida por


f ( x i)= pi para i=1, 2, .. . . Una manera de generar nmeros aleatorios para la
funcin de densidad f es considerar un nmero aleatorio u en el intervalo
[0,1] . Si p 1 + p2 +...+ pk 1u< p1 + p 2 +...+ p k1 + p k para algn k=1, 2, 3,.. . ,
el nmero generado para la funcin de densidad f es xk ; y si u< p1 , el
nmero generado es x 1 . Esto es, porque la probabilidad de que el nmero
aleatorio u cumpla con la condicin p 1 + p2 +...+ pk 1u< p1 + p 2 +...+ p k1 + p k
es precisamente p k .

Ejemplo. Para generar nmeros aleatorios para la funcin de densidad dada


por:

xi 1 5 3
f ( x i) 0.2 0.3 0.5

Se calcula primero, p1 =0.2, p1 + p2=0.5 y p1 + p 2 + p3 =1 . Luego, generamos


nmeros aleatorios uniformemente distribuidos en [0,1] e independientes; por
ejemplo, 0.315, 0.271, y 0.802. Como 0.20.315<0.5 , el primer nmero
aleatorio para f es x 2=5 ; como 0.20.271<0.5 , el segundo nmero
generado es tambin x 2=5 ; finalmente, como 0.50.802<1.0 , el nmero
generado es x3 =3 .

A continuacin se presenta un algoritmo para generar nmeros aleatorios que


sigan una distribucin dada por f x ( xi )= p i para i=1, 2, 3, .. . .

23
suma=0
generar nmero aleatorio entre 0 y 1, u
i=0
mientras suma<u:
suma=suma+ pi
i=i+1
el nmero generado es x i

2.1.1 Generacin de nmeros aleatorios que siguen una


distribucin binomial.

En algunos casos especficos los valores de los pi se pueden calcular de


forma iterativa y el algoritmo anterior resulta ms eficiente. Por ejemplo, si
consideramos la funcin de densidad de una distribucin binomial con parmetros

f (i)= n p (1 p)
n y p , ()
i
i ni
con i=0, 1, 2,... ,n . Se observa que:

f (i+1) ni p n
= para i=0, 1, 2,... ,n1 y que f (0)=(1 p)
f (i) i+1 1 p

(2.1)
Entonces, para el caso de la binomial, el algoritmo toma la forma:

generar nmero aleatorio entre 0 y 1, u


i=0
producto=(1 p )n
suma=producto
mientras suma<u:
producto= producto((ni)/(i+1))( p /(1 p))
suma=suma+ producto
i=i+1

24
el nmero generado es i .

2.1.2 Generacin de nmeros aleatorios que siguen una


distribucin de Poisson.

Para simular valores para una variables que siga una distribucin de Poisson,
hay que observar que:
k +1
e

f (k +1) (k +1) !
= = (2.2)
f (k ) k
k +1
e

(k )!

El algoritmo es similar al caso anterior con el cambio correspondiente con


respecto al clculo de la distribucin acumulada.

2.2 Mtodo de aceptacin y rechazo

Supongamos que podemos generar valores para una variable aleatoria discreta
Y con funcin de densidad f Y y que queremos generar valores para otra
variable aleatoria discreta X con funcin de densidad fX y que existe un
nmero positivo c tal que f X ( z j )/ f Y ( z j )< c para cualquier j . Entonces puede
emplearse el siguiente algoritmo:
1. Simular un valor para Y, digamos que resulta z k .

2. Generar un nmero aleatorio u ente cero y uno.


3. Si u< f X (z k )/(cf Y (z k )) entonces aceptamos a z k como un nmero
aleatorio para X ; en otro caso, regresamos a 1.

Para probar que el mtodo funciona correctamente, debemos probar que

25
P( X =z k )=f X (z k ) . Primero, se observa que la probabilidad de aceptar el valor
z k al usar el mtodo es:
f X (z k ) f (z )
P(aceptar z kY = z k ) P(Y = z k )= f Y ( z k )= X k
cf Y (z k ) c

f X (z k ) 1
De donde, la probabilidad de aceptar en el mtodo es c
= . Ahora,
c
k

la probabilidad de aceptar z k en el ensayo n es igual a la probabilidad de


rechazar z k en los n1 primeros ensayos y aceptarlo en el nsimo , que es
1
n1
f X ( zk )
(1 ) . Y la probabilidad de aceptar zk es la suma de esta ltima
c c
1 n1 f X (z k )

probabilidad sobre todos los ensayos posibles, (1 ) =f X (z k ) .
n=1 c c
Obsrvese que para la convergencia de la serie, bajo el supuesto de que c sea
positivo, se requiere que c >1 /2 .

Ejemplo.

zj 2 7 9
f X ( z j) 0.2 0.5 0.3
f Y (z j ) 1/3 1/3 1/3

Puede tomarse c=1.6 . Se genera un valor para Y , generando un nmero


aleatorio entre cero y uno, digamos u=0.4 ; como 1/30.4<2/ 3 , el valor
generado para Y es 7. Ahora, f X (7)/(1.6f Y (7))=0.9375>0.4=u , luego se
acepta a 7 como un valor generado para X .

Ejercicios.
1. Una variable aleatoria X tiene una funcin de densidad dada por:

26
xi 1 5 3
f ( xi ) 0.3 0.2 0.5

Generar una muestra de 100 nmeros aleatorios para X .


2. Generar una muestra de 1000,000 nmeros aleatorios para una variables
que siga una distribucin binomial con parmetros p=0.75 y n=7 . Calcular
la media y la varianza de la muestra y compararla con los valores np y
np(1 p) .
3. Generar una muestra aleatoria para una variable que sigue una distribucin
de Poisson con parmetro =5 y calcular la media y la varianza de la muestra,
compararlas con .
4. Generar una muestra aleatoria de tamao 1000,000 para una variables que
siga una distribucin geomtrica con parmetro p=0.25 , calcular la media y la
varianza y comparar con los valores 1/ p y (1 p)/ p .
5. Un vendedor de peridicos los vende a $ 10 cada uno; a l le cuestan $ 7
cada uno. Si no logra vender un peridico, lo regresa y obtiene un reintegro de $ 5
por cada uno. La demanda de peridicos por da sigue una distribucin de Poisson
con media de 70 peridicos. a) Estime la ganancia esperada por da, si se abastece
con 50, 60, 70, 80, 90 y 100 peridicos. b) Cul es el nmero de peridicos con
los que debe abastecerse para obtener la mayor ganancia? Y De cunto es sta? c)
Si compra 70 peridicos, estime la probabilidad de que su ganancia sea menor que
$ 116.

2.3 Mtodo de composicin.

Si la funcin de distribucin F X de una variable aleatoria X se puede


escribir como:

27

F X (x )= ai F i (x ) (2.3)
i =1

o equivalentemente:


f X ( x)= ai f i (x ) (2.4)
i=1

donde las F i y las f i son funciones de distribucin y de densidad de



probabilidad, respectivamente, con ai >0 y ai =1 , entonces los valores para
i=1

la variable aleatoria X pueden generarse del siguiente modo:

1) Se genera un valor para la variable aleatoria I cuya funcin de densidad de


probabilidad es f I (i)=ai para i=1, 2, 3,. .. .
2) Si el valor generado en el paso anterior es k , entonces se genera un valor con
la distribucin F k , digamos X k y se toma X= X k .

Ejemplo. Supngase que se quieren generar valores para una variable aleatoria
X , cuya funcin de densidad est dada por f X (1)=1/8 , f X (2)=1/2 ,
f X (3)=3/ 8 y cero en cualquier otro valor. sta funcin de densidad se puede
descomponer como f X ( x)=(1/ 4) f 1 ( x)+(3/ 4) f 2 ( x) , donde f 1 (1)=1/2 ,
f 1 (2)=1/ 2 y cero en cualquier otro valor y f 2 (2)=1/ 2 y f 2 (3)=1/ 2 cero en
cualquier otro valor. Para generar valores para X primero generamos un valor
para la variables aleatoria I que tiene la funcin de densidad f I (1)=1/ 4 ,
f I (2)=3/ 4 ; si el valor generado es k , entonces generamos un valor de
acuerdo a la funcin de densidad f k .

2.4 Generacin de nmeros aleatorios para variables


aleatorias continuas

2.4.1 Mtodo de la transformada inversa.


Una propiedad importante de las distribuciones continuas de probabilidad es la

28
siguiente: Si una variable aleatoria X tiene una distribucin de probabilidad dada
por F X , entonces la variable aleatoria Y definida por Y = F X ( X ) es
1
uniformemente distribuida en [0, 1] ; por lo tanto, F X (Y ) tiene una funcin
de densidad F X . Usando esta propiedad, para generar nmeros aleatorios que
sigan una distribucin F X , podemos generar nmeros y 1, y2, y 3, ..., yn con un
generador de nmeros aleatorios uniformemente distribuidos en [0, 1] y
1 1 1 1
considerar F X ( y1 ) , F X ( y 2 ), F X ( y 3 ),... , F X ( y n ) .

Ejemplo. Para calcular nmeros aleatorios que sigan una distribucin exponencial
x
con parmetro , se tiene que F X (x )=1e , de donde
F X1 ( y)=(1 /)log(1 y ) . Luego, si u1 , u2, u3,. . . son nmeros
uniformemente distribuidos en [0,1],
(1 /)log (1u1 ),(1 / )log(1u2 ),(1/ )log(1u3 ),... seguirn una
distribucin exponencial con parmetro
2.4.2 Mtodo polar para generar nmeros que sigan una distribucin
normal.
Ahora se presenta un procedimiento para generar variables con una
distribucin normal. Para esto, considrese una distribucin normal bivariada en el
plano cartesiano con funcin de densidad:
x2+ y2
1 2
f XY (x , y)= e
2
X y Y son independientes ya que sta funcin de densidad es igual al producto
de sus densidades marginales.
Si ahora definimos las variables aleatorias:
Y
para X 0 y = para X =0 .
2 2
U =X +Y y =arctan
X 2
El determinante de la matriz jacobiana de la transformacin definida por estas
nuevas variables es:

29
[ ]
x x
u 1 2 1 2 1
= cos + sen =
y y 2 2 2
u

La funcin de densidad conjunta de U y de se obtiene multiplicando a la


funcin de densidad conjunta de X y Y por el valor absoluto del determinante de la
matriz jacobiana:
u
1 2
f U (u ,)= e
4

Las funciones de densidad marginales se obtienen integrando y son:


1
1 u 1
f U (u)= e 2 y f ()=
2 2
con u>0 y (0,2 ) . Como f U (u ,)=f U (u) f () , U y son
independientes; U es exponencialmente distribuida con parmetro 1/2 y
es uniformemente distribuida en (0,2 ) .
Si U 1 es uniformemente distribuida en [0,1] , 2 log(U 1 ) tendr una
distribucin exponencial con parmetro 1/2 y si U 2 es uniformemente
distribuida en [0,1] , 2 U 2 es uniformemente distribuida en [0,2 ] . Por lo
tanto, considerando que X = U cos() y Y = U sen() ,
X =2 log (U 1 ) cos(2 U 2) (2.5a)
Y = 2 log(U 1) sen(2 U 2) (2.5b)
tendrn una distribucin normal estndar y sern independientes. Para generar una
variable aleatoria normal con media y varianza , simplemente
consideramos + X .
A la transformacin definida por x=2 log(u1)cos(2 u2 ) y
y= 2 log(u 1) sen(2 u 2) , se le llama transformacin de Box-Mller.

30
Otra forma de generar nmeros aleatorios que sigan una distribucin normal
estndar es utilizar el mtodo de aceptacin y rechazo. Si Z es una variable
aleatoria que sigue una distribucin normal estndar, X=|Z| tiene una funcin de
x2
2 2 x
densidad dada por f X ( x)= e y si consideramos f Y ( y)=e , se puede
2
utilizar el mtodo de aceptacin y rechazo para generar valores aleatorios para X
; a partir de stos, se generan valores para Z considerando los valores de X con
1
signo positivo o negativo, con probabilidad . En este caso, puede tomarse
2
c=1.4 .

Ejercicios.
1. Pruebe que si X es una variable aleatoria continua con una funcin de
distribucin F X , entonces la variable aleatoria Y = F X ( X ) es uniformemente
distribuida en [0,1] .
2. Un envase de cartn en forma de paraleleppedo debe tener un largo, ancho y
alto de 10 cm, 7 cm y 15 cm, respectivamente. Pero al construirlos, el largo, el
ancho y la altura siguen distribuciones normales independientes con medias 10, 7 y
15, respectivamente y las tres tienen una desviacin estndar de 0.1 . Estime la
probabilidad de que el volumen de los recipientes sea menor que 1010 cm .
3. Suponga que una variable aleatoria X tiene una funcin de densidad dada por
f X (x)=3 x si x [0,1] y f X (x)=0 enotro caso . Genere una muestra de 1000
nmeros aleatorios para la variable aleatoria X .
4. Genere una muestra de 1000 nmeros aleatorios que sigan una distribucin
exponencial con parmetro 0.5.

2.5 Generacin de un proceso de Poisson

Un proceso de Poisson se refiere a eventos que ocurren en el tiempo. Si

31
N (t ) es el nmero de eventos que ocurren en el intervalo [0, t ] , N (t ) es un
proceso de Poisson con parmetro si:
1. N (0)=0 .
2. Si A y B son dos intervalos disjuntos, entonces los nmeros de eventos
en A y B , son independientes.
3. P(N (t )=1)= t + (t )
4. P( N (t )> 1)= (t ) .
(t )
donde lim =0 .
t 0 t

Bajo estas hiptesis, el nmero de eventos que ocurren en [0, t ] sigue una
distribucin de Poisson con parmetro t . En efecto, dividiendo el intervalo
[0, t ] en n pequeos intervalos de igual longitud t / n , la probabilidad de que
haya exactamente un evento en el intervalo es aproximadamente t / n y la de
t
que no ocurra ningn intervalo es (1 ) , luego:
n
k
t nk
P(N (t )=k )= n
k ( )( )
t
n
( 1 )
n

Al desarrollar esta expresin, se obtiene:


( t )k n n1 n(k1) t
n
t
k
... (1 ) (1 )
k! n n n n n
Y tomando el limite cuando n , se obtiene:
k
( t ) t
P( N (t )=k )= e (2.6)
k!
Un proceso de Poisson homogneo con parmetro , tiene la propiedad de
que el tiempo entre dos eventos consecutivos sigue una distribucin exponencial
con parmetro . En efecto, si X t es la variable aleatoria que da el tiempo que
transcurre desde que ocurre un evento en t hasta que ocurre el prximo y N t

32
es el nmero de eventos que ocurren durante un tiempo t , entonces los eventos
[ X t > x ] y [ N t =N t +x ] son idnticos y por lo tanto, las probabilidades de ocurrencia
de los mismos son iguales, pero como el proceso es homogneo,
x x
P(N t + x N t =0)=P (N x =0)=e Luego, P( X t > x )=e y:
x
P( X t x)=1e ,

que es la funcin de distribucin de una exponencial con parmetro .


Por lo tanto, para generar los tiempos de ocurrencia de los eventos de un
proceso de Poisson se puede seguir el siguiente algoritmo:
1. t=0
2. Mientras t<T
2. Generar u , uniformemente distribuido en (0,1)
3. t=t (1 / ) log (u) .
Para un proceso de Poisson no homogneo, en el que el parmetro es una
funcin de t , (t ) , el proceso puede generarse con el siguiente algoritmo;
1. t=0 .
2. Mientras t<T
3. Generar u1 y u2 , uniformemente distribuidos en (0,1) .

4. t=t(1/ m )log(u1 )

4. Mientras u2 (t )/ m

5. Generar u1 y u2 , uniformemente distribuidos en (0,1)

t=t(1/ m )log (u1 )

6. Aceptar t .
donde m> (t ) , para cualquier t . Este algoritmo se debe a Lewis y Shedler.

Ejercicios.
1. Generar una muestra de tamao 100,000 con distribucin N (2,1) y
realizar un histograma.

33
2. Si X tiene una distribucin N ( , ) , decimos que Y =e X tiene una
log-normal. Genere una muestra de tamao 100,000 de una log-normal con
=2 y =1 y realice un histograma.
3. a) Genere 100 datos que sigan un proceso de Poisson homogneo con
=0.4 . b) Genere 100 datos que sigan un proceso de Poisson no homogneo
con =0.2 si t [ 0,2 ) y =0.1 si t [ 2, ) .
4. Sea Z= X 1 + X 2 +...+ X N , donde las X i son independientes y siguen,
todas ellas, una distribucin normal con media 100 y desviacin estndar 20 .
N es el nmero de eventos ocurridos en cierto intervalo de tiempo, cuya
ocurrencia sigue un proceso de Poisson con parmetro =10 . Simule
100,000 valores para Z , estime la media y la varianza de Z y realice un
histograma. (Para generar valores para una distribucin normal, utilice el primer
mtodo presentado en la seccin anterior).

34
Captulo III

3.1 Lneas de espera de un servidor, M/M/1.

Considrese un sistema en el que los usuarios de algn servicio llegan


siguiendo un proceso de Poisson con parmetro y que stos son atendidos de
uno en uno en el mismo orden en el que van llegando. Supongamos tambin que
los tiempos de atencin del usuario sigue una distribucin exponencial con
parmetro . Este tipo de modelo se denota por M/M/1; la primer M se refiere a
que las llegadas de los usuarios siguen un proceso de Poisson; la segunda, a que los
tiempos de atencin a los usuarios siguen una distribucin exponencial; y el 1, se
refiere a un solo servidor.
Simular el comportamiento del sistema permite estudiar relaciones entre
variables, tales como el tiempo promedio de permanencia en el sistema, el
promedio del nmero de personas en el sistema, el promedio del nmero de
personas en la lnea de espera y los parmetros y .
Una manera de simular el sistema consiste en pensar qu variable o variables
especifican el estado del sistema en cualquier instante y los eventos que ocurren
que cambian el valor de estas variables, o sea, que cambian el estado del sistema.
En nuestro caso, la variable que define el estado del sistema es el nmero de
personas en el sistema y los eventos que modifican su valor son la llegada de un
usuario al sistema y la salida de un usuario del sistema.
La idea para realizar la simulacin ser ir avanzando en el tiempo de evento en
evento. La variable t contendr el tiempo actual durante la simulacin; tl ,
contendr el tiempo en el que ocurrir la prxima llegada de algn usuario; ts
contendr el tiempo en el que ocurrir la prxima salida; y l contendr el nmero
de personas en el sistema, que inicialmente supondremos como cero. Inicialmente,
suponemos que en t=0 ocurre la llegada del primer usuario; en ese momento, la

35
llegada del prximo usuario se dar en algn tiempo, que puede ser generado con
una exponencial con parmetro , o sea, tl=(1 /)log(u) , donde u es un
nmero aleatorio en [0,1] . El prximo tiempo de salida ser el tiempo necesario
para dar servicio al usuario, que puede obtenerse generando un nmero aleatorio
para una distribucin exponencial con parmetro , esto es, ts=(1/)log(u)
, donde nuevamente, u es un nmero aleatorio en [0,1] . sta ser la parte
inicial del algoritmo:

1. t=0 , infi=10000000
2. tl=0
3. ts=infi
4. l=0

Para continuar con el algoritmo, es conveniente considerar que habr instantes en


los que el sistema est vaco; en estos casos, el prximo tiempo de salida no estar
definido, podemos poner ts=infinito donde infinito , para efectos prcticos,
puede ser cualquier tiempo mayor que cualquier instante de tiempo considerado
durante la simulacin. En cualquier momento, el prximo evento a considerar
ocurrir en t=mnimo(tl ,ts) y ser una llegada si t=tl y ser una salida si
t=ts .
5. Mientras t<T
6. t=mnimo(tl ,ts)
7. Si t=tl efectuar 8, 9 ,10 y regresar a 5, sino, ir a 11.
8. l=l +1
9. tl=tl(1 / )log (u1 )
10. Si l=1 , ts=t(1 /)log(u3 )
11. l=l1
12. Si l=0 , ts=infinito , sino ts=t(1 /)log (u4 )

Al traducir el algoritmo a algn lenguaje de programacin es necesario

36
agregarle instrucciones de impresin de los valores de las variables, para poder
analizar la funcionalidad del algoritmo.
A continuacin se presenta un programa que realiza el algoritmo anterior. El
tiempo de simulacin est dado por el valor de la variable T . Los valores de
y estn dados en las variables l_l y l_s, respectivamente. El programa
imprime en la pantalla dos columnas, la primera corresponde a las llegadas y la
segunda, a las salidas. De las lneas 100 a 170 se establecen las condiciones
iniciales; a partir de la lnea 180 comienza la simulacin. Primero se elije el menor
valor entre el tiempo de la prxima llegada y el tiempo de la prxima salida y
despus, se procesa segn si haya sido una llegada o una salida. Si es una llegada,
se incrementa en uno el nmero de personas en el sistema y se genera el el tiempo
de la prxima llegada; adems, si despus de incrementar el nmero de personas en
el sistema ste es uno, significa que antes de que llegara el cliente no haba ninguno
en el sistema y por lo tanto, el prximo tiempo de salida est puesto como infinito,
pero como ahora ya hay un usuario, debe cambiarse el prximo tiempo de salida,
como el tiempo actual ms un tiempo de atencin al nuevo cliente. Si el prximo
evento es una salida de cliente, el nmero de usuarios en el sistema se disminuye en
uno; adems, si despus de haber disminuido en uno al nmero de clientes en el
sistema, ste es mayor que cero, significa que por lo menos haba un cliente antes
de la llegada actual y por lo tanto, el prximo tiempo de salida va a ser el tiempo
actual ms un tiempo de atencin del cliente que pasa al servidor cuando ocurre la
llegada actual; por el contrario, si despus de haber disminuido en uno al nmero
de clientes en el sistema, ste es cero, entonces hay que poner el prximo tiempo de
salida como infinito, ya que no hay clientes en el sistema.

100 T=10
110 l_l=1
120 l_s=2
130 t=0
140 infi=1000000000
150 ts=infi
160 tl=0
170 l=0

37
180 while t<T:
190 t=min(tl,ts)
200 if tl<=ts:
210 l=l+1
220 print("%10.2f"%tl,l)
230 tl=t-(1./l_l)*log(random())
240 if l==1:
260 ts=t-(1./l_s)*log(random())
270 else:
280 l=l-1
290 print(" ","%10.2f"%ts,l)
300 if l>0:
310 ts=t-(1./l_s)*log(random())
320 else:
330 ts=infi

En la Fig. 3 se muestra la grfica del nmero de personas en el sistema como


una funcin del tiempo, resultado de una simulacin con =2 y =2.2 .
Otra forma de simular la lnea de espera es avanzando sobre los usuarios, en
lugar de sobre los eventos. Para ello, hay que considerar que cuando llega un
usuario, si el tiempo en que llega es mayor que el tiempo en el que sale el usuario
anterior, entonces pasa directamente al servidor para ser atendido; si por el
contrario, el tiempo de llegada es inferior al de salida del usuario anterior, entonces
tiene que esperar a que termine de ser atendido el usuario anterior para poder pasar
a ser atendido en el servidor. Es decir, el instante de tiempo en el que empieza a ser
atendido un usuario es el mximo del tiempo de salida del usuario anterior y del
tiempo de llegada del usuario actual.

38
Figura 3.

Si se denota por tl , tis y por ts a los tiempos de llegada, de inicio del


servicio y de salida de cada usuario, respectivamente, entonces un algoritmo
posible es el siguiente:

1. tl=0 , tis=tl y ts=tis(1/)log (u1 ) .

2. Mientras ts< T ejecutar 3.


3. tl=tl(1 / )log(u2) , tis=mximo (tl , ts) y ts=tis(1/)log(u3 )

En el paso 3 hay que realizar las operaciones en el orden mostrado.

39
3.2 Lneas de espera con dos servidores.

Ahora se considera el caso en el que hay dos servidores.


1000 from random import expovariate,random
1010 infi=1000000
1020 l_l=2
1030 l_sa=1.5
1040 l_sb=1.5
1050 T=100
1060 t=0
1070 l=0
1080 tl=expovariate(l_l)
1090 tsa=infi
1100 tsb=infi
1110 while t<T:
1120 t=min(tl,tsa,tsb)
1130 if t==tl:
1140 l=l+1
1150 print("%10.3f"%t,l)
1160 tl=tl+expovariate(l_l)
1170 if l==1:
1180 if random()<0.5:
1190 tsa=t+expovariate(l_sa)
1200 else:
1210 tsb=t+expovariate(l_sb)
1220 if l==2:
1230 if tsa<infi:
1240 tsb=t+expovariate(l_sb)
1250 else:

40
1260 tsa=t+expovariate(l_sa)
1270 elif t==tsa:
1280 l=l-1
1290 print(" ","%10.3f"%t," por a",l)
1300 if l>1:
1310 tsa=t+expovariate(l_sa)

1320 else:
1330 tsa=infi
1340 else:
1350 l=l-1
1360 print(" ","%10.3f"%t," por b",l)
1370 if l>1:
1380 tsb=t+expovariate(l_sb)
1390 else:
1400 tsb=infi

Los cambios importantes estn entre las lneas de 1130 hasta 1260. Durante la
llegada de un cliente, si despus de aumentar en uno el nmero de personas en el
sistema, sta variable tiene el valor uno, significa que antes de la llegada actual no
haba clientes en el sistema, por lo tanto, el nuevo cliente podr escoger el servidor
en el que ser atendido (en el cdigo se supuso que escoge con igual probabilidad a
cualquiera de ellos). Si despus de aumentar en uno el nmero de personas en el
sistema, sta variable tiene el valor dos, significa que antes de llegar el cliente
actual, haba una persona en el sistema y la estaban atendiendo en alguno de los dos
servidores; el nuevo cliente pasar al servidor que est vaco.
Ejercicios.
1. Mediante simulacin, obtenga una grfica de la media del nmero de
personas en el sistema en funcin del tiempo, considerando los siguientes valores:
a) =2.2 , =2.0 y t=100, 200, ... , 1000, 2000 ,3000 , ... ,10000 .
b) =2.0 =2.2 t=100, 200, ... , 1000, 2000 , 3000, ... ,10000 .

41
c) Qu diferencia observa en los resultados obtenidos en a) y en b)?
2. Realice la misma actividad que en el problema anterior considerando al
tiempo promedio de permanencia en el sistema, en lugar del nmero de personas
promedio en el sistema.
3. Considere =2.2 , =2.0 . Estime por simulacin, el valor esperado y
la varianza del nmero de personas atendidas en el intervalo de tiempo [0,240] .
4. a) Considere =2.2 , =2.0 . Estime el valor esperado del nmero de
personas atendidas en el intervalo de tiempo [0, 200] . b) Estime sta misma
cantidad, pero considerando que se tienen dos servidores, ambos con =1.1 , y
=2.0 .
5. Considere dos lneas de espera, una con los parmetros =2.0 =2.2
y otra, con los parmetros =2.2 =2.4 . Cul de ellas atiende a un mayor
nmero de personas en el intervalo de tiempo? Fundamente su respuesta.

3.3 Inventarios.

Primero, se presenta brevemente un modelo sencillo determinista. Supngase


que un negocio distribuye artculos de un cierto tipo de acuerdo a las siguientes
reglas: 1. La tasa de artculos solicitados por los clientes por unidad de tiempo o
demanda es una constante d ; 2. El proveedor del artculo proporciona al negocio
la cantidad C solicitada en cualquier momento de manera inmediata; 3 El
inventario no puede estar vaco.
El primer asunto importante a considerar es el costo de mantener el inventario
bajo las condiciones mencionadas. El costo de cubrir un pedido de C artculos es
igual a un costo fijo F , ms el costo de cada artculo a multiplicado por el
nmero de artculos C , esto es, F +aC . El costo de mantener un artculo en el
inventario por unidad de tiempo es r .
Si al inicio se surten C artculos, stos se vendern en un periodo de tiempo
C / d . Al final de ste periodo ser necesario volver a suplir otros C artculos y

42
as sucesivamente. El nmero de artculos presente en el inventario al tiempo t ,
durante el primer ciclo es Cdt , Entonces el costo durante todo el ciclo es:
C /d 2

(Cdt )r dt = rC
2d
0

Y como el costo de adquirir los C artculos es F +aC , el costo total


durante el ciclo es:
2
rC
CT =F +aC+ (3.1)
2d
Puesto que el ciclo es de duracin C / d , el costo por unidad de tiempo es:

dF rC
cT = +ad + (3.2)
C 2

ste costo tiene un valor mnimo cuando C=


2dF
r
.

Sin embargo, en la prctica, los clientes pueden llegar siguiendo un proceso de


Poisson con cierto parmetro , y cada cliente pedir una cantidad aleatoria de
artculos. Adems, los pedidos no podrn surtirse de inmediato, sino que pasar un
tiempo aleatorio entre que se haga el pedido y que ste se surta. Bajo stas
consideraciones tenemos un modelo estocstico, en el cual, el costo por ciclo, por
ejemplo, deber estimarse por simulacin. Adems, se supone que en el momento
que el inventario tiene un valor menor que s se hace el pedido para llevarlo a un
valor S .
Un algoritmo posible para el caso en el que el cliente pida exactamente un
artculo es el siguiente:
Generar el primer tiempo de llegada.
Poner el primer tiempo de reposicin como infinito.
Poner indicador=0.
Mientras el tiempo sea menor que el tiempo total:
Tomar el mnimo del prximo tiempo de llegada de un cliente y del tiempo
de la prxima reposicin.
Si el mnimo es un tiempo de llegada:

43
Si el nmero de artculos disponibles es mayor que cero:
Disminuirlo en uno.
Generar el prximo tiempo de llegada.
Si el nmero de artculos en el almacn es menor que el nivel mnimo
y el indicador es cero:
Generar el tiempo en el que ser surtido el prximo pedido.
Poner indicador=1.
Si el mnimo es un tiempo de reposicin:
Poner el nmero de artculos en el inventario al nivel mximo.
Poner el tiempo de la prxima reposicin como infinito.
Poner indicador=0.

Figura 4

En la Fig. 4 Se muestra el nivel de inventario como una funcin del tiempo,


los parmetros son:
T=720 minutos.
S=500 artculos.
s=50 artculos.

44
=2 clientes / hora
=2 artculos /cliente
Tiempo entre pedido y entrega=24
F=10 pesos.
a=1.5 pesos por artculo.
r=0.01 pesos por artculo por hora.

Un programa posible para realizar el algoritmo es:


from math import log
import matplotlib.pyplot as plt
from numpy import *
def genera(lamb,t):
return t-(1.0/lamb)*log(random.uniform(0,1))
def pedido(lamb):
return random.poisson(lamb)
infi=100000000
T=270
S=500
s=50
C=S
lamb=2
lamb1=2
lapso=24
t=0.0
tl=genera(lamb,t)
v=0
nv=0
F=10
a=1.5
precio=5

45
r=0.01
costo_inv=0
costo_ord=F+a*S
costo_total=costo_ord
tr=infi
l=[]
t_l=[]
indicador=0
while t<T:
l.append(C)
t_l.append(t)
ta=t
t=min(tl,tr)
costo_inv=costo_inv+(t-ta)*r*C
if tl<tr:
p=pedido(lamb1)
if C>=p:
v=v+p
C=C-p
else:
v=v+C
nv=nv+p-C
C=0
print("%10.3f"%tl,',',C)
tl=genera(lamb,tl)
if C<s and indicador==0:
tr=t+lapso
indicador=1
print("Ordena ","%10.3f"%t,"%10.3f"%tr)
else:
costo_ord=costo_ord+(S-C)*a+F
C=S
indicador=0

46
tr=infi
print("Abastecimiento ","%10.3f"%t,' ',C)
print('Costo=', costo_inv+costo_ord)
print('Vendidos=',v)
print('No vendidos=',nv)
print('Ganancia=',v*precio-costo_inv-costo_ord)
plt.rcParams['font.size']=16
plt.xlabel('Tiempo')
plt.ylabel('Nivel del inventario')
plt.title('Nmero de articulos en el'+'\n'+'inventario contra tiempo')
plt.plot(t_l,l,color='black')
plt.tight_layout()
plt.savefig('NotIn1.png',dpi=600)
plt.show()
En la Fig. 5 se muestra un grfico generado por el programa.

Figura 5.

47
Ejercicios.
1. En un problema de inventario tal y como est planteado en la seccin, los datos
son:
T=720 minutos.
S=500 artculos.
s=50 artculos.
=2 clientes/ hora
=2artculos /cliente
Tiempo entre pedido y entrega=24 (fijo)
F=10 pesos.
a=1.5 pesos por artculo.
r=0.01 pesos por artculo por hora.
a) Estimar el valor esperado del tiempo que tarda esperado del tiempo que
transcurre hasta que el inventario se encuentre vaco. b) La proporcin del tiempo
durante el cual el inventario es menor de 50 artculos.
2. Resuelva el problema anterior suponiendo que los tiempos entre la realizacin
del pedido y la entrega siguen una distribucin exponencial con parmetro 1/24 .

3.4 Reparacin y substitucin de mquinas.

Un taller para poder operar requiere que n mquinas funcionen


simultneamente. El tiempo que una mquina dura funcionando est dado por una
distribucin de probabilidad F; cuando una mquina falla, se manda a reparar e
inmediatamente es sustituida por una de repuesto, si la hay. El taller de reparacin,
repara las mquinas de una en una y el tiempo que tarda en cada una sigue una
distribucin G. Hay s mquinas de repuesto. Interesa el valor esperado hasta que el
taller detiene su ejecucin; esto ocurre cuando se descompone una mquina y no

48
hay ninguna disponible para substituirla.
Un algoritmo posible para simular el comportamiento de las mquinas del
taller es el siguiente:

n=5, s=4, disp=5, td=[]


Agrega a la lista td los prximos tiempos de descompostura de cada mquina,
de acuerdo a su posicin.
tdp=mnimo de los prximos tiempos de descompostura de las mquinas.
tsp=infinito
l=0
Mientras el nmero de mquinas disponibles sea mayor que cero:
t=mnimo(tdp,tsp)
Si t=tdp:
disp=disp-1
l=l+1
k=posicin de la mquina que se descompone.
td[k]=t+F(alfa)
Si l=1:
tsp=t+G(beta)
tdp=min(td)
De otro modo:
l=l-1
disp=disp+1
Si l>0:
tsp=t+G(beta)
En otro caso:
tsp=infinito

A continuacin se presenta el cdigo de un programa para realizar el algoritmo


anterior, suponiendo que F y G son exponenciales. El programa imprime el
tiempo en que ocurre una descompostura y la posicin, el nmero de
mquinas disponibles para reemplazar y los tiempos de descompostura
prximos de cada una de las mquinas.

from random import expovariate


def F(alfa):
return expovariate(alfa)

49
def G(beta):
return expovariate(beta)
def impri(l):
for i in range(len(l)):
print("%8.3f"%l[i],end='')
print('\n')
infi=100000000
alfa=1/50
beta=1/5
n=5
s=4
infi=100000000
disp=s
td=[]
for i in range(n):
td.append(F(alfa))
tdp=min(td)
tsp=infi
l=0
while 1:
t=min(tdp,tsp)
if t==tdp:
if disp==0:
break
disp=disp-1
l=l+1
k=td.index(tdp)
td[k]=t+F(alfa)
if l==1:
tsp=t+G(beta)
tdp=min(td)
print("_____________________")
print("Descompostura ","%8.3f"%t," Posicin ",k," Disponibles ",disp)

50
impri(td)
else:
l=l-1
disp=disp+1
if l>0:
tsp=t+G(beta)
else:
tsp=infi
print("_____________________")
print(" Sale mquina reparada ","%8.3f"%t,Disponibles
,disp,'\n')
print(t)

A continuacin se presenta parte de la salida obtenida por una ejecucin del


programa:

____________________________________________
Descompostura 5.632 Pos 2 Disp 3
89.362 124.569 47.199 35.012 28.181
____________________________________________
Sale mquina reparada 6.141 Disponibles 4
____________________________________________
Descompostura 28.181 Pos 4 Disp 3
89.362 124.569 47.199 35.012 36.465
____________________________________________
Sale mquina reparada 31.334 Disponibles 4
____________________________________________
Descompostura 35.012 Pos 3 Disp 3
89.362 124.569 47.199 55.885 36.465
____________________________________________
Descompostura 36.465 Pos 4 Disp 2

51
89.362 124.569 47.199 55.885 90.479
____________________________________________
Sale mquina reparada 36.950 Disponibles 3
____________________________________________
Sale mquina reparada 42.487 Disponibles 4
____________________________________________
Descompostura 47.199 Pos 2 Disp 3
89.362 124.569 52.810 55.885 90.479
____________________________________________
Descompostura 52.810 Pos 2 Disp 2
89.362 124.569 56.077 55.885 90.479
____________________________________________
Descompostura 55.885 Pos 3 Disp 1
89.362 124.569 56.077 200.878 90.479
____________________________________________
Descompostura 56.077 Pos 2 Disp 0
89.362 124.569 199.674 200.878 90.479
____________________________________________
Sale mquina reparada 59.206 Disponibles 1
____________________________________________
Sale mquina reparada 64.080 Disponibles 2
____________________________________________
Sale mquina reparada 70.617 Disponibles 3
____________________________________________
Sale mquina reparada 78.977 Disponibles 4
____________________________________________
Descompostura 89.362 Pos 0 Disp 3
117.371 124.569 199.674 200.878 90.479
____________________________________________
Sale mquina reparada 90.260 Disponibles 4
____________________________________________
Descompostura 90.479 Pos 4 Disp 3
117.371 124.569 199.674 200.878 93.779

52
____________________________________________
Sale mquina reparada 91.220 Disponibles 4
____________________________________________
Descompostura 93.779 Pos 4 Disp 3
117.371 124.569 199.674 200.878 169.034
____________________________________________
Sale mquina reparada 108.706 Disponibles 4
____________________________________________
Descompostura 117.371 Pos 0 Disp 3
381.966 124.569 199.674 200.878 169.034
____________________________________________
Descompostura 124.569 Pos 1 Disp 2
381.966 148.782 199.674 200.878 169.034
____________________________________________
Sale mquina reparada 130.351 Disponibles 3
____________________________________________
Sale mquina reparada 132.195 Disponibles 4
____________________________________________
Descompostura 148.782 Pos 1 Disp 3
381.966 179.972 199.674 200.878 169.034
____________________________________________
Sale mquina reparada 150.123 Disponibles 4
____________________________________________
Descompostura 169.034 Pos 4 Disp 3
381.966 179.972 199.674 200.878 313.664
____________________________________________
Sale mquina reparada 170.583 Disponibles 4
____________________________________________
Descompostura 179.972 Pos 1 Disp 3
381.966 289.897 199.674 200.878 313.664
____________________________________________
Sale mquina reparada 192.018 Disponibles 4
____________________________________________

53
La salida del programa permite hacer un seguimiento muy preciso de la
operacin del mismo, para constatar que la operacin del programa es la
esperada.
Las primeras versiones de los programas correspondientes a la aplicacin
de algn modelo, siempre debern imprimir en la pantalla los detalles de su
operacin para facilitar la verificacin del mismo.

Ejercicios.
1. Considera un problema de reparacin de mquinas como el planteado en la
seccin en el que F y G son exponenciales con parmetros 1/40 y 1/4 ,
respectivamente, n=6 y s=3. a) Estimar el tiempo que transcurre hasta que el
taller tiene que suspender la actividad. b) Estimar el valor medio del nmero
de mquinas disponibles para substituir , en el intervalo de tiempo desde cero
hasta que el taller tiene que suspender la actividad. c) Cmo cambian las
respuestas a los incisos anteriores si variamos a s como s=4, 5, 6?
2. Resuelva el problema anterior suponiendo que el tiempo de reparacin de
cada mquina es 4 con probabilidad 1.

3.5 Ejercicio de opciones financieras.

Una opcin es un contrato por medio del cual se adquiere el derecho,


pero no la obligacin, a comprar una accin a un precio K llamado precio
de ejercicio en un tiempo especificado. Para adquirir tal derecho se requiere
del pago de una cierta cantidad c por cada accin, llamada prima.
Las opciones europeas solamente pueden ejercerse en una fecha
determinada, mientras que las americanas, pueden ejercerse en cualquier
momento.
Para el caso de una opcin europea, si el precio de la opcin al tiempo
T , S (T ) , es mayor que el precio de ejercicio K se optar por comprar;
en caso contrario, no se realizar la compra. Por lo tanto, la ganancia ser:

c{
G= S (T ) K c si S (T )> K
en otro caso
(3.3)

54
Si se supone que el precio de la accin sigue un movimiento Browniano
geomtrico con deriva y volatilidad , entonces:

2
( ) t + ( t )
2
S (t + t )=S(t )e (3.4)

donde ( t) es una variable aleatoria que sigue una distribucin normal


con desviacin estndar ( t ) . Es importante observar que los son
independientes en intervalos de tiempo disjuntos. Si los parmetros y
estn referidos a un da, entonces por medio de simulacin pueden
generarse los valores S (1), S(2) , ,S (3), ... , S (T ) ; a partir de S 0 se
obtendr S 1 , a partir de ste, se obtendr S 2 , y as sucesivamente, hasta
S (T ) . Para ello, se puede utilizar la frmula recursiva:

2
( )+ (1)
2
S (i +1)=S(i)e para i=0, ,1 ,2 ,... ,T 1 (3.5)

Si solamente se quiere simular el precio de la accin al tiempo T , se


puede considerar:

2
( )T + ( (T ))
2
S (T )=S(0)e (3.6)

Ejercicios.

1. Considere una opcin europea a 180 das de una accin cuyo precio inicial
es 1, el precio de ejercicio es 1.01 , el pago por tener derecho a la opcin es de
0.03. El precio de la accin sigue un movimiento Browniano geomtrico con deriva
0.0029 y volatilidad 0.05, considerados ambos parmetros con respecto a un da. a)
Cul es el valor esperado de la ganancia? b) Cul es la probabilidad de que la
ganancia sea negativa?

55
3.6 Verificacin.

La verificacin se refiere a si el programa en computadora opera de la manera


esperada. Por otro lado, la validacin se refiere al modelo en s, por ejemplo, si las
hiptesis hechas en el modelo son vlidas. Esta seccin se refiere a verificacin del
programa.
Uno de los primeros aspectos se refiere a verificar que el programa no tenga
errores; en sta tarea es importante tener una buena tcnica de programacin, por
ejemplo, modular, que permita revisar cada mdulo en forma independiente. Por
supuesto, es til tambin que el programa pueda leerse con facilidad, que no tenga
complicaciones innecesarias. Es conveniente definir funciones, por ejemplo, para
generar nmeros aleatorios, que puedan probarse aisladamente.
En muchos casos, es posible comparar los resultados intermedios que produce
el programa con los que pudieran obtenerse en forma manual. Por ejemplo, en el
caso de una lnea de espera con un solo servidor, es posible generar los primeros
eventos con papel y lpiz y comparar los resultados con los que produce el
programa. Muchos entornos de programacin permiten la depuracin, es decir, que
mientras el programa se va ejecutando, pueden mostrar el nmero de lnea que est
ejecutando y los valores de las variables importantes.
Otra tcnica til para verificacin, cuando es posible aplicarla, es compara los
resultados dados por el programa con los tericos. Por ejemplo, en las lneas de
espera de un solo servidor del tipo M/M/1, si < , se sabe que el nmero de
personas en el sistema alcanza un estado estacionario con un valor /() ,
luego podemos realizar una simulacin con nuestro programa con un valor de
menor que y observar si produce el resultado correcto.
En la seccin 3.4 est ejemplificada una parte importante de la verificacin del
modelo computacional. En el programa para simular la reparacin y substitucin de
mquinas en un taller, se han insertado muchas lneas solamente para poder ver en
la pantalla la ocurrencia de eventos y cmo cambian los valores de las variables
cuando ocurren los eventos; esto nos permite estudiar si el comportamiento del
programa est de acuerdo al modelo. La realizacin de ste trabajo es

56
imprescindible, porque siempre es posible que el programa elaborado no se apegue
totalmente al modelo.
Para la validacin del modelo es importante que, cuando sea posible, se
compare el comportamiento del modelo con el de la realidad que pretende modelar.
Por ejemplo, tomar mediciones de las entradas y las salidas del sistema para
compararlas con los resultados obtenidos por el modelo. Por otro lado, con
frecuencia las hiptesis hechas en el modelo admiten una verificacin en la
realidad, como lo es el caso de que los clientes lleguen a una lnea de espera de
acuerdo a un proceso de Poisson.

57
Captulo IV

4.1 Interpretacin estadstica de resultados.

Usualmente, al realizar una simulacin se quiere estimar algn parmetro de


un modelo igual al valor esperado de alguna variable aleatoria X . Por ejemplo,
nos puede interesar estimar el valor esperado del nmero de usuarios atendidos en
una lnea de espera durante un perodo especfico de tiempo. Para ello, repetimos la
simulacin con los mismos parmetros, digamos n veces; as se obtiene una
muestra aleatoria X 1 , X 2, X 3, ... , X n y un estimador del valor esperado de X es
la media muestral X . La esperanza de la media muestral es igual a la esperanza
de X , por lo tanto, la media muestral es un estimador insesgado de la esperanza
de X . La varianza de X es igual a V ( X )/ n , luego podemos esperar que
cuando el nmero de repeticiones de la simulacin crece, la variacin de los
resultados ser ms pequea. Finalmente, para n grande, la distribucin de
probabilidad de la media muestral es muy similar a una normal. Por lo tanto,
podemos dar intervalos de confianza de nuestra estimacin para la esperanza X .
Dado que generalmente el nmero de repeticiones de una simulacin es lo
suficientemente grande como para que podamos asumir que X sigue una
distribucin normal, entonces el intervalo de confianza de % tiene la forma:

[ X z , X +z ] (4.1)
n n

donde es la desviacin estndar de X z y es un valor para la distribucin


normal estndar tal que el rea a la derecha de z ms el rea a la izquierda de
z es . Puesto que usualmente no se conoce , sta se estima a travs
s . La longitud del intervalo de confianza disminuye a medida que n crece, de
tal manera, que si se desea que la longitud del intervalo sea menor que e , se

58
2
2 ze
tiene que tomar n>
e ( )
. Al usar sta frmula hay que considerar que no se

conoce ; usualmente se estima con el estimador :


n
1
s=
n1 i =1
(x i x)
2
(4.2)

En muchos casos, se requiere ms informacin acerca de la distribucin de la


variable X y es conveniente obtener un histograma de frecuencias para la
variable. En tal caso, hay que estimar la probabilidad p de que la variable
aleatoria X tome un valor en algn intervalo [a , b] . Definamos a la variable
aleatoria Y como 1 si X toma un valor en [a , b] , y como 0 en caso
contrario. Entonces, Y es de Bernoulli con parmetro p . Dada una muestra
aleatoria Y 1 , Y 2 ,..., Y n , el estimador de mxima verosimilitud para p es
n
p^ = Y i / n . Para n grande, que es el caso en simulacin, el estimador p^
i=1

sigue aproximadamente una distribucin normal con media p y desviacin


estndar p (1 p)/ n . Esto permite dar un intervalo de confianza para la
estimacin de p .

Ejemplo. Supngase que tratamos de aproximar el valor de lanzando


dardos al cuadrado unitario ubicado en el primer cuadrante y observando cuntos
caen en la parte del crculo unitario, centrado en el origen, que est en el primer
cuadrante. La proporcin de dardos que caen dentro del crculo es /4 . Sea
X la variable aleatoria que vale uno si el dardo cae dentro del crculo y cero en
caso contrario. Y sea X 1 , X 2 ,... , X n una muestra aleatoria; X es el estimador
de mxima verosimilitud para la proporcin p de dardos que caen dentro del
crculo. Al repetir el experimento un milln de veces, es decir, n=1000,000 , se
obtuvo 0.78496, como estimador para p , de donde tambin se obtuvo a [0.7843,
0.7856] como intervalo de confianza del 90 % para p , y a [3.1371, 3.1426]
como intervalo de confianza del 90 % , para .

59
Figura 6.

A continuacin se presenta el cdigo de un programa para estimar con los


correspondientes intervalos de confianza.

1000 from random import random


1010 from math import sqrt
1020 nm=1000000
1030 cuenta=0
1040 l=[]
1050 for i in range(nm):
1060 x=random()
1070 y=random()
1080 if x*x+y*y<1:
1090 cuenta=cuenta+1
1100 m=cuenta/nm
1110 print(m)
1120 delta=sqrt(m*(1-m))/sqrt(nm)

60
1130 print("[","%10.4f"%(m-delta),"%10.4f"%(m+delta),"]")
1140 print("[","%10.4f"%(4*(m-delta)),"%10.4f"%(4*(m+delta)),"]")

Con frecuencia, al realizar simulaciones se obtienen realizaciones de muestras


aleatorias, a partir de las cuales se desea estimar algn parmetro empleando
algn estimador ^ , que es funcin de la muestra aleatoria. Y, naturalmente, se
desea tener alguna medicin acerca de qu tanto puede diferir el valor estimado del
parmetro. Para ello se considera el error cuadrtico medio:

^ 2
ECM =E () (4.3)

Desarrollando, se verifica que:

^ ^ 2
ECM =V ()+( E( )) (4.4)

Si el estimador es insesgado, el segundo trmino del miembro derecho de la


igualdad anterior es cero.
En el caso particular en el que el parmetro sea la esperanza de la variable
2
aleatoria, el ECM se calcula fcilmente y es igual a s / n . Pero, en muchos
casos, si no se conoce la distribucin de la variable, no se podr calcular el
ECM ; en stos casos, se puede utilizar la tcnica de bootstrap para estimar el
ECM . Se toma una realizacin de una muestra aleatoria de tamao n ,
digamos x1, x2, x3, ... , x n y se calcula el valor del parmetro sobre sta muestra;
luego se generan n nmeros aleatorios n1, n2 ,n3... ,nn uniformemente
distribuidos sobre {1, 2, 3,... , n} (con reemplazo) y se construye la muestra
xn , xn , x n ,... , x n . Repitiendo este proceso, se pueden obtener m muestras de
1 2 3 n

este tipo. Sobre cada una de ellas, se calcula la diferencia del valor del parmetro
de la muestra original con cada uno de los valores obtenidos en cada muestra, se
elevan al cuadrado stas diferencias y se promedian sobre las m diferentes
muestras.
Con ste procedimiento se generan muestras aleatorias de una poblacin que
sigue una distribucin dada por la muestra original; sta estar tan cercana a la

61
distribucin terica de la muestra original tanto cuanto ms grande sea n .

Ejemplo. El programa que se muesta a continuacin, primero crea una


muestra de tamao 10,000 que sigue una distribucin exponencial con funcin de
densidad (1/ ) e(x /) para x>0 con =0.5 . A continuacin el programa
estima el parmetro , que es el valor esperado de la variable, usando la tcnica
de bootstrap, generando m=1000 muestras. El valor estimado para fue de
5
0.4988 y la estimacin para el ECM fue de 2.383110 . En este caso el
5
valor exacto del ECM es de 2.510 .

1000 from random import random,randint


1010 from math import log
1020 mu=[]
1030 alfa=0.5
1040 n=10000
1050 for i in range(n):
1060 mu.append((-alfa)*log(random()))
1070 t=0
1080 for i in range(n):
1090 t=t+mu[i]
1100 t=t/n
1110 m=1000
1120 suma=0.
1130 for i in range(m):
1140 mu1=[]
1150 for j in range(n):
1160 k=randint(0,n-1)
1170 mu1.append(mu[k])
1180 s=0
1190 for j in range(n):
1200 s=s+mu1[j]
1210 s=s/n
1220 suma=suma+(s-t)**2

62
1230 print(suma/m)

Ejercicios.

1. Con respecto al ejemplo de sta seccin, verificar que el valor exacto del
5
ECM es de 2.510 .
2. Elaborar un programa similar al de sta seccin para la mediana de una
muestra con una distribucin exponencial dada por (1/ ) e(x /) para x>0 con
=0.5 y que estime el ECM .

4.2 Mtodos de reduccin de varianza.

4.2.1 Variables antitticas.


Supongamos que tenemos una muestra aleatoria X 1 , X 2 , X 3 , ... X n de una
cierta poblacin y que ^1 y ^2 son dos estimadores de algn parmetro .
Entonces la media de ambos estimadores tiene una varianza dada por:

^ 1 + ^ 2 1
V( )= (V ( ^ 1 )+V ( ^ 2 )+2 Cov ( ^ 1 , ^ 2 )) (4.5)
2 4
El mximo valor de la varianza de la media se da cuando
Cov( ^1 , ^2 )= V ( ^1 )V ( ^2 ) . Si V ( ^2 )=V ( ^1 ) , ste mximo tiene un valor de
V ( ^ 1 ) . Por lo tanto:

^1 + ^2
V( )V ( ^1 ) (4.6)
2
Es decir, en ningn caso, la varianza de la media de los dos estimadores puede
ser mayor que la varianza de uno de ellos. Si la covarianza es negativa, la varianza
de la media ser menor que la varianza de uno de ellos.
Si ^1 =f (U 1 ,U 2 ,... , U n ) , donde U 1 ,U 2 , ... , U n son independientes y

63
uniformemente distribuidas en [0,1] y f es creciente o decreciente, entonces la
covarianza de ^1 y ^2 =f (1U 1 ,1U 2 ,... ,1U n ) , ser negativa. A la variable
^ se le llama antittica de ^ .
2 1

Ejemplo. Supngase que se quiere calcular la integral 1 /(1+ x)dx . El


0

1 1 1
+ +...+
estimador del valor de la integral es ^ = 1+U 1 1+U 2 1+U n
y
1
n
1 1 1
+ +...+
^ = 2U 1 2U 2 2U n
. La covarianza entre estos dos estimadores es:
2
n
n n n
1 1 1 1
Cov(^ 1 ,^ 2 )= Cov ( , )= Cov( , )
i=1 j=1
1+U i 1+U j i=1 1+U i 2U i

Ahora:
1 1 1 1 1 1 log(2)(23 log(2))
Cov ( , )= E( ) E( ) E( )=
1+U i 2U i 1+U i 2U i 1+U i 2U i 3

Substituyendo esta expresin en la anterior:


log(2)(23log(2))
Cov (^ 1 ,^ 2 )=n
3
Y la varianza de ^1 es:

1 1 1
+ +...+
1+U 1 1+U 2 1+U n 1 1 1 1
V (^ 1 )=V (
2
)= V ( )= ( log(2) )
n n 1+U i n 2

La disminucin de varianza por unidad de varianza de ^1 es:

0.01836
(51.1588(0.01955 n0.5(0.01955 n )))
n
n

64
51.1588(0.01955(0.01955)(0.5))=0.50
para n grande.
Es decir, se obtiene una reduccin de varianza del 50 % .
Ejercicios.
1. Con relacin a la frmula 4.5, Porqu el mximo valor de la varianza de la

media se da cuando Cov( ^1 , ^2 )= V ( ^1 )V ( ^2 ) ?
1

2. Para aproximar la integral 1/(1+ x2)dx=/ 4 , se puede considerar el


0

1 1 1
2
+ 2
+...+
^ 1+U 1 1+U 2 1+U 2n
estimador 1 = , donde U 1 ,U 2 ,... ,U n son variables
n
aleatorias independientes y uniformemente distribuidas en [0,1] . Calcular la
varianza de ^ .1

3. Mediante simulacin, aproxime el valor de la integral 1 /(1+x)dx=log(2) .


0

Despus, aproxime la misma integral usando la tcnica de variables antitticas y


compare los errores relativos; reptalo varias veces.
4. Por medio de simulacin estime la varianza de X 1=1 /(U +1) , de
X 2=1 /((1U )+1) y de la covarianza de X1 y X 2 . A partir de estas
X1+ X2
estimaciones calcule V ( ) .
2

4.2.2 Mtodo de variables de control.

Supongamos que se quiere estimar mediante simulacin a un parmetro a


partir de los valores de una variable aleatoria X , cuyos valores son parte de la
salida de una simulacin. Y supngase que la la simulacin tambin da valores para

65
otra variable aleatoria Y , con E(Y )=Y . La variable aleatoria
Z= X +c (Y Y ) , tiene el mismo valor esperado que X , esto es, ; cualquiera
que sea el valor de c . La idea es encontrar un valor para c , para el cual, la
varianza de sta variable sea lo menor posible. La varianza de Z est dada por:
V (Z)=Cov (Z , Z)=Cov ( X +c (Y Y ), X +c (Y Y ))
2
V (Z)=V ( x)+2 c Cov ( x , y)+ c V (Y )
Luego V (Z) tiene un mnimo para c=Cov ( X ,Y )/V (Y ) , y ste mnimo
tiene un valor:
2
Cov( X , Y )
V ( Z)=V ( X )
V (Y )

Puesto que el coeficiente de correlacin entre X y Y est dado por


r XY =Cov ( X , Y )/ V ( x )V (Y ) ,

V ( Z)=V ( X )(1r XY 2 )

Cuanto ms cercano sea r XY a 1 a 1 , tanto menor ser la varianza de Z.


1

Ejemplo. Supngase que se quiere calcular 1+1x 2 dx= 4 , para aproximar el


0

valor de . La variable X , salida de un programa de simulacin, cuyo valor


esperado es igual a la integral es:
1 1
+...+
1+U 1 1+U n
X=
n

Una variable de control Y puede ser:


U 1 +...+U n
Y=
n

La covarianza entre X y Y es:


log (2)

2 8
Cov ( X ,Y )=
n
Y la varianza de Y es:

66
1
V (Y )=
12n
Por lo tanto el valor de c es:
log (2)
c=12( )=0.5535
2 8
Y la varianza de Z es:

+2 log(2)
12( )
8 16 2 8
V (Z)=
n n

La varianza de X es:
+2

8 16
V ( X )=
n
La reduccin de la varianza es de 98.8 % .

Ejercicios.
2
1. Pruebe que el mximo valor de V (Z )=V ( x)+2 c Cov( x , y )+c V (Y ) se da
cuando c=Cov ( X ,Y )/V (Y ) .
1
dx
2. Calcule por simulacin la integral 1+ x . Luego, reduzca la varianza
0

U 1 +U 2 +... U n
utilizando a Y= . Calcule el porcentaje de reduccin de la
n
varianza.

67
4.2.3 Por condicionamiento.

Supongamos que queremos estimar un parmetro , por medio de un


estimador X insesgado. Por la frmula llamada de la varianza total:
V ( X )= E(V ( X | Y ))+V (E ( X |Y ))
(vase el apndice) se deduce que:
V ( X )V (E( X | Y ))
Adems, E (X |Y ) tambin ser un estimador insesgado de , ya que
E (E (X |Y ))=E (X ) . Luego al utilizar al estimador E (X |Y ) , tenemos la
posibilidad de disminuir la varianza.
Ejemplo. Una manera de aproximar el valor de es simular el lanzamiento
de dardos sobre el cuadrado unitario y observar cuntos caen dentro del cuarto de
crculo circunscrito. Para realizar la simulacin, sean U 1 y U 2
uniformemente distribuidas en [0,1] e I la variable indicadora definida por:

I=
{10sienUotro +Ucaso<1
1 2

La esperanza de I es / 4 .
E (I | U 2 =u)=1P (I=1 | U 2 =u)+0P (I=0 | U 2=u)=P(U 1 +U 2 <1 | U 2 =u)

Ahora:
P(I =1|U 2 =u)=P (U 1 +U 2 <1 |U 2 =u)= P( 1u <U 1 < 1u )= 1u

Por lo tanto:
E( I |U 2 )= 1U 2

Ahora bien,
2
V (P(I |U 2 ))=V ( 1U 2 )= 0.05
3 16
Mientras que:

68
V (I )= (1 )0.169
4 4
La disminucin porcentual de la varianza es de 99.7 % .
Ejercicios.
1
dx
1. Una manera de estimar el valor de la integral 1+ x
es lanzar dardos al
0

cuadrado [0,1][0,1] y observar cuntos de stos puntos caen por debajo de la


grfica de la funcin. Usar este mtodo para estimar la integral. Y luego, usar el
mtodo de condicionamiento para reducir la varianza. En qu porcentaje redujo la
varianza?

69
Captulo V
5.1 Introduccin.

Respecto a la validacin de los modelos construidos para simular algn


fenmeno de la realidad hay por lo menos dos aspectos fundamentales, uno de ellos
se refiere a la validez de los supuestos acerca de las distribuciones de probabilidad
de las variables involucradas en el fenmeno; el otro se refiere, a la funcionalidad
de los programas de computadora empleados.

5.2 Validacin estadstica.


5.2.1 Pruebas de bondad de ajuste.
En muchos procesos de simulacin la validacin acerca de las hiptesis que se
consideran acerca de la distribucin de probabilidad de las variables involucradas
es indispensable. Por ejemplo, al modelar una lnea de espera de un solo servidor
con frecuencia se supone que los usuarios llegan siguiendo un proceso de Poisson;
en tal caso, los tiempos entre llegadas consecutivas son independientes y siguen
una distribucin exponencial. En este caso, la manera de validar nuestra hiptesis
es realizar una prueba de hiptesis acerca de si los tiempos entre llegadas
consecutivas siguen o no una distribucin exponencial.
Para verificar si un conjunto de datos x1 , x 2, x 3 , ..., xm sigue o no una
distribucin dada por una funcin F , se toman n intervalos iguales disjuntos
A 1 , A 2 , ..., An que contengan a los datos y se contabilizan el nmero de datos
f i que estn en el i-simo intervalo, para cada uno de ellos. Por otro lado, bajo la
hiptesis, llamada hiptesis nula, de que los datos iniciales siguen una distribucin
dada por F , el nmero esperado de datos que deberan estar en el i-simo

70
intervalo es ei =m ( F (bi ) F (ai )) , donde ai y bi son los extremos derecho e
izquierdo del i-simo intervalo. Bajo la hiptesis nula, la variable:

n 2
( f iei )
D= (5.1)
i =1 ei
2
sigue una distribucin de con n p , donde p es el nmero de parmetros
estimados que definen a F .

Ejemplo. Verificar si se puede suponer que los datos 0.134 1.054 0.469 0.090
1.629 0.074 3.132 8.095 2.210 2.154 0.040 1.834 0.682 0.500 1.347 0.383 0.326
0.761 7.031 1.816 3.855 0.206 2.478 5.084 0.202 0.204 0.999 4.957 1.893 0.462
1.316 3.553 1.292 0.565 0.158 0.845 2.457 1.662 1.025 4.307 2.781 0.149 0.273
2.426 0.938 0.790 0.620 1.040 5.101 0.778 0.480 2.624 1.103 3.144 2.614 4.242
1.677 0.892 3.351 4.272 2.547 4.625 7.433 0.472 0.269 4.516 1.732 1.070 1.335
0.244 0.195 0.910 1.909 6.052 2.120 0.219 1.792 0.014 0.174 0.327 3.587 1.383
0.577 0.198 5.404 2.032 0.351 1.734 2.255 0.077 2.866 0.748 1.310 3.389 1.879
0.845 1.954 0.393 2.036 3.618 proviene de una distribucin exponencial o no.
Intervalo fi ei

[ 0.014 , 0.903 ] 39.000 37.849


[ 0.903 , 1.792 ] 19.000 23.417
[ 1.792 , 2.681 ] 19.000 14.488
[ 2.681 , 3.570 ] 7.000 8.963
[ 3.570 , 4.459 ] 6.000 5.546
[ 4.459 , 5.348 ] 5.000 3.431
[ 5.348 , 6.237 ] 2.000 2.123
[ 6.237 , 7.126 ] 1.000 1.313
[ 7.126 , 8.015 ] 1.000 0.813
[ 8.015 , 8.904 ] 1.000 0.503

2
El valor de D es 4.0753. Para 9 grados de libertad, P( >36.19)=0.01 . Luego,
la regin de rechazo de la hiptesis nula a un nivel de significancia del 1 % es el
conjunto { xR | x>36.19 } . Como el valor de D no pertenece a la regin de

71
rechazo, no se puede rechazar la hiptesis nula a un nivel de significancia del 1%.
Para verificar la bondad de ajuste tambin se utiliza la prueba de Kolmogorov-
Smirnov. Considrese una muestra de datos x 1 , x 2, x3 , ... , x m , ordenados en
forma ascendente y que se quiere verificar si provienen o no de una distribucin
F . Primero, se determina la funcin de densidad acumulada emprica, dada por:

{
0 x <x1
S (x )= k xk x<x k +1 (5.2)
m
1 x xm

La estadstica empleada para probar la hiptesis nula de que los datos


provienen de una distribucin F , es:

D=Supremo | F (x )S(x )| (5.3)


x

Se puede demostrar que la distribucin de D bajo la hiptesis nula, no


depende de F . La distribucin de D puede encontrarse en las tablas
correspondientes.
Como F es no-decreciente, el mximo de | F ( x)S ( x)| tiene que darse
en alguno de los puntos xi ; ste hecho facilita el clculo de D , ya que D
puede obtenerse como:

i i1
D= Max { Max {| F (x i )|}, Max {| F (x i )|}} (5.4)
i=1,... , n1 n i=2,... , n n

La Fig. 6 puede ayudar a entender sta frmula.

72
Figura 7

Ejemplo. Verificar si se puede suponer que los datos 0.436, 1.047, 1.568, 4.932,
3.818, 0.120, 3.367, 0.183, 1.425, 3.159, provienen de una distribucin
exponencial. El valor estimado para el parmetro es 0.4987. En este caso,
F (x )=1e0.4987 x .
i xi i/ n F (x i ) |i /nF (x i)| |F ( x i )(i1)/ n|

1 0.120 0.100 0.058 0.0419 --------


2 0.183 0.200 0.087 0.1127 0.0127
3 0.436 0.300 0.195 0.1046 0.0046
4 1.047 0.400 0.407 0.0068 0.1068
5 1.425 0.500 0.509 0.0087 0.1087
6 1.568 0.600 0.542 0.0576 0.0424
7 3.159 0.700 0.793 0.0930 0.1930
8 3.367 0.800 0.813 0.0134 0.1134
9 3.818 0.900 0.851 0.0490 0.0510
10 4.932 1.000 0.915 -------- 0.0145

D= Mx | F (x )S (x )|=0.1930

73
Para una muestra de tamao 10, P( D>0.410)=0.05 ; ste valor se obtiene de las
tabla para la distribucin de D. Luego, a un nivel de significancia de 5 %, la regin
de rechazo es { D | D>0.410 } . Como el valor D=0.1930 no est en la regin de
rechazo, se concluye que no se puede rechazar H 0 al nivel de significancia
especificado.

Ejercicios.
1. Verifique la hiptesis de que la muestra 0.811, 1.491, 0.627, 0.365, 1.368, 1.386,
0.848, 0.502, 1.177, 0.447, proviene de una poblacin que sigue una distribucin
exponencial. Utilice una prueba de chi-cuadrada y una prueba de Kolmogorov-
Smirnov.
2. Verifique la hiptesis de que los datos 9.9602, 9.7313, 10.2611, 9.7755, 10.0374,
10.1625, 9.8777, 10.3733, 10.1853, 10.4190, 9.8410, 10.0697, 10.0947, 9.9652,
10.0482, 9.9197, 10.1855, 9.8417, 10.3788, 10.0078, 10.0309, 9.9197, 10.0023,
9.9924, 10.0789, 10.4128, 9.5809, 10.3255, 9.9295, 10.1004, 9.9244, 10.0576,
9.7026, 10.3345, 10.0497, 9.7416, 10.2721, 10.2124, 10.3154, 10.1698, 10.2594,
9.7189, 10.4893, 9.7221, 9.6767, 9.6867, 9.7955, 10.0013, 9.8699, 9.6303,
10.0264, 9.8520, 10.3640, 10.0887, 10.1144, 10.1127, 9.6343, 10.0133, 9.9088,
9.7563, 10.1438, 10.0122, 10.0837, 9.9286, 9.8706, 9.6269, 10.0140, 9.8148,
10.0410, 9.8920, 10.0491, 10.2817, 10.0433, 10.2659, 9.8463, 10.4007, 9.9834,
9.6468, 10.1388, 9.7332, 10.2421, 10.0909, 10.0916, 9.5068, 10.1067, 9.5760,
9.8612, 10.1703, 9.8964, 10.0454, 10.3437, 9.7423, 10.1985, 10.0944, 10.1657,
10.1020, 10.0290, 10.2598, 10.0417, 9.9599 siguen un movimiento Browniano
geomtrico. Cules son los valores estimados de la deriva y de la volatilidad?

5.2.2 El problema de las dos muestras.


Si se dispone de un conjunto de datos reales x 1 , x 2, x3 , ... , x n y de un
modelo para generar por medio de simulacin datos del mismo tipo, digamos,
y1, y2, y3,. .. , y m , se puede realizar una prueba de la hiptesis nula de que ambas

74
muestras provienen de una poblacin con una misma distribucin, bajo el supuesto
de que tanto las x como las y son independientes, tal como la de Mann-Whitney.
Se agregan ambas muestras para formar una sola y se suman los rangos que
ocupan los datos de la muestra x obteniendo R x . Dado este valor, se calculan
U x =nm+n (n+1)/2R x y U y =nmU x . La prueba se basa en el estadstico
U=mn(U x ,U y ) . Para valores pequeos de n y m, digamos menores que 20, se
disponen de tablas para la distribucin de U bajo la hiptesis nula. Para valores
mayores de n , U sigue aproximadamente una distribucin normal con media
nm/ 2 y varianza nm(n+m+1)/ 12 .
Ejemplo. Pruebe la hiptesis de que las muestras 0.731, 0.461, 0.318, 0.127,
0.185, 0.283, 0.028, 1.086, 0.143, 0.056, 0.954, 0.457, 0.030, 1.199, 0.438 y
0.520, 1.102, 1.626, 0.760, 1.433, 1.527, 1.155, 0.281, 0.999, 0.383, 0.413,
3.120, 1.898, 1.386, 0.494, 3.325, 0.046, 1.350, 0.079, 1.237 provienen de una
misma distribucin.
A continuacin se presenta el listado ordenado de ambos conjuntos de datos. Los
nmeros entre parntesis son los rangos que ocupan los datos de la primer muestra
en la lista completa.
0.028(1) , 0.030(2) , 0.046, 0.056(4) , 0.079, 0.127(6) , 0.143(7) , 0.185(8) , 0.281,
0.283(10) , 0.318(11) , 0.383, 0.413, 0.438(14) , 0.457(15) , 0.461(16) , 0.494,
0.520, 0.731(19) , 0.760, 0.954(21) , 0.999, 1.086(23) , 1.102, 1.155, 1.199(26) ,
1.237, 1.350, 1.386, 1.433, 1.527, 1.626, 1.898, 3.120, 3.325
Sumando los valores entre parntesis se obtiene R x =183 ; de donde U x =237 ,
U y =63 y U=63 . Suponiendo la aproximacin normal para la distribucin de
U , se obtiene z=2.9 . Considerando que P(| Z |>1.96)=0.05 , el valor de
z=2.9 est en la regin de rechazo de la hiptesis nula a un nivel de
significancia de 5 % ; por lo tanto, se rechaza la hiptesis nula que las dos
muestras provienen de una misma distribucin al nivel de significancia del 5 % .
Otra forma de realizar esta prueba es basarse directamente en el estadstico
R . Para muestras pequeas, la distribucin de probabilidad de R se puede
obtener con frmulas recursivas. Sea p (n ,m ,r )= Pn ,m ( Rr) . Si el valor ms

75
grande se encuentra en la primer muestra, la suma de rangos ser igual a n+m
ms la suma de rangos de los n1 valores restantes y la suma de rangos de los
n valores ser menor o igual que r si y solamente si la suma de rangos de los
n1 restantes valores es menor o igual que r(n+ m) . Si el valor ms grande
est en la segunda muestra, entonces la suma de rangos para los n datos ser
menor o igual que r si y solamente si, la suma de rangos para los m1
restantes valores tambin es menor o igual que r . Como:

Pn, m ( Rr )= Pn , m (Rr | el mayor valor est en la primer muestra)


P(el mayor valor est enla primer muestra)
+Pn , m( Rr | el mayor valor est en la segunda muestra)
P(el mayor valor est en la segunda muestra)

De donde:

n m
p (n ,m ,r )= p(n1, r(n+ m))+ p(n ,m1, r) (5.5)
n+ m n+m

Adems:

p(1,0,r)=1 si r> 0 y p (1,0, r)=0, en otro caso (5.6)


p(0,1, r)=1 si r0 y p(0,1,r)=0, en otro caso

Se puede obtener una tabla para valores pequeos de n y de m con el siguiente


programa:
def fu(n,m,r):
if (n+m)==1:
if n==1 and m==0:
if r>0:
return 1
else:
return 0
elif n==0 and m==1:
if r>-1:

76
return 1
else:
return 0
else:
return 0
else:
return (n/(n+m))*fu(n-1,m,r-n-m)+(m/(n+m))*fu(n,m-1,r)
for i in range(2,20):
for j in range(2,20):
r1=int(i*(i+1)/2)
r2=int(j*(j+2*i-1)/2)
for r in range(r1,r2+1):
x=fu(i,j,r)
print("%3.0f"%i,"%3.0f"%j,"%3.0f"%r,"%4.4f"%x)

La funcin fu est definida en forma recursiva de acuerdo a las ecuaciones


anteriores.

A continuacin se muestran algunos valores calculados con el programa anterior.

n m r P( Rr) n m r P( Rr) n m r P( Rr)

2 2 3 0.1667 2 4 10 0.9333 3 4 9 0.2000


2 2 4 0.3333 2 4 11 1.0000 3 4 10 0.3143
2 2 5 0.6667 2 4 12 1.0000 3 4 11 0.4286
2 3 3 0.1000 2 4 13 1.0000 3 4 12 0.5714
2 3 4 0.2000 2 4 14 1.0000 3 4 13 0.6857
2 3 5 0.4000 3 2 6 0.1000 3 4 14 0.8000
2 3 6 0.6000 3 2 7 0.2000 3 4 15 0.8857
2 3 7 0.8000 3 3 6 0.0500 3 4 16 0.9429
2 3 8 0.9000 3 3 7 0.1000 3 4 17 0.9714
2 3 9 1.0000 3 3 8 0.2000 3 4 18 1.0000
2 4 3 0.0667 3 3 9 0.3500 4 3 10 0.0286
2 4 4 0.1333 3 3 10 0.5000 4 3 11 0.0571
2 4 5 0.2667 3 3 11 0.6500 4 3 12 0.1143
2 4 6 0.4000 3 3 12 0.8000 4 3 13 0.2000
2 4 7 0.6000 3 4 6 0.0286 4 3 14 0.3143
2 4 8 0.7333 3 4 7 0.0571 4 3 15 0.4286
2 4 9 0.8667 3 4 8 0.1143 4 4 10 0.0143

77
4 4 11 0.0286 4 4 15 0.2429 4 4 19 0.6571
4 4 12 0.0571 4 4 16 0.3429 4 4 20 0.7571
4 4 13 0.1000 4 4 17 0.4429 4 4 21 0.8286
4 4 14 0.1714 4 4 18 0.5571 4 4 22 0.9000

Ejercicios.
1. Pruebe la hiptesis nula de que las dos muestras 0.306, 0.171, 1.023, 0.063,
1.086, 0.154, 1.492 y 0.087, 0.230, 0.352, 0.350, 0.325, 0.338, 0.628, 0.922
provienen de una misma distribucin de probabilidad, a un nivel de significancia
del 5 %. Use la frmula recursiva dada en la seccin.

5.2.3 Validacin de la hiptesis de que un proceso de


Posisson es no homogneo.

Para verificar que un proceso de Poisson no es homogneo se puede aplicar


una prueba de bondad de ajuste. La hiptesis nula es que los datos siguen un
proceso de Poisson homogneo. Supongamos que queremos realizar la prueba a
m datos que se encuentran en el intervalo de tiempo [0, T ] . Primero dividimos
el intervalo en n subintervalos iguales y calculamos las frecuencias absolutas
correspondientes a los datos en los subintervalos; digamos que en el intervalo i-
simo hay f e . Si el proceso es homogneo, entonces en cualquier intervalo
i

debera haber f t =m/n datos. Tomamos el estadstico:


i

n 2
(f t f e )
Q= i i

i=1 f ti

que debe seguir una distribucin de chi-cuadrada con n2 grados de


libertad, dado que se estima un parmetro.

Ejemplo. Se observa que de 1410 datos en el intervalo de tiempo [0,10] las


siguientes cantidades caen en los intervalos [0,1), [1,2),,[9,10]: 1042, 921, 985,
1034, 1011, 1046, 997, 1004, 1089 y 1057. Decidir si los datos provienen de un
proceso homogneo o no. En este caso Q=23.83 y el nmero de grados de
libertad es 8 . Para ste nmero de grados de libertad el valor crtico a un nivel
de significancia de 10 % es 13.36. Como 23.83>13.36, se rechaza la hiptesis nula

78
de homogeneidad a un nivel de significancia del 10 %.

5.2.4 Aplicaciones a problemas de finanzas e ingeniera.


Una de las aplicaciones imortantes en finanzas es la verificacin de si un
conjunto de precios de acciones sigue o no un movimiento Browniano. Si el precio
de una accin al tiempo t es S (t ) , entonces los valores de ln (S(t +1)/ S (t ))
deben se independientes y seguir una distribucin normal con media y
desviacin estndar . Aplicando una prueba de bondad de ajuste a los valores
de ln (S(t +1)/ S (t )) podemos decidir si los precios de la accin siguen o no un
movimiento Browniano. Es conveniente tambin verificar la independencia de
stos valores, por ejemplo, con una prueba de correlacin serial.

Ejemplo.
En ingeniera, por ejemplo, en el caso de lneas de espera, por medio de las
pruebas sealadas en ste captulo, podemos verificar si los usuarios llegan o no
siguiendo un proceso de Poisson homogneo; sta es una parte importante de la
validacin del modelo.

79
Apndice.
Esperanza, varianza y covarianza.
La esperanza de una variable aleatoria X que tiene a f X como funcin de
densidad (continua), est dada por:
+
E( X)= x f X (x)dx

Y en el caso discreto, por:



E( X)= x f X (x )
x=0

Algunas de las propiedades empleadas con ms frecuencia son las siguientes:


a) E( X +Y )=E (X )+ E(Y )
b) E(aX )=a E (X )
La esperanza condicional de una variable aleatoria X dado Y = y se define
como:
E( X |Y = y)= x f X |Y ( x | y)
x

Y se define a la variable aleatoria E( X |Y ) del modo siguiente: Dado w ,


E( X |Y ) toma el valor E( X | Y = y ) , donde y=Y (w) . La esperanza de sta
nueva variable aleatoria es igual a E( X ) :
f ( x , y)
E( E ( X |Y ))= xf X |Y ( x | y) f Y ( y )= x f ( y )= xf X ( x)= E( X )
y x y x f Y( y) Y x

La varianza de una variable aleatoria X se define como:


V ( X)= E[( XE( X ))]
Desarrollando el miembro derecho:

80
2 2 2 2
V ( X )=E [ X 2 E ( X ) X +( E( X ) )]= E( X ) E ( X )
La covarianza de X y Y , se define como:
Cov( X ,Y )=E [( X E( X ))(Y E(Y ))]
La covarianza de X y Y tambin se puede escribir como:
Cov( X ,Y )=E ( XY ) E( X ) E(Y )
La covarianza tiene las siguientes propiedades:
a) Cov( X , X )=V ( X )
b) Cov( X ,Y )=Cov (Y , X )
c) Cov(aX +bY , Z)=aCov ( X ,Z )+bCov (Y , Z)
Adems:
V ( X +Y )=Cov( X +Y , X +Y )=Cov ( X , X )+2Cov ( X ,Y )+Cov(Y ,Y )
Por lo tanto:
V ( X +Y )=V ( X)+V (Y )+2Cov ( X , Y )
Si X y Y son independientes, entonces , E( XY )=E ( X ) E (Y ) ,
Cov( X ,Y )=0 y:
V ( X +Y )=V ( X )+V (Y )
Por otro lado,
V (aX )=a V (X )
Se define al coeficiente de correlacin entre X y Y como:
Cov ( X ,Y )
r XY =
V ( X)V (Y )
Como V ( X)V (Y )Cov (X , Y ) V ( X)V (Y ) , el coeficiente de correlacin
siempre est entre 1 y 1 . Si dos variables aleatorias son independientes,
entonces su coeficiente de correlacin es cero; pero, el recproco no es cierto.
La varianza condicional de X dada Y se puede definir como:

81
V ( X | Y )=E( X |Y )E( X |Y )
Una propiedad importante de la varianza condicional es el teorema de la varianza
total: E(V ( X |Y ))+V (E( X | Y ))=V ( X) . A continuacin se verifica la frmula:
E(V (X | Y ))+V (E( X | Y ))= E(E( X | Y ) E(E (X |Y )))
+ E(E( X |Y ))( E(E( X |Y )))= E( X )E( X)

Desigualdad de Tchevychev.
La desigualdad de Tchebyshev se basa en la desigualdad de de Markov:
E(X)
P( X a)
a
Para cualquier variable aleatoria no-negativa X que tenga esperanza y cualquier
nmero positivo a. Se demuestra fcilmente considerando la variable aleatoria
Z=a si Xa y 0 enotro caso y considerando que E( Z )E ( X ) y
E( Z )=aP( X a) . Si en sta desigualdad, consideramos a X como
( X E ( X )) y en vez de a ponemos a , resulta la desigualdad de
Tchebyshev:
V (X)
P(|X E( X )|a)
a
siempre que X tenga varianza.

82
Bibliografa.
Banks, J., Carson, J.S., Nelson, B.L., Nicol, D.M., Discret-Event System
Simulation, Pearson, Prentice Hall, Fourth Edition, 2004.
Hoel, P.G., Introduction to Mathematical Statistics, Wiley International Edition,
Third Edition, 1962.
Hunter, J.D., Matplotlib: A 2D graphics environment, Computing In Science \&
Engineering, Vol. 9-3, pp. 90-95, 2007.
Law, A.M., Simulation, Modeling & Analysis, McGraw Hill, Higher Education, 4th
Edition, 2007.
Leemis, L.M.,Park, S.K., Discrete-event Simulation: A First Course, Pearson
Prentice Hall, 2006.
Lewis, P.A.W, G. S. Shedler, G,S, Simulation of nonhomogenous Poisson processes
with degree-two exponential polynomial rate function. Operations Research, 27(5),
pp. 10261039, 1979.
Mood, A.M., Graybill, F.A., Boes, D.C., Introduction To The Theory of Statistics,
McGraw-Hill International Edition, Third Edition, 1974.
Ross, S.M., Simulation. Academic Press, Elsevier, Fifth Edition, 2013.
Ross, S.M., An Elementary Introduction to Mathematical Finance, Cambridge
University Press, Third Edition, 2011.
Van Rossum, G., Python tutorial, Technical Report CS-R9526, Centrum voor
Wiskunde en Informatica (CWI), Amsterdam, May 1995.

83

Вам также может понравиться