lunes, 28 de enero de 2013

Técnicas Montecarlo, la estadística empírica

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. ¿Sabéis 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. ¿Adivináis cómo? Es muy sencillo. Podéis simplemente coger 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 tenéis. La pregunta ahora es, ¿es eso una buena aproximación? Pues dependerá de cuántas veces lo hagáis. Hacedlo 10 veces y tendréis una aproximación bastante mala, ahora, lanzadlo un millón de veces y os acercaréis 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. Al final del post hay una aplicación con la que testear un problema más complejo.


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.
Fuente: http://www.sciencedaily.com/releases/2010/04/100414134542.htm


Aplicaciones de las técnicas Montecarlo

El ordenador sin duda ha revolucionado nuestro mundo, pero ¿y las mátemá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. So lo 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, ¿os imagináis 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. ¡Os animamos a hacer la prueba!

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.





Ejemplo Interactivo

¿Alguna vez has escuchado a alguien decir "Lleva años sin tocar ningún premio aquí, este año toca seguro" o "Llevaba 15 partidos sin perder, el hecho que haya perdido el último indica que se está desinflando"?

Seguro que sí, este es un error muy común que comete algunas personas. El porqué lo comete tal vez se deba a una deficiencia en el aprendizaje de la estadística y la probabilidad. Explicar estas materias no es tarea fácil, entre otros motivos porque resulta muy difícil realizar experiencias para que un alumno desarrolle una intuición en el tema. La probabilida es la razón con la que ocurre un caso concreto de un evento cuando se tienen muchos,muchos, pero que muchos eventos. Y en clase no hay tiempo para probar con tantos eventos. Hasta que se inventaron los ordenadores, estas herramientas nos permiten programas aplicaciones que nos muestren muchos, mucho eventos.

Para eso se ha creado la siguiente aplicación. Imagina que estás lanzando una moneda y estás intentando acertar si va a salir cara o cruz. En una de estos lanzamientos empieza a salir cara, cara,cara,cara ... ¿Que crées que saldrá en el próximo lanzamiento?

La aplicación te muestra una serie de lanzamientos (dandole al botón lanzar), tu puedes indicarle cuantos, en los que ha salido lo mismo. Tu eliges lo que crees que va a salir en el último lanzamiento que está oculto. Para ver la respuesta pulsa desvelar.



El código de esta aplicación lo podéis descargar aquí.

Este post se ha hecho entre Álex Bueno (@Phoenix_alx) y un servidor (@spidermanzano). El mismo post, pero con otra aplicación interactiva se puede encontrar en tprc.


4 comentarios:

  1. Muy chula la explicación. Eso sí, yo hubiera mencionado ya de paso al Teorema Central del Límite, que es el que en última instancia asegura que el resultado "experimental" tienda inexorablemente al resultado "real" cuando aumenta el número de tiradas.

    ResponderEliminar
    Respuestas
    1. Pues mira, esa sería una buena aplicació que se merece un post propio y todo.

      Gracias.

      Eliminar
    2. El teorema central de límite te asegura el resultado experimental siempre que lo que simules sean parámetros que siguen distribuciones con media y varianza definidas.

      Cosas como http://es.wikipedia.org/wiki/Vuelo_de_L%C3%A9vy puedes usar montecarlo para simularlas y ahí no puedes aplicar el teorema del límite central.

      Eliminar
    3. Excelente explicacion, me sirvió para entender el caminante aleatorio, muchas gracias.

      Eliminar

Agradecemos mucho tu opinión, pero comentarios difamatorios, insultantes o con ánimo de ofender o trollear serán eliminados.