La ley de Benford y la vida real (tm)

Lo prometido. Hoy me gustaría hablarles algo que no tenía idea que existía y que me encontré en el apéndice 9 del libro La Proporción Áurea de Mario Livio. Es de esos sorprendentes conceptos que destruyen la intuición. Por un lado es simple desde lo formal, pero esconde algo casi mágico. Dicho concepto es: La ley de Benford

Para los que no hicieron click en el link anterior y dado que la entrada en la Wikipedia en español sobre el tema deja bastante que desear (estoy corrigiéndola), acá está mi breve explicación:

La ley de Benford, también conocida como la ley del primer dígito, dice que, en los números que existen en la vida realTM, la primer cifra tiene muchas más posibilidades de ser 1 que otro valor. Además, según crece este primer dígito, más improbable es que se encuentre en la primera posición.

A por un ejemplo, que seguro es más fácil. Tomemos una tabla con estadísticas cualquiera, como ser el área o población de las provincias argentinas, la capacidad de los estadios del mundo, los muertos por accidentes de tránsito o las estadísticas de visitas en tu blog. Como todo en estadística, mientras más grande la muestra mejor, así que vayan a por tablas realmente grandes.

Intuitivamente, uno podría pensar que, para cualquier número, las posibilidades que empiece con 1 son las mismas que con 9. Es decir, al agarrar una pelota de números cualquiera de la vida realTM se podría llegar a creer que, si la cantidad es lo suficientemente grande, más o menos 1/9 de la muestra empezarán con 1 (nótese que no tiene sentido que los valores empiezen en 0, por lo que las opciones son 9). Esto es porque creemos que los números que estamos analizando se comportan como si fuesen aleatorios. Si tiramos una moneda al aire una gran cantidad de veces, cerca de la mitad de las oportunidades será seca. Es algo que aprendimos hace mucho y nos parece intutivo que la naturaleza se comporte así. Como si $deity hubiese tirado un dado gigante para decidir el largo de un río, la población de un país o el precio de las acciones en el MERVAL.

Como en mi disco todavía tengo los datos utlizados para el post la chica bajo la curva (dating pool) voy a utilizar la cantidad de casados, por provincia, por edad (puede descargarse desde acá). En mi caso son 30843 regitros. Esta linea de bash cuenta cuantos de los valores empienzan con cada cifra:

$ for i in $(cat provincia_indec.csv | grep años | cut -d ';' -f 4); do echo ${i:0:1}; done | sort | uniq -c
10350 1
5581 2
3550 3
2744 4
2159 5
1903 6
1815 7
1406 8
1335 9

Puede verse que el 33.56% de las cifras empiezan con 1 y que, mientras mayor es el valor del primer dígito, menor es la cantidad de ocurrencias.

En efecto, nuestro nuevo amigo Benford describe este fenómeno y nos dice que, la probabilidad p de que el dígito d aparezca en el primer lugar está dado por la siguiente fórmula:

En el ejemplo anterior, el dígito 1 se encuentra en 10350/30843=0.336 de los casos. Puede verse que la predicción de la fórmula es bastante buena, ya que log10(1+1)=0.301. En la siguiente figura puede verse como se ajusta la fórmula a los datos de la práctica (primer dígito de la cantidad de personas casadas por provincia, por edad según el censo 2001):

De hecho, la misma fórmula puede aplicarse a más de un dígito. Por ejemplo, la probabilidad de que una cifra empiece con 42 (primer dígito 4, segundo 2) es log10(1+1/42)=0.010219. Modificando levemente el script (${i:0:2}) podemos estudiar la cantidad de cifras por la repetición de sus primeros dos números y compararlos con su valor teórico:

Impresionante.. no?

¿Y porqué pasa esto? Ocurre que a las magnitudes del mundo realTM están distribuidas de forma logarítmica.

Recordemos la fórmula: p(d)=log10(1+1/d)=log10(d + 1) − log10(d)
Es decir, cuenta cuántos números hay entre d y d+1 dentro de la escala logarítmica.

La mejor explicación que recibí para este fenómeno habla de un cambio de escala. Supongamos por un momento que la distribución de los primeros dígitos de lo largo de los ríos, lo alto de las montañas, lo profundo de los posos es constante. Ahora imaginemos que $deity se levanta una mañana y duplica el tamaño del planeta (o del universo, ustedes elijen). Las medidas que empezaban por 1 hora pasan a empezar por 2 o 3 (160*2=320). Lo que empezaba por 2 ahora lo hace por 4 o por 5 (290*2=580). El 3 se va a 6 o 7 (384*2=768). El 4 a 8 y 9.

¡Pero todos aquellas medidas que empezaban por 5, 6, 7, 8 y 9 ahora empiezan por 1! Si realizamos esta operación varias veces los valores se amontonan rápidamente en los iniciados por 1, generando la escala logarítmica en cuestión. Y acá está el tema. La mayoría de los valores de la vida realTM son resultados de multiplicaciones.

El siguiente gráfico invita a comparar las superficies rojas (valores que inician con 1) y azules (valores que inician con 8) para estudiar sus probabilidades de ocurrencia en el primer dígito:

Las distribuciones que cubren muchos órdenes de magnitud (que varían mucho entre número y número) cumplen relativamente bien con la ley de Benford. Sin embargo puede no ocurrir así siempre:

Nótese que la clave está en las grandes magnitudes (recuerden la explicación del universo que se duplica). Existen tablas de números de la vida realTM que no cumplen la ley dada que estan acotadas en cuento a su rango, por ejemplo los datos del cierre del MERVAL de los últimos 3 años. Si bien son números grandes, su máximo y mínimo es acotado. Imagino (no tengo uno a mano) que los precios unitarios de los productos en un ticket de supermercado tampoco se agustan a la ley por razones parecidas. La tabla de goleadores de un torneo de fútbol padece el mismo trauma. ¿Se les ocurre algún otro ejemplo excepcional a la regla?

Espero hayan aprendido algo nuevo y ahora quieran a la matemática un poquito más :)

PD: Me olvidaba. Tarea para el hogar: Demostrar que la vida realTM incluye a Fibonacci ;)

9 thoughts on “La ley de Benford y la vida real (tm)”

  1. A modo de comentario. ¿Sabías que la ley de Benford se utiliza en la detección de fraude? Cuando uno inventa cifras, muchas veces lo hace por afuera de la distribución logarítmica, por lo que puede ser detectado simplemente graficando la cantidad de primeros dígitos.
    Así que la próximas vez que pases gastos de más a tu empleador, asegúrese de hacerlo sin cambiar el este patrón :P

    Algunos links por si alguien se quedó con ganas de más:
    * video introductoria al tema: http://videos.kirix.com/data-and-the-web/2008-07-22-benfords-law/2008-07-22-benfords-law.htm (advertencia, viene con publicidad explicita)
    * demostración de que las multiplicaciones se van al 1: http://blogs.msdn.com/ericlippert/archive/2005/01/12/benford-s-law.aspx
    * linda explicación sobre el porqué de la escala logarítmica: http://www.mathpages.com/home/kmath302/kmath302.htm (advertencia, tiene bastante matemática)
    * un artículo sobre detección de fraude aplicando la técnica: http://www.journalofaccountancy.com/Issues/1999/May/nigrini.htm

  2. Realmente sí me había quedado una astilla en el cerebro al leer sobre el tema en tu anterior post y encontrar una pobe y desilusionadora explicación del por qué en la wikipedia..

    Dado que no estoy muy en tema voy arriesgarme a preguntar esto, tiene algún tipo de conexión con el mundo de los juegos de "azar" ?

    Gracias por compartir este post! No se si quiero más a la mate, pero ahora veo al siempre intrigante logaritmo (en particular al de base 10, el uso en la formula se debe al sistema decimal? ) con los ojos más cerrados y cara de misterio.. ;)

    btw, la fórmula es empírica o hay por ahí una deducción dando vueltas en algún cuaderno perdido de Benford?

    Saludos!

  3. Hay varios puntos acá y no todos estoy en condiciones de contestarlos con exactitud. Tené en cuenta que aprendí sobre este fenómeno el último fin de semana :) Contesto un comentario por pregunta... así no se hacen eternos.

    1) ¿tiene algún tipo de conexión con el mundo de los juegos de “azar” ?
    Posiblemente tu pregunta va orientada a si esto puede ayudarte en juegos de azar. La respuestas es: *no*. El azar se distribuye de forma uniforme. Al menos el azar bien producido.

    Obviamente, si una ruleta tiene hasta el 36 (más el 0 y el 00) las 38 opciones tiene las mismas posibilidades de salir (1/38) si está perfectamente balanceada y todo eso:

    $ for i in $(seq 36; echo 0; echo 00); do echo ${i:0:1}; done | sort | uniq -c | while read line ; do echo -n "$(echo $line | cut -f 2 -d ' ') --- > "; echo -n $(echo $line | cut -f 1 -d ' '); echo '/38' ; done
    0 --- > 2/38
    1 --- > 11/38
    2 --- > 11/38
    3 --- > 8/38
    4 --- > 1/38
    5 --- > 1/38
    6 --- > 1/38
    7 --- > 1/38
    8 --- > 1/38
    9 --- > 1/38

    Es claro que el 1 y el 2, seguido por 3 y 0, tiene más posibilidades que el resto de los números. Pero no hay lugar en la mesa para apostar a 'primer dígito'.

    Si uno toma valores 10,000 valores al azar entre 1 y 99, este es el análisis del primer dígito (advertencia, el script puede tardar un rato):
    $ for j in $(seq 10000); do i=$(python -c "import random; print random.randint(1,99)"); echo ${i:0:1}; done | sort | uniq -c
    1098 1
    1132 2
    1124 3
    1081 4
    1111 5
    1111 6
    1098 7
    1141 8
    1104 9
    Es, como ves, muy parejo. Tan parejo como si los hubiese agarrado secuencialmente (lo siguiente es algo obvio, pero hay veces que esta bueno evidenciarlo):
    $ for j in $(seq 10000); do i=$j; echo ${i:0:1}; done | sort | uniq -c
    1112 1
    1111 2
    1111 3
    1111 4
    1111 5
    1111 6
    1111 7
    1111 8
    1111 9

    Como conclusión, el azar no es parte de la vida real(tm) :-)

  4. 2) ¿El logaritmo en base 10 es porque estamos en el sistema decimal?
    Si. Excelente sospecha la tuya.

    De hecho, la fórmula genérica para la probabilidad P de que el dígito d sea el primero en un sistema numérico en base b es:

    P(d) = ln (1+1/d) / ln (b) = log(base b) (1+1/d)

    Nicolás dejó un comentario acá con la misma consulta, donde podrás encontrar donde hay más información sobre la ley en diferentes bases y un nuevo desafío :P

  5. 3) ¿la fórmula es empírica o hay por ahí una deducción dando vueltas en algún cuaderno perdido de Benford?

    No es empírica. Es fácilmente calculable si se establece que la distribución tiene escala logarítmica. Supongo que la pregunta va por el lado de si se puede probar matemáticamente que la escala es logarítmica. La respuesta es sí. Pero estoy tratando de encontrar una forma fácil de explicarlo (y de entenderlo). Posiblemente termine por escribirlo en la es.wikipedia (en cuanto tenga otra tarde libre). Si no podés esperar, te recomiendo la lectura del capitulo 34 del libro The Scientist and Engineer's Guide to Digital Signal Processing de Steven W. Smith, la sección Writing Benford's Law as a Convolution. Se puede descargar gratuitamente desde acá:
    http://www.dspguide.com/CH34.PDF

  6. Llego a tu blog con la inocencia del chaval que se cambia de Ubuntu a Debian y busca planeta debian en google. Y por lo que he leído (me he saltado el on-tour), es interesantísimo. Sobre todo este último post. Como dice un comentario por arriba es inspirador.

    Mis más sinceras felicitaciones. A partir de ahora te sigo (que ya soy debianita :)

  7. mepa que estas fumando de la buena, la que pega !!

    o de tanto matematica de estas voviendo loco.

    Cual de todos sera tu Saliere?

Comments are closed.