Está en la página 1de 8

Capı́tulo 1

Introducción a la Simulación

La necesidad de llevar a cabo simulaciones surge en aquellos campos en los que interesa
analizar el comportamiento de determinados procesos en unos escenarios concretos, ası́
como cuando es preciso evaluar el efecto que ciertas alteraciones en el planteamiento de un
determinado diseño producen en las conclusiones finales, aplicando análisis de sensibilidad.

1.1. Tipos de simulación


Algunas definiciones básicas son las siguientes:

Definición 1 Un sistema es un conjunto de objetos o ideas que están interrelacionadas


entre sı́ como una unidad para la consecución de un fin.

Definición 2 Un modelo es una representación simplificada de un sistema.

A partir de las anteriores, podemos introduccir una definición formal de lo que se


conoce como simulación (Shannon, 1975).

Definición 3 Simulación es el proceso de diseñar un modelo de un sistema real y llevar


a cabo experiencias con él, con la finalidad de aprender el comportamiento del sistema o
de evaluar diversas estrategias para el funcionamiento de este.

Aunque pueden distinguirse muchas clases, según los elementos que intervienen y los
ambientes en que se desarrollan, básicamente pueden considerarse dos tipos de simulación:

Determinı́stica: Incluye los procedimientos en los que, mediante modelos matemáti-


cos se representan situaciones donde, siempre que se introduzcan los mismos valores
como entrada, se obtienen idénticos resultados como salida.

Estocástica: Se refiere a los casos en los que los fenómenos que hay que representar
tienen, de forma natural o introducidos artificialmente, elementos aleatorios.

5
6 CAPÍTULO 1. INTRODUCCIÓN A LA SIMULACIÓN

1.0
0.8
0.6
f(x)

0.4
0.2
0.0

0.0 0.2 0.4 0.6 0.8 1.0

Figura 1.1: Área determinada por f (x)

En esta asignatura el foco estará en la simulación estocástica. El siguiente ejemplo


muestra una aplicación de la simulación en el contexto de la inferencia estadı́stica.

Ejemplo 4 Cálculo de una integral. Sea el problema determinı́stico de hallar la inte-


gral Z 1
I= f (x)dx,
0

donde f (x) se representa en la Figura 3.4.1.


Una buena aproximación para el cálculo de la integral mediante simulación consistirá
en la generación de n observaciones aleatorias y uniformes en el cuadrado [0, 1] × [0, 1] y
tomar como valor aproximado de la integral

#{observaciones debajo de la curva f }


Iˆ = .
n
ˆ la proporción de observaciones que caen debajo
En efecto, es sencillo comprobar que I,
de la curva, es la media muestral de una muestra aleatoria simple (m.a.s.) de tamaño n
de una variable Bernoulli de parámetro p, siendo p la probabilidad bajo la curva.
Entonces, por la Ley de los Grandes Números, Iˆ converge a la media poblacional I
cuando n → ∞, de forma que Iˆ ≈ I, para n suficientemente grande.

Algunas de las principales ventajas de la simulación es que permiten trabajar con


sistemas que no tienen una formulación matemática o en los que no existe un método
matemático de resolución (o este es demasiado complejo o resulta costoso). También es
1.2. NÚMEROS ALEATORIOS Y PSEUDOALEATORIOS 7

útil en los casos en que se quiere experimentar con el sistema antes de su construcción o
cuando es imposible experimentar con el sistema y prevenir eventualidades. La desvantaja
más destacable es que es común despreciar elementos o relaciones sin importancia aparente
que puede llevar a no obtener resultados precisos.
Según las variables de estado involucradas, distinguiremos entre sistemas continuos, en
los que las variables de estado cambian de modo continuo a lo largo del tiempo (movimiento
de un tren a lo largo de la vı́a: posición, velocidad y aceleración) y sistemas discretos en los
que las variables de estado cambian en ciertos instantes de tiempo (sistema de atención
al cliente atendido por un único servidor: número de clientes en el centro de servicio).
Finalmente, según su evolución en el tiempo, los sistemas pueden ser estáticos y dinámicos.

1.2. Números aleatorios y pseudoaleatorios


El punto de partida en simulación estocástica es la introducción de una fuente de
aleatoriedad. Históricamente se han ido utilizando dispositivos mecánicos como la ruleta,
el lanzamiento de dados o la extracción de cartas pero, con la complejidad creciente de
los problemas y el desarrollo de ordenadores, surgen nuevos procedimientos, en particular
algoritmos numéricos que producen secuencias de números que verifican unas determinadas
propiedades estadı́sticas.
Definición 5 Una secuencia de números entre 0 y 1, {ui }ki=1 , decimos que es una suce-
sión de números pseudoaleatorios si ha sido obtenida por técnicas deterministas y
posee las mismas propiedades estadı́sticas que una colección de observaciones de variables
aleatorias independientes e idénticamente distribuidas según una distribución uniforme
U (0, 1).
El siguiente resultado de probabilidad nos permite utilizar la generación de números
pseudoaleatorios como herramienta suficiente para generar cualquier otro tipo de observa-
ciones aleatorias.
Teorema 6 Si U es una variable aleatoria U (0, 1) y F (x) es una función de distribu-
ción entonces X = F −1 (U ) es una variable aleatoria con función de distribución F (x),
considerando como definición de función inversa:
F −1 (u) = ı́nf{x : F (x) ≥ u}.
Por tanto, si se consigue simular correctamente una variable aleatoria uniforme U (0, 1)
se podrá, al menos teóricamente, simular cualquier otra variable aleatoria.
Definición 7 Un generador de números pseudoaleatorios es cualquier algoritmo que a
partir de u0 (semilla) produce {u1 , ..., uk } números pseudoaleatorios.
Entonces, la primera tarea será contar con un buen generador que produzca observa-
ciones “al azar” entre 0 y 1. Actualmente los más utilizados son los generadores congruen-
ciales.
8 CAPÍTULO 1. INTRODUCCIÓN A LA SIMULACIÓN

1.2.1. Generadores congruenciales


Fueron introducidos por Lehmer en 1949 y consisten en una fórmula recursiva que, a
partir de un valor inicial o semilla, va obteniendo los sucesivos números que permetirán
determinar las observaciones pseudoaleatorias de interés. A continuación presentamos al-
gunos ejemplos:

Generador multiplicativo o de Lehmer. Dados m ∈ Z+ , a ∈ Z+ y una semilla x0 ∈ Z+ ,


se van generando
xn = axn−1 mód m.

Es decir, xn es el resto de dividir axn−1 por m y ası́ xn ∈ {0, 1, ..., m − 1}. Esto
pemite obtener números pseudoaleatorios sin más que considerar:
xn
un = .
m

Generador congruencial lineal. Dados m ∈ Z+ , a ∈ Z+ , c ∈ Z+ y una semilla


x0 ∈ Z+ , se van generando

xn = axn−1 + c mód m.

Los números pseudoaleatorios vendrán dados, entonces, por:


xn
un = .
m

Existen periodos de diferentes longitudes según sean los valores seleccionados para los
parámetros iniciales. En esta lı́nea se han obtenido resultados que permiten establecer
las condiciones para llegar a periodos máximos. En la práctica se suelen fijar los
siguientes valores:
m = 231 − 1, a = 75 y c = 0.

Una vez se tienen los números pseudoaleatorios, mediante un generador determinado,


hay que valorar el comportamiento de dicho generador como elemento fundamental al
introducir el azar en nuestros procedimientos. Por tanto, hay que validar estadı́sticamente
las propiedades que exigimos a los valores generados, es decir independencia y aleatoriedad:
no debe haber ningún patrón en la producción de números y estos han de ser como
observaciones de una distribución uniforme U (0, 1).
A continuación introducimos una serie de contrastes de hipótesis que son las herramien-
tas que utilizaremos para comprobar si, efectivamente, contamos con un buen generador
de números aleatorios.
1.3. CONTRASTES DE BONDAD DE AJUSTE 9

1.3. Contrastes de bondad de ajuste


Dada una sucesión de números entre 0 y 1, el primer paso para poder afirmar que
es una secuencia de números aleatorios será comprobar si dichas observaciones son una
muestra aleatoria simple de una variable aleatoria U (0, 1).
Planteamiento del problema: Sean (X1 , ..., Xn ) variables aleatorias independientes con
función de distribución F (x) no conocida. Se quiere efectuar el contraste de hipótesis

H0 : F (x) = F0 (x) frente a H1 : F (x) ̸= F0 (x), (1.1)

donde F0 es la función de distribución de una variable aleatoria U (0, 1). Esto es,

0 si x < 0

F0 (x) = x si 0 ≤ x < 1 (1.2)

1 x ≥ 1.

Para llevar a cabo este contraste existen diferentes procedimientos. Los más utilizados,
por sus buenas propiedades y por estar implementado en la mayorı́a de software estadı́stico,
son el de Kolmogorov-Smirnov (no paramétrico) y el de la χ2 (relacionado con el contraste
de razón de verosimilitudes de la multinomial).

1.3.1. Contrastes de Kolmogorov-Smirnov


La herramienta clave en estos contrastes es la función de distribución empı́rica, Fbn (x) ≡
F (x), obtenida a partir de la muestra (x1 , ..., xn ). Se define
b

0 si x < x(1)

Fb(x) = nk si x(k) ≤ x < x(k+1) (1.3)

1 x ≥ x(n) ,

donde x(1) , ..., x(n) denota la muestra ordenada.


El teorema de Glivenko-Cantelli establece que la función de distribución empı́rica con-
verge uniformemente, casi seguro, a la función de distribución de la población de la que se
extrae la muestra. Tomando como base este resultado, el contraste de Kolmogorov-Smirnov
utiliza estadı́sticos que evalúan el grado de alejamiento entre la función de distribución
bajo la hipótesis nula y la función de distribución empı́rica construida a partir de los da-
tos como se indica en (1.3). Este contraste solo puede aplicarse si F0 es absolutamente
continua. En nuestro caso es válido ya que queremos contrastar que las observaciones se
ajustan a una U (0, 1).
Para el contraste bilateral planteado en (1.1), se utiliza el estadı́stico

Dn = sup{|Fb(x) − F0 (x)|},
x
10 CAPÍTULO 1. INTRODUCCIÓN A LA SIMULACIÓN

con F0 dada en (1.2). Se rechazará H0 a nivel α para valores grandes del estadı́stico, esto
es si
Dn > Dn,α ,
donde Dn,α se puede encontrar en las tablas correspondientes o utilizando cualquier soft-
ware estadı́stico. Este estadı́stico es de distribución libre, es decir que no depende de la
distribución de los datos bajo la hipótesis nula.

1.3.2. Contrastes de la Ji-Cuadrado


Este segundo procedimiento se puede aplicar cuando F0 es discreta o continua. El
contraste a plantear es idéntico al visto anteriormente y dado por (1.1).
Para comenzar se agruparán los datos en clases para, posteriormente, aplicar un con-
traste multinomial. El hecho de tener que agrupar los datos supone un inconveniente
porque el número de clases hay que definirlo a priori y supone una arbitrariedad en el
resultado.
Los pasos a seguir en este contraste son los siguientes:

PASO 1. Dividir el dominio de definición de la U (0, 1) en una partición con k clases. Esto es,
dividir el intervalo (0,1) en k subintervalos disjuntos {Aj } para j = 1, ..., k.

PASO 2. Contar el número de observaciones x1 , ..., xn que están en cada clase {Aj }. Denotar
por dicho número nj , son las frecuencias observadas.

PASO 3. Calcular las frecuencias esperadas de cada clase, npj , donde

pj = PF0 (Aj ) = longitud(Aj ).

PASO 4. Valorar el grado de diferencia entre las frecuencias observadas y esperadas y calcular
el estadı́stico del contraste como
k
X (nj − npj )2
V = .
j=1
npj

Existen resultados teóricos que demuestran que, bajo H0 , el estadı́stico V converge en


distribución a una variable χ2k−1 . En la práctica es importante señalar que, mediante
resultados empı́ricos, se ha observado que la aproximación es buena cuando npj ≥ 5,
j = 1, ..., k.
Como comentábamos, al ser un estadı́stico que depende de una partición en clases, es
importante acompañar el análisis con procedimientos gráficos que ayuden a la toma de
decisiones.
1.4. CONTRASTES DE ALEATORIEDAD E INDEPENDENCIA 11

1.4. Contrastes de aleatoriedad e independencia


Con estos contrastes se pretende detectar si existe algún tipo de patrón en la producción
de las observaciones. Como regla general se contrastará si la evolución del proceso puede
considerarse aleatoria y no predecible en función de lo anterior.
La hipótesis nula en este contexto se puede enunciar como:
H0 : Las observaciones no siguen ningún patrón.
H0 : Las observaciones son independientes.
H0 : Las observaciones son aleatorias.

1.4.1. Contraste de las rachas


Se pretende evaluar si, de alguna manera, los números pseudoaleatorios aparecen en
amplios bloques de valores grandes, pequeños o medianos, o si, por el contrario, hay
demasiada alternancia de valores.
( (n − 1) signos ⊕ y ⊖ de manera
Sea (x1 , ...xn ) una m.a.s. Definimos una sucesión con
⊕ si xi ≤ xi+1
que, para cada i = 1, ..., n − 1, asignamos el sı́mbolo
⊖ si xi > xi+1 .
Denotamos por n+ al número de signos positivos y por n− al número de signos
negativos. Sea R el número de rachas, es decir el número de cambios de signo, y sea
m = n+ + n− = n − 1.
Para muestras grandes (n+ , n− > 12) se tiene que el estadı́stico Z dado por
2n+ n−
R − (1 + m
)
Z=q
2n+ n− (2n+ n− −m)
m2 (m−1)

se distribuye, bajo H0 según una distribución N (0, 1). Es común aplicar la corrección por
continuidad y considerar el estadı́stico:
2n+ n−
R + 0,5 − (1 + m
)
Z= q (1.4)
2n+ n− (2n+ n− −m)
m2 (m−1)

Ejemplo 8 Dada la siguiente secuencia de números entre 0 y 1:

0.563 0.478 0.218 0.396 0.455 0.624 0.527 0.163 0.527 0.692
0.187 0.005 0.0382 0.923 0.147 0.811 0.531 0.545 0.450 0.839
0.999 0.536 0.926 0.373 0.986 0.810 0.067 0.471 0.824 0.825
0.809 0.603 0.397 0.197 0.811 0.620 0.671 0.867 0.02 0.635
0.429 0.274 0.264 0.217 0.446 0.049 0.945 0.132 0.238 0.082
Tabla 1.1: Secuencia de números entre 0 y 1
12 CAPÍTULO 1. INTRODUCCIÓN A LA SIMULACIÓN

se quiere contrastar la hipótesis de aleatoriedad.

Leyendo los datos por filas obtenemos una secuencia de n − 1 signos con n+ = 23,
n− = 26 y m = n − 1 = 49. El número de cambios de signo R = 30, con lo que el
estadı́stico resulta:
30 + 0,5 − (1 + 2·23·26
49
)
Z= q = 1,475856.
2·23·26(2·23·26−49)
492 (48)

Como n+ , n− > 12, podemos afirmar que la variable aleatoria Z dada en (1.4) se
distribuye según una distribución N (0, 1). Por tanto, calculamos el p-valor asociado a
nuestros datos como:
2P (N (0, 1) > 1,475856) = 0,1399827.
Ası́ pues, a un nivel de significación estándar α = 0,05, no se rechaza la hipótesis nula de
aleatoriedad.

También podría gustarte