miércoles, 13 de febrero de 2013

Técnicas Montecarlo (25428)

La estadística es una rama de las matemáticas, evidentemente, que están consideradas como las ciencias puras
 o exactas, en contraposición de las ciencias empíricas. 
También es una de las materias que más suele costar comprender, sobre todo en la educación secundaria. 
¿Pero realmente está clara esa diferencia entre ciencias puras y ciencias empíricas? 
Las ciencias empíricas, como la física, basan su conocimiento en los experimentos, si una teoría parece lógica pero no se ve refrendada experimentalmente toca buscarse otra. ¿Y en las matemáticas y la estadística?
 ¿No se pueden hacer experimentos? 
A día de hoy sí que se puede, y esto viene muy bien a la hora de comprender los conceptos, especialmente en las ramas de estadística y probabilidad
. La diferencia es que al ser la matemática una ciencia exacta, siempre se cumple lo que predice, pero igualmente estos experimentos son útiles, porque nos permiten calcular cosas que no sabríamos de otra manera. 
Vamos a verlo primero con un ejemplo muy típico. 

PROBLEMA: ¿QUÉ PROBABILIDAD HAY SI TIRO DOS DADOS DE SEIS CARAS DE OBTENER UNA SUMA ENTRE LOS DOS DE 5?Este es un problema muy típico de probabilidad. ¿Saben resolverlo?

 Bueno, la cuestión es que para resolverlo, al menos aproximadamente, no hace falta saber nada de probabilidad, ni de estadística. Sólo hay que saber sumar y dividir. ¿Adivinan cómo? Es muy sencillo.
 Podemos simplemente agarrar dos dados, tirarlos N veces y sumar las veces que os ha salido 5, luego la dividís entre el número total de lanzamientos y ya lo tenemos. 
La pregunta ahora es, ¿es eso una buena aproximación?
 Pues dependerá de cuántas veces lo hagan.
 Háganlo 10 veces y tendrán una aproximación bastante mala, ahora, lanzándolo un millón de veces y se acercarán mucho al resultado correcto. 
La cuestión entonces es cómo lanzar un millón de veces los dados sin desesperarse. Por suerte, hoy en día tenemos una herramienta genial para eso, los ordenadores. Con un programa extremadamente simple podemos pedirle que saque números aleatorios, del uno al 6, y que por cada par nos compruebe si sale o no igual a 5. Vamos calculando la probabilidad cada vez y a medida que lo hagamos muchas veces, se nos irá aproximando al resultado.
Alguien escéptico podría preguntar:

 ¿Y no dependerá del azar el resultado?
 Pues, evidentemente sí, pero sólo al principio.
 Una lección muy importante que se puede tomar de este experimento es el hecho de que la estadística
 no te puede decir que pasará si lanzas el dado 10 veces,
 pero si lo lanzas un millón es bastante predecible el resultado.

Para comprobarlo hemos hecho el experimento. 

En la siguiente gráfica se puede ver cómo va evolucionando la probabilidad con el número de tiradas, para tres experimentos diferentes. 
Se aprecia claramente que al principio los resultados son muy distintos, como es de esperar, pero poco a poco van las tres tiradas yendo al mismo sitio (convergiendo, en jerga matemática). 
Y en este ejemplo sólo llegamos a 1000 tiradas, si se hacen un millón, por ejemplo, se obtiene un resultado bastante cercano al teórico.

Esto es algo que puede parecer trivial, pero que es un resultado básico de la estadística, y de la ciencia en sí, 

si una experiencia se repite poco, da poca información, si se repite mucho da una información muy fiable.
 Es extensible a muchas cuestiones como las encuestas o los estudios médicos, si tienen una muestra pequeña, son poco de fiar, si tienen una muy grande ya sabéis.


Si alguien tiene aún dudas de que todos los experimentos convergerán al mismo resultado, puede probar. 

NÚMEROS ALEATORIOS Y PSEUDOALEATORIOS


Pero pasemos a cosas más fundamentales también. 

¿Cómo es eso de generar números aleatorios con el ordenador? 
Tiene este un dado interno que usar. Es evidente que no, un ordenador sólo puede hacer operaciones matemáticas y lógicas definidas, con un resultado claro. 
Sin embargo, a veces no necesitamos números realmente aleatorios, y nos conformamos con los llamados números pseudoaleatorios. La idea es sencilla, el usuario da un número inicial, que se suele denominar "semilla", y a partir de ahí el ordenador genera una cadena de bits (unos y ceros), luego empieza a cortar esa cadena en pedazos y a combinarlos. 
¿El resultado? Una nueva cadena de bits, conde los 0 y los 1 están repartidos uniformemente. 
A partir de esa cadena podemos hacer muchas cosas, como generar un número pseudoaleatorio entre 
0 y 1, o uno entero, como hicimos en el experimento del dado
.Aunque los números no sean aleatorios en sí, mientras estén bien distribuidos uniformemente servirán para la mayoría de los problemas. 
Antiguamente se usaban otros métodos realmente más aleatorios, pero menos prácticos como generar enormes tablas con dados o monedas, usar las fluctuaciones de la corriente eléctrica o las desintegraciones de una muestra radiactiva. Todos estos métodos tenían algo en común, eran bastante lentos.

Sólo recientemente la cosa está cambiando.

Como se ha descubierto que los sistemas cuánticos son realmente aleatorios se han creado generadores cuánticos aleatorios.
 La idea es sencilla, como un sistema cuántico puede estar en dos estados (efecto llamado coherencia),
 y es puramente aleatorio el resultado que obtendremos al medirlo, podemos usar esto para obtener números que también serán puramente aleatorios. Realmente son rápidos, aunque para la mayoría de los propósitos no son necesarios y con los que genera un ordenador normal nos apañamos.


Esquema de un generador de números aleatorio cuántico.

APLICACIONES DE LAS TÉCNICAS

El ordenador sin duda ha revolucionado nuestro mundo, pero ¿y las matemáticas?
 No cabe duda de que también. 
En concreto, las técnicas Montecarlo tienen infinidad de aplicaciones, por lo que hay muchos grupos de investigación dedicados íntegramente a desarrollarlas y aplicarlas. 
En física, economía, biología, medicina, en casi todos los campos de la ciencia pueden ser muy útiles,
 incluyendo las matemáticas, claro está. 
Vamos a ver un ejemplo físico, el movimiento browniano.
 Este fue uno de los problemas que resolvió Einstein en su annus mirabilis, en 1905. 
Este problema parte de una observación, como suele ocurrir en la ciencia empírica. 
El hecho en cuestión a explicar es el movimiento de partículas microscópicas en un líquido, que descubrió 
Robert Brown. Este movimiento no parece tener causa y parece, sobre todo, aleatorio.
 Como ya he dicho fue Einstein el que describió matemáticamente el problema, pero nosotros no necesitamos llegar a ese punto, ya que podemos simularlo con el ordenador.
 Pero antes, como siempre, hay que definir el problema.
 Por simplicidad nos vamos a limitar a una partícula que se mueve sólo en una dirección,
 lo que habitualmente se conoce como un caminante aleatorio

Problema: Si tenemos una partícula que se mueve en una retícula, y que puede solamente moverse a derecha o izquierda con la misma probabilidad. 
Solo dejamos moverse N veces, ¿con qué probabilidad lo encontraremos en un sitio u otro? 

Imagino que no es inmediata la respuesta, realmente hay que pensarlo, pero hacerlo con el ordenador en sencillo. Básicamente, podemos definir las probabilidades, hacer una simulación muchas veces, y contar cuantas veces encontramos la partícula en cada sitio.
 Pero empecemos por el principio, hagámoslo un par de veces. 
Tenemos, entonces una partícula que está en la posición cero. 
Sorteamos un número aleatorio, que sea 0 ó 1, si es 0 la movemos a la izquierda, si es 1 a la derecha.
 Si los dejamos evolucionar un tiempo, digamos 100 veces, obtendremos distintas trayectorias 
como las siguientes. 


Se puede ver que es bastante aleatorio, y que después de 100 tiradas cada caso es distinto.
 Ahora podemos empezar con la pregunta, ¿se puede saber con qué probabilidad estará la partícula en cada sitio? Es evidente que sí, en vez de 5 trayectorias hagamos un millón, y contemos donde termina en cada caso. 
Después podemos representar la probabilidad que calculemos en lo que se denomina un histograma. 


Varias conclusiones podemos sacar de aquí. 
Primero, las barras del histograma son discontinuas. 
Eso significa que hay sitios donde nunca lo encontraremos, ¿Se imaginan dónde? 
Es sencillo, si empezamos en cero, y nos movemos un número par de veces (100 en este caso), 
nunca terminaremos en un número impar. Por otro lado está claro que la probabilidad es más alta en el origen que muy lejos de él.
 ¿Y nos podemos creer este histograma?
 Al fin y al cabo se ha calculado con un proceso que era aleatorio, 
¿y si ha ido justo a donde es menos improbable?
 Bueno, aquí se aplica lo que hemos dicho antes, las cosas improbables pasan, pero pasan poco, este histograma se ha realizado con un millón de caminantes y sí, es muy fiable.
Por último mencionar que el modelo del caminante aleatorio, a pesar de ser bastante simple, tiene muchas aplicaciones en física, biología o economía. Incluso en la ciencia ficción hace su aparición. 

En el relato Azar, del libro Spintrónica, la protagonista teme que le estén leyendo el cerebro, por lo que decide optar por el azar para evitar ser perseguida.
 Con una simple moneda se convierte ella misma en una caminante aleatoria en dos dimensiones,
 dejando al azar decidir en cada momento que dirección tomar, y esquivando así a sus perseguidores. 
El único problema de ese método es que te deja con mayor probabilidad cerca del punto de inicio, como refleja el histograma, por lo que a largo plazo te pueden terminar descubriendo, si saben de probabilidad, claro.

En el siguiente gráfico se ven distintas trayectorias que se generarían con este método.