Acabé el post anterior diciendo que hay un modelo que describe muy bien las estadísticas del blog. A la vista de la gráfica de visitas frente a antigüedad esto parece difícil: ¿cómo reproducir esa nube de puntos tan irregular?
La clave está en simplificar nuestro enfoque y olvidarnos de la variable tiempo, es decir, del eje horizontal. Lo único que quedan entonces son puntos agrupados más o menos densamente a distintas alturas del eje vertical. Y lo que vamos a estudiar es esa densidad, es decir, la distribución estadística de la variable “número de visitas”.
Antes de poner los datos, es instructivo pensar en lo que debería salir. Parece razonable que hubiera un número típico de visitas y que fueran raros los puntos con mucha más o con muchas menos.
Esto ocurre en infinidad de situaciones: la magnitud tiene una escala característica y cuanto más nos alejamos de ella, más difícil es encontrar casos. Por ejemplo, la altura media de un grupo de personas puede ser 1,65. Entonces habrá menos gente que mida 1,50 o 1,80, menos aún que mida 1,35 o 1,90, etc. En un histograma, esto da el clásico perfil en forma de campana que todo el mundo conoce.
Bien, pues aquí está el histograma del número de visitas (hemos hecho “cajas” de 50: la primera barra es el número de posts que tienen entre 0 y 50 visitas, etc; he cortado la gráfica en 1800 porque aunque hay valores mayores son muy escasos):
La mayoría de los posts tienen pocas visitas, y tener más y más visitas es más y más improbable. No hay un máximo central: no hay escala característica. Esto es sorprendente y aparentemente muy poco “físico”. De hecho, los primeros ejemplos de este tipo de distribución que se encontraron parecían más bien folklóricos: la famosa ley de Zipf, por ejemplo, que se refiere a la distribución de palabras en un texto. La analogía es: palabras = posts, veces que aparece una palabra = visitas a un post. La mayoría de las palabras aparecen muy raras veces, y hay muy pocas palabras que sean muy frecuentes.
Sin embargo, cada vez se han encontrado más variables con este comportamiento: parece que el número de citas de los papers, la energía de los terremotos, la riqueza de las personas, la población de las ciudades, y hasta la intensidad de las guerras se distribuyen de manera análoga a las visitas al blog…
Todas estas distribuciones se describen bien matemáticamente por lo que se llama una ley de potencias: la altura de la barra del histograma centrada en x es:
siendo y
constantes. Hablé de las leyes de potencias en relación a los apellidos, así que me puedo ahorrar alguna explicación.
¿Podemos describir nuestra distribución de visitas por una ley de potencias? Podríamos tantear con y
para ajustar el histograma, pero resulta que hay un método mucho mejor (lo explican en este review). Basta representar en una gráfica de ejes logarítmicos el «rango» de cada post (la posición en el ranking) frente a su «frecuencia» (el número de visitas). Si hay una ley de potencias, tiene que salir una recta, y exponente
se obtiene sumando 1 a la pendiente (en valor absoluto) de esa recta. He aquí lo que sale para las visitas a este blog:
(no hay que preocuparse por la cola de frecuencias bajas, que nunca se ajusta bien). De la línea roja sacamos un valor de .
Naturalmente esto no lo he descubierto yo: está en la bibliografía. En 1999, Barabasi y Albert publicaron en Science Emergence of Scaling in Random Networks, un trabajo en el que encontraban una ley de potencias para el número de enlaces de las páginas web. En 2000, Adamic y Huberman habían encontrado ese resultado también para el número de visitas. Y parece que el gurú Jakob Nielsen ya lo dijo en 1996.
En fin: así es la vida. Casi todo está descubierto. Por eso hay que mirar la bibliografía…
* * *
Un par de cosas a modo de epílogo:
- No todo lo que parece una ley de potencias lo es (por ejemplo: parece que la tantas veces citada distribución de la riqueza no sigue una ley de potencias). Los interesados pueden encontrar un poco de escepticismo en esta referencia (para expertos).
- Con lo contado hasta aquí sólo tenemos una descripción de los datos, pero no un modelo que explique por qué sale una ley de potencias. Y, más aún, por qué sale en situaciones tan variadas. Tendría que explicarlo, pero esto ya es muy largo. A lo mejor otro día me animo a hacerlo.
Ejem. En el primer post te planteabas una pregunta (relación tiempo – número de visitas) y en el segundo respondes a otra pregunta (distribución de frecuencias del número de visitas). Ejem, ejem.
Ya sabía yo que me ibas a criticar… 🙂
Lo que saco en claro del 1er post es que –ya lo dije- hay dos variabilidades, y sólo consigo, en el mejor de los casos, explicar una, la tendencia al alza del promedio con la antigüedad. La otra variabilidad es el “ruido” que hace que tengamos una nube, y es mucho mayor.
Lo que hay que hacer a continuación es ocuparse de esa variabilidad y es lo que hago en este segundo post. Aquí la dependencia con el tiempo no es esencial y para simplificar las cosas la ignoro: desaparece el eje del tiempo, como cuento en el post, y sólo tengo que estudiar la distribución de las frecuencias (para más adelante quedaría explicar la variación en el tiempo de esa distribución).
El tratamiento que hago es incompleto, porque sólo doy una descripción, no un modelo que explique de dónde sale esa distribución .
Hay varios modelos que dan una distribución de frecuencias en ley de potencias, pero ahora no tengo tiempo de meterme en ello (y me temo que sería demasiado matemático para este blog). Se trata de procesos en los que los posts con más visitas tienden, por eso mismo, a tener más visitas (en inglés: rich-get-richer, o efecto Mateo, que por cierto creo que tiene su importancia en psicología social…). Matemáticamente el modelo que parece más claro es lo que se llama un proceso de Yule…
Este tipo de modelos posiblemente permitirían explicar la variación en el tiempo de la distribución y ya tendríamos una síntesis entre el enfoque del 1er post y el del 2º… pero esto son palabras mayores: tendría que dejar lo que estoy haciendo para meterme en ese campo, y sólo era una curiosidad.
uf, los modelitos esos… Había uno, de crecimiento de grafos, donde la ley de potencias aparecía sólo por la mera antiguedad de cada nodo: cada vez que aparecía un nodo nuevo nodo se conectaba -random- a la red ya existente (era el límite cuando r tendía a cero del modelo de Krapivsky-Redner). Ok, en realidad no sirve para este problema: los nodos serían simultáneamente los posts y las visitas, pero (de?)muestra que la antiguedad da la visibilidad suficiente como para generar una ley de potencias.
Entrada muy interesante (he leído el no.1 justo antes). En relación a «Podríamos tantear C y alfa…» yo usuaría mínimos cuadrados (regresión lineal), me parece más propio de un físico.
jajajaja! no me puedo resistir: JAMAS cuadrados mínimos para fitear una power law!
Efectivamente, resulta que ajustar por mínimos cuadrados da aquí un error sistemático, en el review que cito lo explican. Yo mismo lo he comprobado aquí, por mínimos cuadrados me salía
, con el método correcto que explican en el review, sale
.
De todos modos, cuando aquí decía «tantear», me refería a que primero uno prueba a ojo y luego ya hay que usar algún metodo más serio…
Gracias por los comentarios.
Tras tomar logaritmos y precauciones (cámbiese la variable tras cada empleo) hasta los mínimos cuadrados mínimos (es el m.c.m. de las formas española y americana de decir least squares) se adaptan a las leyes del poder, esto es, a las leyes en potencias.
no, javier, no se adaptan. Cuando trabajás con grafos scale free (o con datos como éstos, donde el rango varía a través de distintas escalas, digamos que van de 1 a n con n grande), la matriz de cuadrados mínimos resulta muy mal condicionada, del orden de ln^4 (n), y la cosa empeora cuando se eliminan los primeros datos.
Juan Pablo, OK, te leo y te creo. No estoy ducho en regresión. Pero me permitirás apostillar que un condicionamiento de ln^4(n) es una nada de la nada: el gradiente conjugado se traga eso en un pispás. En cambio, n^2 y n^3 empiezan a ser pesaditos, mientras que exp(n) es un reto.
mmm… recuerdo que hicimos algunos experimentos: a partir un muestreo de una ley de potencias (exacta), reconstruíamos el exponente… con errores de un 30%. La cosa empeoraba mal si el rango de valores no iba de 1 a n (se multiplicaba por 10 para el intervalo [n/10, n], por ejemplo). No llegamos a escribir el paper, nos ganaron de mano: cond-mat/0402322 y cond-mat/0401065…
En realidad, el ln^4(n) es una cota inferior de la condición (puede ser mayor!), y a lo bestia, el número importante es log_10(ln^4(n)), que da una idea del numero de cifras significativas que se pierden. Ya con n=10^5 el error es enorme.
Juan Pablo: Álgebra lineal numérica… ¡me encanta! La pérdida de cifras depende de cómo resuelvas el sistema. Obviamente, el ruido en los datos se amplifica en la solución, pero con esos condicionamientos de los que me hablas no debería ser para tanto. La gente que hace regularización de problemas mal puestos maneja condicionamientos mucho peores y les saca unos resultados espectaculares. (También te digo que estas conversaciones de bar tienen un rango amplio de imprecisión por estar el problema definido de una forma un poco vaga: quiero decir que entiendo sólo aproximadamente lo que me dices que hacíais. Estamos derivando en todo caso. Volvamos al pez)
Cuando habéis usado mínimos cuadados, ¿habéis ortogonalizado? La matriz resultante es diagonal, sí mal condicionada, pero un re-escalado diagonal la convierte en la identidad. ¿Será el problema tan malo que habrá que re-ortogonalizar? Obviamente no: son sólo dos parámetros a estimar.
He leido el paper de Newman para ver qué problema tiene m.c.m. El problema se ve claramente en la Fig. 3(b), la cola de la distribución para x grande. Si utiliza m.c.m. el método «se pierde» debido a que quiere capturar esta «cola». ¿Cómo podemos evitar la «cola»? Pues quitándola. El método «correcto» del autor (Eq. (5)) consiste en elegir un xmin (y hay que «tantear» a ojo, ¡¡ es el menor x para el que se cumple la ley de la potencia !!) y quitar la cola. Pero, esto mismo lo puedes hacer con mínimos cuadrados. El resultado casi con toda seguridad será el mismo (de hecho, la estimación de máxima verosimilitud del apéndice B, que queda «muy bonita» en el paper, aporta poco más allá de dar una solución explícita al m.c.m.).
En resumen, el problema no es el condicionamiento de la matriz (de 2×2), algo fácil de «manejar» por prácticamente cualquier método numérico. Para perder 4 dígitos, tu muestras sólo 3 de alfa, el NC deberá ser del orden de 10^12; pero por ejemplo, ln^4(n) = 10^10 =NC, requiere n=2E+137, ¿algún día tendrás tantas entradas? ¿en qué Universo?
Javier, para ver el tipo de cosas que hacíamos, puedes ver los dos papers del arxiv que cito. Lo bueno de estas cosas es que son ‘reproducibles’, un poco de matlab u otro programa, y adelante! Hay otro experimento que se puede hacer, tomar una ley de potencias Kx^a, calcular Kn^a con n de 1 a 10^5, y redondear a un entero (el K es para que no nos den cero todos los datos). Y ahora, a calcular cuánto valen a y K a partir de esos datos. Ojo: cuadrados mínimos sin nada extra, escala logarítmica y a otra cosa, que si nos buscamos algún método de regularización la cosa mejora, ya con sólo hacer log-binning el condicionamiento ya baja a ln^2(n). El punto es que en la literatura física, los que suelen calcular estos exponentes no utilizan estos métodos.
emulenews, estás confundiendo lo que dicen pseudopodo (él muestra un alfa), newman (la ecuación 5 y el apéndice), y yo (el condicionamiento). El ruido que mete seleccionar el X_min es otro problema, al cual es muy sensible también el m.c.m. Por otra parte, máxima verosimilitud es un método distinto para estimar los parámetros. Y, por último, estoy criticando la condición para hacer el m.c.m. ‘a lo bestia’, resolviendo el sistema multiplicando por la transpuesta después de pasar a un log-log sin muchos lujos.
Tu comentario merecería una respuesta más detallada, por ejemplo, que:
1) los métodos de orotgonalización son mejores cuando el error residual es chico (de lo contrario depende del cuadrado de la condición de la matriz del sistema original);
2) el procedimiento por el cual aparece la power law no es determinístico, con lo cual HAY errores y no tenés mucha idea de cuáles son (sin contar el redondeo, que por algún accidente inexplicable, en las distribuciones de nodos y links las mediciones dan siempre números enteros… eso limita mucho más de lo que te imaginás)
3) hay errores en el muestreo de una red (no tanto acá, que pseudópodo tiene el número ‘exacto’ de posts, pero no es exacto el de visitas).
4) una matriz sea de 2×2, no es motivo para descartar el mal condicionamiento, cualquier libro elemental ta va mostrar ejemplos.
5) no conozco referencias en el tema de grafos y redes donde algún físico mencione los métodos de Householder, o la regularización de Tikhonov en relación a este problema.
6) los resultados teóricos de power-law valen (en este universo) para redes que se van a infinito. En redes finitas «chicas» las fluctuaciones y otros fenómenos afectan muy mal las cosas.
Interesantes comentarios. Trataré de estudiar este tema con más detalle. Me parece muy interesante. Sólo un detalle final, por mi parte, cierto es que una matrix 2×2 puede ser mal condicionada, pero tan cierto es que en dicho caso siempre se puede evitar el mal condicionamiento, con técnicas de pre- o post-condicionamiento (viene en todos los libros de análisis numérico). A veces, basta ver la matriz para saber cómo evitarlo. Por supuesto, es imposible en una matriz nxn arbitaria. En resumen, me gusta aprender y este post me va hacer aprender, gracias.
es un hermoso tema, emulenews, algunas referencias clasicas están en los viejos Numerische Mathematik, sobre todo los papers de Golub, por ej. 23 3 1974 Sluis; 22 4 1974 Jennings-Osborne; 15 5 1975 Golub; 9 2 1966 Golub; 7 3 1965 Golub; 7 3 1965 Businger-Golub. En la década del ’80 aparecieron toda clase de métodos, pero le usurparía el blog a pseudópodo si me pongo a linkearlos (o meto otras revistas: Math Comp, las del SIAM,…) Uno reciente de donde rastrear info es: http://www.ams.org/mcom/2007-76-258/S0025-5718-06-01913-2/home.html
Mira, te citaron:
http://www.orbitando.com/twitter/
Pingback: II Carnaval de Matemáticas: La naturaleza prefractal de la Naturaleza « Francis (th)E mule Science's News
Hola, me parece interesante la explicación; sin embargo hay algo que no entiendo: en la figura 2 donde comentas «(no hay que preocuparse por la cola de frecuencias bajas, que nunca se ajusta bien). De la línea roja sacamos un valor de \alpha = 2.41.» por que desprecias la primera parte de los datos?, por que no ajustar sobre esa parte de los datos en lugar de la segunda parte?