Lo que le mostré en la unidad anterior fue una manera de rescatar los modelos de máxima entropía para describir la abundancia de lenguajes P(n) en función de una variable escondida, epsilon, que llamamos "tiempo del programador" y asumimos que el sistema estaba restringido de dos formas: Estaba restringido no solo a tener un cierto numero promedio de proyectos por lenguaje, también fijamos la popularidad promedio de los lenguajes, pero también fijamos el promedio del tiempo del programador dedicado a los proyectos en un lenguaje en particular. Entonces esta distribución, aquí, se ve así, en su forma funcional, y cuando integramos en esta variable, epsilon, obtenemos algo que se ve como esto. Así que obtenemos una predicción diferente para le distribución de los lenguajes. Obtenemos una predicción que, digo yo, se ve razonablemente bien. Ciertamente se ve mejor que la distribución exponencial. Me siento obligado comentarle acerca de la controversia que hay cuando tratamos de hacer estos modelos… En particular hay un modelo muy diferente que se ve bastante similar. Es la serie de logaritmos de Fisher. Y el argumento detrás de la serie de Fisher, para explicar esta distribución, implica la idea de una restricción adicional "oculta". En la pregunta del código abierto, lo que e hecho es incluir esa restricción adicional como "tiempo de programación", solo porque parecía que seria una restricción en el sistema, ok? Que fijáramos el promedio del tiempo de programación por lenguaje, no solo el numero promedio de proyectos. Pero, y eso significa que los lenguajes pueden variar su popularidad, y también su eficiencia, en el modelado ecológico, esto son especies los lenguajes son especies, y esto es la abundancia de especies, lo que se interpreta como la variedad de una especie en la naturaleza, y también su metabolismo, cuanta energía consume una especie en particular. Entonces en este caso, el sistema esta restringido al numero promedio de abundancia de especies, y al promedio de energía consumida por especie. Aquí los lenguajes están restringidos a una cierta abundancia, y a un cierto consumo de energía de programador, esa es la analogía. Así que también podemos construir un modelo de popularidad de lenguajes de programación. Y previamente cuando estudiamos el problema de los taxis, lo que hicimos fue cuando construimos el modelo, encontramos uno muy simple era capaz de reproducir las predicciones del modelo de máxima entropía. Aquí, por el contrario, lo que vamos a ver es que el modelo va a producir un comportamiento similar, pero la forma funcional sera ligeramente distinta. Así que este es el modelo… imaginamos que todos los lenguajes empiezan con una popularidad mínima, el que inventa un lenguaje, por ejemplo, tiene que escribir al menos un proyecto, hay al menos un programador cuando un lenguaje es inventado, que sabe como programar en ese lenguaje, por definición. Entonces la popularidad puede crecer de dos formas. Puede crecer, por ejemplo, linealmente, así que en el día uno hay un programador, en el día dos, se le uno otro programador a ese programador. y en el día tres, se une un tercer programador, y así, en el tiempo lo que obtiene es una taza de crecimiento lineal… Pero, quizás un modelo mas plausible sobre como crece la popularidad es que sea multiplicativamente… en t 1, hay un programador, y tiene una cierta eficiencia de convencer a otros programadores para que se unan a la causa, así que tal ves es capaz de duplicar el numero de programadores. Si es capaz de duplicar el numero de programadores, porque su lenguaje es particularmente bueno, y tal vez la que usa ese lenguaje, por coincidencia, es particularmente persuasiva. Así que en el segundo día, esos dos programadores, cada uno, buscan y convierten a dos personas, porque son tan efectivos como el programador original y el lenguaje en si mismo es tan convincente como lo era antes. Entonces cada uno de los programadores salen y consiguen dos cada uno, y así tenemos cuatro, y por un argumento similar, llegamos a 8, y así este seria un modelo de crecimiento exponencial… donde el numero de programadores en función del tiempo incrementa multiplicativamente, en vez de aditivamente. Así que, vamos a hacer este modelo un poco mas realista, en particular permitamos al factor multiplicativo, que en este caso lo ponemos en 2, vamos a permitir que este factor varíe, de hecho, vamos a sacar este factor multiplicativo, alfa, de una distribución, de hecho, realmente no importa de que distribución sea mientras que el alfa sea mayor que cero, para que no sea posible que todos los programadores desaparezcan de repente. así que es simple mayor que cero, y esta limitada en algún punto, para que sea imposible que un lenguaje se vuelva infinitamente popular después de un numero finito de repeticiones. Así que vamos a tomar… Cada día vamos a tomar un numero, alfa, de esta distribución, esta de aquí. Así, después de un día, hay alfa programadores, después de dos días, hay alfa… Mas bien, alfa(1) programadores, este es el numero del primer día, en el segundo día hay alfa(2) veces alfa (1) programadores, y así, alpha(3) veces alpha(2) veces alpha(1). Así que ahora crecimiento ocurre a travez de un proceso multiplicativo aleatorio. Es similar al crecimiento que ocurriría a travez de un proceso aditivo aleatorio, excepto que ahora en vez de sumar un numero aleatorio de programadores cada día, multiplica el numero total de programadores cada día, por algún factor alfa sacado de esta distribución. Así, usted siempre pude convertir este proceso multiplicativo en uno aditivo de una forma muy simple, el truco es usar el logaritmo. Con el tiempo, si contamos el numero de programadores que estamos multiplicando, pero estamos trabajando en el espacio de logaritmos, solo estamos sumando, estamos sumando un numero aleatorio a la distribución, siempre que alfa sea estrictamente mayor que cero, esto estará bien definido. Ahora, de repente, en el espacio log. Se parece al modelo aditivo. Y algo que sabemos del teorema del limite central es que si suma muchos números aleatorios, esa distribución tiende a una distribución Gaussiana, con alguna media, mu, y una variancia, sigma, particulares. No nos preocupemos acerca del valor particular de estas, sino mas bien, note que el crecimiento ocurre en el espacio de logaritmo. La distribución de estas sumas para un largo tiempo terminara viéndose como una distribución Gaussiana. El crecimiento diario promedio de un lenguaje se ve en el espacio log. Como una distribución Gaussiana, lo que significa es que el modelo de crecimiento exponencial con empujones aleatorios, empujones multiplicativos aleatorios, realmente se ve como una Gaussiana en el espacio log. O lo que llamamos log-normal en el espacio de números. Entonces, en cambio de ver el logaritmo de la popularidad de un lenguaje, solo mire la popularidad total de un lenguaje, y lo que eso significa es que se ve como una exponencial del log(n) menos alguna media al cuadrado sobre dos sigma cuadrado… Y después usted solo tiene que ser cuidadoso al normalizar cosas aquí. Entonces esta el la distribución log-normal, (Falta signo menos) y un modelo simple donde el crecimiento de un lenguaje ocurre multiplicativamente donde un lenguaje gana nuevos adeptos en proporción al numero de adeptos que ya tiene, donde un lenguaje gana nuevos proyectos en proporción al numero de proyectos que ya tiene, que ya depende del ambiente, es de ahí que viene la aleatoriedad de la multiplicación, alfa es un numero aleatorio, no una restricción, no es 2, el lenguaje no necesariamente tiene que duplicarse siempre, pero el hecho de que pase por un proceso multiplicativo aleatorio en cambio de un proceso aditivo, significa que tiene tendrá un crecimiento log-normal, y entonces puede decir, "Ok, entonces imaginemos que el lenguaje crece a travez de este proceso log-normal, y encontremos los parámetros que mejor se ajusten para mu y sigma". Y si hace eso, encontrara que el mecanismo del modelo log-normal también se ve muy bien. Estábamos impresionados por lo bien que la linea azul se ajustaba a esta distribución al compararla con el modelo exponencial rojo, el modelo de máxima entropía, restringiendo solo N, ese era el modelo rojo. Aquí al modelo azul le va bien… Este es el modelo de la serie de Fisher-log Desafortunadamente, es un modelo simple… Le he dado un resumen del modelo, aquí, lo que pasa con este modelo es que usted esta sumando muchos pequeños empujones multiplicativos, el modelo simple funciona también. Le diré que este se ajusta mejor, si hace un análisis estadístico, ambos modelos tienen dos parámetros, si hace un análisis estadístico, la serie Fisher-log en realidad se ajusta mejor en particular, es capas de explicar estos lenguajes de popularidad realmente alta, estas desviaciones de aquí parecen mayores que las desviaciones de aquí, pero tiene que recordar que esto esta en una escala logarítmica, así que esto se acerca mucho mas aquí arriba que lo que este aquí. Así que el modelo simple, al menos visualmente parece que es extremadamente competitivo con el modelo de la serie de Fisher-log derivada de un argumento de máxima entropía. Estadísticamente hablando, si ve estas dos, esta, de hecho esta es ligeramente menos preferible Pero, como mucha gente, lo que quiere es evidencia que refuerce esta contra esta, y yo creo que la mejor forma de buscar ese tipo de evidencia es averiguar que, si existe, es este epsilon en el mundo real, si fuéramos capases de construir una teoría solida acerca de que es epsilon, y como podríamos medirlo en los datos entonces podríamos ver si esto de aquí, esta distribución conjunta, estuviera bien recreada, si pudiéramos encontrar evidencia, por ejemplo, el hecho de que estas dos co-varian, de que aquí tenemos un termino que impulsa la popularidad de un lenguaje si se vuelve mas eficiente. Entonces, si esto baja, esto puede subir, y el lenguaje puede aun tener la misma probabilidad de de ser encontrado con esas propiedades, y claro, el problema es que no sabemos como medir este, tipo de misterioso, tiempo de programador… eficiencia de programador. A los ecologistas les va mejor con esto, porque los ecologistas saben cuanto es su epsilon, ellos saben que su epsilon es la unidad de consumo de energía metabólica, Así que es "cuanta energía consume una cierta especie en un día, o en toda su vida", y ellos son capases de medir eso, y de hecho, son capases de medir esta distribución conjunta. Cuando estudiamos el ecosistema del código libre hasta ahora, no tenemos una manera de medir esto, y por eso somos incapaces de medir esta distribución conjunta, entonces acabamos con un modelo simplificado de incremento de la popularidad y por aquí, este modelo que trata sobre la existencia de dos restricciones en el sistema, numero promedio y tiempo de programador promedio.