Leo, R y Github

Dada la importancia que en NeG siempre le hemos dado a la evidencia empírica, merece la pena comenzar la nueva etapa de nuestro blog hablando precisamente de cómo se pueden emplear los datos de manera sistemática y abierta.

El NYT, que últimamente ha invertido mucho en la presentación de información basada en datos, ha creado una página web en la que se reportan los resultados de un modelo (Leo) que varios colaboradores del periódico han preparado para predecir el resultado de las elecciones al senado en Noviembre de este año.

La pagina es excelente por varios motivos:

1) El diseño es limpio y elegante.

2) Transmite, de manera sencilla, la incertidumbre en las predicciones. Uno de los gráficos, por ejemplo, es la distribución de probabilidad de resultados generada por un Monte Carlo de 250.000 simulaciones.

3) Permite a los lectores jugar con las simulaciones simplemente pinchando un botón (y aunque parezca mentira, las ruletas están programadas para capturar correlaciones de eventos).

Pero más importante para mi es el hecho de que código en R de Leo está colgado en github para ser consultado por todos (esto lo he aprendido vía Revolutions).

Escribía hace unos meses que R es un gran lenguaje de programación para temas de probabilidad y estadística. Uno puede ir a github y mirar el código tanto para ver si esta o no de acuerdo con la manera en la que se prepara la predicción como simplemente para aprender como funcionan estas cosas.

Github es una página web que permite la colaboración interactiva de muchísimas personas en el desarrollo de proyectos de código abierto. Yo a mis estudiantes de mi clase de computación en economía siempre les insisto en que aprendan a manejar git y github.

Aunque no sabemos qué tal funcionará Leo en la práctica (Nate Silver, en su nueva aventura en internet, es ligeramente más favorable a los republicanos y nuestro amigo Roger Senserrich me comenta que el ve el panorama más desfavorable para los demócratas) todo esto no deja de ser una prueba más de que el mundo cada vez se hace más matemático y más estadístico. Los métodos formales, el análisis de datos, la presentación de información y la creatividad son más importantes que nunca. Mientras tanto nosotros en España, seguimos con los exámenes memorísticos, las oposiciones y con maneras de hacer las cosas más propias de tiempos pasados.

A nivel muy directo estas elecciones me afectarán poco (no toca elección de ninguno de los dos senadores de Pennsylvania y mi distrito en la Cámara de Representantes es el tercero más demócrata del país) pero un cambio en el senado tendría unas consecuencias muy importantes para el conjunto de Estados Unidos, con lo que seguiré con atención que tal le va a Leo.

Hay 20 comentarios
  • En realidad a fecha de "justo ahora" (la serie histórica muestra unos pocos vuelcos) los datos de Leo se inclinan también por el lado republicano (52% frente a 48%), así que estaría de acuerdo con 538.

    La iniciativa de publicar el código y los datos de Leo me parece fantástica. Contrasta vivamente con la típica encuesta-pronóstico publicada en España en la que no hay manera de saber de dónde han salido las predicciones.

    Un párrafo que me chirría un poco en su FAQ es el de "How well does Leo do?" que dice: "But we can look back at past races in which Leo would have assigned odds of 87 percent and see how often the favorite actually won. Sure enough, the track record is solid". Salvo que se me escape algo, eso es un fallo clásico al evaluar un predictor. Puesto que el modelo estadístico de Leo está basado en los "past races", no puedes validarlo con datos que ya ha "visto", eso producirá resultados engañosamente optimistas.

    Por lo demás, no tengo ni idea de lo que pasa en Louisiana, pero debe ser interesante: el modelo de Leo tiene unas cuantas líneas de código (y carga de datos ad hoc) con el comentario "## adjust Louisiana" 🙂

    • 1) Lo que me referia es que a Silver le sale un poco mas positivo a los republicanos que un 52% (que no deja de ser solo un epsilon mejor que 50/50).

      2) Si, toda la razon en la comparacion con España. Si miras los graficos e informaciones de El Pais o El Mundo con la del NYT te das cuenta que hablas de dos mundos diferentes. En España, tristemente, no hay demanda suficiente de informacion de calidad.

      3) Luisiana tiene un sistema muy raro de eleccion: http://en.wikipedia.org/wiki/United_States_Senate_election_in_Louisiana,_2014. Por eso lo necesitas tratar de manera diferente.

  • Estoy de acuerdo que el método de desarrollo de software libre ha dado lugar a prácticas y tecnologías perfectamente aplicables a otro tipo de proyectos y que sería deseable que fuesen adoptadas en otros ámbitos.
    En cuanto a R, puedo recomendar el lenguage de gráficos ggplot. A mi me ha servido no sólo para aprender a crear gráficos, sinó, más en general, para aprender a representar información de forma visual y entender qué elementos de representación son adecuados para cada tipo de variable. Después puedes aplicar los mismos principios independientemente del software que utilices.

    • ggplot es fantastico.....
      Una cosa que tiene R que la gente no aprecia a menudo es su rica estructura OO.

  • ¿Se puede decir?
    Welcome back!
    Inteligente cambio el de NEG y un placer tenerte de nuevo por aqui .
    Pedirte que no dejes de escribir en hayderecho.com temas no- economicos (o por aqui, ambos son estupendos blogs)

    Y un comentario acerca de tu presentacion en madrid el otro dia (esta el video en la pagina de hayderecho.com para quien no lo haya visto, muy recomendable)... sospecho que dijiste tanto, y tan concentrado que la mayoria de gente se perdio la mitad (al fin y al cabo, era una condensacion de muchisimos articulos escritos por ti en los ultimos dos años o mas).

    Y una petición: que te prodigues mas por el blog 😀

    • Gracias! Como anunciamos el viernes ahora hay un cambio de regimen y el blog es completamente independiente.

      Madrid: gracias tambien. Tenia solo 15 minutos. Ya me pase por 2 😉

  • Que alegría verte aquí de nuevo Jesús! Un artículo muy interesante, como siempre.

    • Gracias! La nueva etapa de total independencia de este blog traera muchas cosas buenas.

      • Off-topic: Deberíais cambiar las FAQ del blog dejando clara la desvinculación de FEDEA.

        • En eso estamos. Ahora que somos nosotros solos algunas cosas iran algo mas lentas en terminos informaticos, pero ya hemos redactado casi todas las nuevas cosas y en las proximas semanas concluiran todos los detalles de la transicion. Un poco de paciencia 🙂

  • Aprovecho para invitar a cualquier persona que esté interesada en el tema de entrar en coursera. En esta página la universidad de John Hopkins está haciendo unos cursos de R usando GitHub.

    En España no hay buena educación pero por suerte en Internet podemos encontrar cositas :).

  • El uso de GitHub se ha convertido en algo tan habitual que cuando algún código no está publicado de esta forma uno suele asumir que está desactualizado. Lo que me resultó más sorprendente fue cuando comencé a ver que experimentaban con GitHub para cosas tales como la legislación:
    http://www.ted.com/talks/clay_shirky_how_the_internet_will_one_day_transform_government

    Ya hace años, se comprobó la potencia de gestionar la información de forma mucho menos jerarquizada, también su efectividad en poblaciones amplias (Wikipedia), sin olvidar sus desafíos (http://edge.org/conversation/digital-maoism-the-hazards-of-the-new-online-collectivism). Se desarrollaron herramientas colaborativas que no reñían con la rendición de cuentas a la autoría experta (ej. StackOverflow). Cómo mantener un cuerpo de información altamente estricto (código de programación) sin ser estricto en la aportación de autores o en los cambios (GitHub). El diseño visual también evoluciona para ser más productivo, es decir, ser capaz de sintetizar algo claro, sencillo y atractivo a partir del maremagnum de información. Estos ejemplos y la propia Internet es la constatación de que nuestro desarrollo en el tratamiento de la información crea un mundo cada vez más distribuido, inclusivo y transparente. Todo esto ofrece oportunidades pero también supone un riesgo para aquellos que detentan alguna posición de antiguo privilegio.

    Ahora pensad en las instituciones españolas y fijaos lo poco que se parecen a todo eso, es más bien su contrario. Y los resultados son desalentadores. Mientras el mundo cambia inexorablemente, nuestros "líderes" patrios se dedican a realizar performances de arte posmoderno (http://www.teinteresa.es/espana/Susana-Cristo-Cautivo-Semana-Malaga_1_1120098883.html) o bien a la literatura esperpéntica (https://twitter.com/a_lo_gonzo/status/438001159681609728/photo/1). Doscientos años después del "¡viva las cadenas!" y así estamos.

  • Un placer y un gustazo volver a leerte en NeG, amigo Jesús. Cuánta razón tienes con eso de las oposiciones en España, y la falta de imaginación y creatividad. Un abrazo

    • Efectivamente: en España se creen que es mas importante para ser un alto funcionario del Ministerio de Economia saber "cantar un tema" que escribir un codigo en R o manejar git.

  • Yo siempre he preferido Matlab a R. Más que nada porque Matlab lo conocí primero.

    Siempre me ha parecido más simple y eficaz en muchos procesos. Además de tener muchas funcionalidades avanzadas que R no tiene, o no tenía.

    Sin embargo, el modelo del código abierto se ha impuesto y R parece que ha triunfado en entornos académicos. Si a eso lo unimos que prácticamente cada función o paquete que se quiera hacer están ya hechos y son libre y gratuitamente accesibles; entonces Matlab ya no es rival, parece.

    • Frine

      Yo como lo veo es asi: los lenguajes de programacion son como el vino, unas veces te apetece tinto y otras blanco. Cada uno tiene su uso. R, para cosas estadisticas, esta muy bien por todos los paquetes existentes y ser codigo abierto. En el lado negativo, es mas lento que Matlab (un dia lo explicare con calma, pero R tiene demasiada herencia del pasado que deberia de cortar por lo sano). Asi que si tu preocupacion principal es velocidad y la licencia no es un problema, Matlab es una buena idea.

      Pero mira Julia tambien.

      • El sistema de tipos nominal de Julia facilita la mejora del rendimiento pero es un lenguaje que está verde todavía. R tiene margen de mejora. Un lenguaje interpretado como Python es del orden de 50 veces más lento que el C++ (la mediana) así que R estará en torno a 100. La frontera de rendimiento en un lenguaje "no tipado" está en 3 a 1 usando JIT e inferencia de tipos (Javascript V8, LuaJIT).

        • Mi propia experiencia es que R puede hacerlo incluso 100 veces peor que C++ (sobre todo si no lo compilas). La gran ventaja, como decia, es que muchos de los paquetes que uno necesita ya existen y para tirar, por ejemplo, un VAR, el ordenador no va a necesitar mas de un segundo de todas maneras.....
          En todo caso pronto circulare un paper sobre este tema.

          • Los lenguajes dinámicos están diseñados para aumentar la productividad en el desarrollo. Usar algo más estricto o cercano a la máquina para muchas tareas sería una pérdida de tiempo. Especialmente si vas a usar algoritmos estándar que ya están en una librería programada en C o Fortran.

            Espero ver el enlace del paper por aquí.

Los comentarios están cerrados.