En la unidad anterior mostramos que un modelo de maxima entropía inocente para la distribución de popularidad de los lenguajes donde la popularidad de un lenguaje es cuantas veces fue usado ese lenguaje en el archivo de código libre ese modelo, que tiene la siguiente forma y restringe el valor de expectación de abundancia de lenguajes [Nuestro modelo "inocente" de maxima entropia tenia la forma] que restringe solo el numero promedio de veces que un lenguaje es usado en el archivo sobre todos los lenguajes este modelo de maxima entropía falla en reproducir los datos que tenemos no predice los lenguajes populares y da valores muy altos a los lenguajes menos populares este es el modelo que mejor se ajusta a los datos esto es lo que pasa cuando resuelvo lambda y z para obtener la restricción correcta del promedio que vemos en los datos lo que voy a hacer es pedirle que considere un modelo mas rico y otra vez por modelo me refiero a distribución de probabilidad y esta distribución de probabilidad va a tratar de explicar no solo la popularidad de los lenguajes sino también la cantidad de tiempo dedicada a ellos La cantidad de tiempo de los programadores dedicado a un lenguaje aqui va n, como antes el numero de proyectos [Considere un mejor modelo] que aparecen en ese lenguaje [Donde n es el numero de proyectos que hay en un lenguaje] y esto de aqui epsilon es la cantidad de tiempo dedicada por proyecto [y epsilon es la cantidad de tiempo dedicada por proyecto] debe pensar en epsilon representa algo como la eficiencia del lenguaje [ε modela la "eficiencia del lenguaje"] y n representa la popularidad del lenguaje [n modela la "popularidad del lenguaje"] algunos lenguajes, por ejemplo son extremadamente populares y extremadamente eficientes entonces tienen n grande y epsilon pequeño tal vez otros lenguajes no son tan populares y sean menos eficientes o requieren mas tiempo del programador y claro, puede haber lenguajes extremandametne eficientes que son profundamente impopulares y vise versa la idea aqui es estamos tratando de describir dos cosas al mismo tiempo antes tratamos de hacer un modelo que solo incluyera una variable, popularidad ahora vamos a tratar de construir un modelo que tenga dos variables popularidad y eficiencia o cantidad de tiempo dedicado por proyecto lo que vamos a hacer es restringir estas dos cantidades como antes vamos a restringir el numero promedio de proyectos [Restringir dos cantidades] [ numero promedio de proyectos] y también vamos a restringir el promedio del tiempo dedicado a un lenguaje [ promedio de tiempo dedicado por lenguaje] la idea es que hay una especie de fuerza intrínseca que mantiene el numero promedio proyectos por lenguaje constante hay una especie de factor social de gran escala o conjunto de factores sociales que mantiene el numero promedio de proyectos constante y también restringe el promedio de tiempo dedicado a un lenguaje en particular entonces vamos a poner una distribución de maxima entropía para este modelo de dos parametros vamos a restringir n sabemos que tenemos un termino que se ve como e a la lambda por n como antes e a la menos lambda por n y también vamos a tener un termino en el exponente que se ve como lambda dos, ese es nuestro segundo multiplicador de Lagrange por n por ε y claro, todo sera normalizado por un factor Z así que la única cosa que debe parecerle misteriosa es de donde sacamos este segundo termino sabemos de donde sale esto pero ¿por qué tenemos esto? así que lo que hare es recordarle rápidamente como obtuvimos esta forma funcional originalmente derivamos la función a la que deseamos maximizar la entropía y ahora vamos a tener tres restricciones vamos a tener una restricción en el numero promedio de proyectos que restringe g1 g1 de p es igual a c vamos a tener una restricción g2 en este termino g2 de p es igual a c prima y finalmente todos sobre una constante de normalización g3 de p_i entonces escribiré esto aqui g1 de p es igual y g2 de p g1 de p es el numero promedio de lenguajes o el numero promedio de proyectos para un lenguaje en particular ese es P(n) por n y podemos escribirlo en función de la distribución conjunta como P(n,ε) por n ahora no solo sumamos sobre todos los valores de n sino sobre todos los valores de tiempo dedicado, ε g2(p) se ve parecido, excepto que ahora no solo estamos restringiendo n sino n por ε entonces tenemos que integrar sobre ε y tenemos que sumar sobre todos los valores de p y así es que se vera nuestra ecuación así es como se ve nuestra restricción para esta segunda cantidad ahora, cuando hacemos la derivada de g1 con respecto a p1 sabemos como se ve es lambda_1 por n y cuando derivamos esto con respecto a p_i todo sale, excepto por lambda_2 n ε y finalmente g_3 es solamente una constante de normalización eso significa que cuando integro sobre todo ε y sumo sobre tono n, sera igual a 1 entonces cuando derivo esto con respecto a p obtenemos lambda_3 por uno en este otro lado la derivada de la entropía con respecto a p_i es igual al log(p_i) menos log(p_i), mas, o mas bien, menos uno [(aqui también, i = n)] y cuando re-arreglamos tenemos que p_i es proporcional a e a la menos lambda_1 por n menos lambda_2 n ε todo lo demás puede ser factorizado en una constante de normalización [(recuerde, i = n)] y de ahi es que viene esta forma funcional y como regla general prácticamente si se quiere ver que restringe la distribución de maxima entropía vea termino por termino en la exponencial par encontrarlo lo que tenemos ahora [Tenemos la forma funcional de la distribución conjunta] es la siguiente forma funcional para la distribución conjunta de popularidad de los lenguajes y eficiencia de los lenguajes y voy a hacer otra cosa voy a tratar de recuperar la distribución original Pn integrando la distribución conjunta con respecto a epsilon lo que hice fue construir un modelo mas sofisticado que tiene dos restricciones restringe el numero promedio de proyectos y la cantidad promedio de tiempo dedicado a un lenguaje en particular y ahora lo que hare es integrar esta variable oculta si hago eso, si hago esta integral obtengo esto aun tengo este factor de e a la menos lambda_1 por n llamare esto lambda prima aun tengo este factor de 1 sobre Z y luego solo queda por hacer esta pequeña integral menos lambda_2 n ε dε y eso es igual a 1 sobre n menos lambda_2 por e a la menos lambda_2 n ε el rango de la integral es de cero a infinito y cuando pongo estos términos aquí mi forma funcional final, y repito no estoy llevando registro de todas las multiplicaciones así que transformo Z en Z' para absorver todos estos factores la forma funcional final se ve como una exponencial arriba dividida por n así que mi nueva forma funcional para la abundancia de lenguajes es modificada previamente, para recordarle previamente, cuando hice Max. Ent. restringiendo solo el numero promedio de proyectos mi distribución de popularidad de lenguajes se veia como una exponencial y nos dimos cuenta de que no concuerda este es el ajuste que ve en la gráfica pero ahora, lo que hicimos [Forma funcional de la Max. Ent. con dos restricciones] es producir una distribución conjunta con dos restricciones una de las restricciones es la misma la otra es una nueva restricción que involucra una variable oculta eficiencia para programar y cuando integro esa variable oculta obtengo una nueva forma funcional para la popularidad de los lenguajes en particular, encontramos que es proporcional a e a la menos lamda n dividida por n esta distribución es llamada la serie de logaritmos de Fisher [Esta distribución es llamada la serie de logaritmos de Fisher] entonces esta es la forma funcional que obtuvimos integrando la variable oculta, eficiencia para programar y lo que puede ver ahora es que esa distribución es un mejor modelo para la popularidad de los lenguajes y lo que hemos hecho aquí solo para aclararlo es postular una restricción adicional que involucra una variable oculta que no podemos ver e integramos en función de esta lo que debería impresionarnos es el hecho de que no solo obtuvimos un buen ajuste sino también del mecanismo que lo soporta que es lo que el modelo de Max. Ent. le sugiere sugiere que estas dos cosas que están fijas los lenguajes no tienden a ser muy populares en promedio hay una especie de limite en que tan popular puede volverse un lenguaje en promedio ese es el origen de esta restricción pero también hay un limite en que tanto tiempo o esfuerzo puede ser dedicado a los proyectos en un lenguaje en particular y esa es esta restricción de aquí esencialmente, lo que esta pasando es que estos lenguajes aquí arriba pueden volverse mas populares porque no consumen mucho tiempo de programación por proyecto en el lenguaje de un ecologista estas son especias muy abundantes con necesidades metabólicas bajas así que somos capases de reproducir estos lenguajes realmente populares podemos explicar con precision, o podemos predecir con precision que deben haber lenguajes extremadamente populares como C, C++ y Java y también podemos explicar porque la popularidad de los lenguajes en la cola es menor a la esperada con el modelo exponencial en particular, posiblemente, muchos de estos lenguajes están asociados con menores eficiencias o mas bien, con un epsilon mayor lo que significa que hay una mayor cantidad de tiempo dedicada por proyecto a esos lenguajes e intuitivamente, programamos en Java que es un lenguaje muy eficiente comparado con Haskell que es un lenguaje profundamente bello pero este no es uno que se asocia con eficiencia para escribir librerías rápidas para analizar paginas HTML así, postulando la existencia de esta variable escondida y usando argumentos de maxima entropía podemos empezar a reproducir los datos y se siente como si empezaremos a hablar de restricciones importantes en el sistema así que debe estar impresionado con esto en parte porque es mas profundo que el resultado que obtuvimos para el caso del taxi en el caso del taxi escogimos una restricción en particular y por coincidencia correspondía con un modelo realmente simple y usted podría decir "Bien, yo podia inventar ese modelo por mi cuenta muchas gracias" aqui lo que hemos hecho es postular un conjunto de restricciones que son sinónimos científicos la primera restricción dice que vamos a restringir el numero promedio de proyectos así que el movimiento de código abierto puede hacer lo que quiera mientras que mantenga fijo el numero promedio de proyectos por lenguaje la gente toma decisiones de hecho, están tomando decisiones de la manera que es máximamente desordenada esa es la parte de maxima entropía de la suposición así que preservan esta cantidad de aqui en promedio y aun mas la comunidad de código libre por cualquier metodo o por cualquier grupo de metodos cognitivos que le permite hacer esto y posiblemente por muchos procesos diferentes interactuantes también mantiene fijo el promedio de tiempo de programación dedicado a un lenguaje en particular