Ahora

Herramientas para la investigación social cuantitativa

9 May, 2013 - - @griverorz

Nota editorial introductoria: la controversia alrededor del trabajo elaborado por Reinhart & Rogoff sobre el efecto de la deuda pública en el crecimiento económico de los países ha vuelto a poner de relieve la importancia del rigor en el análisis de datos. Hemos visto, por ejemplo, reacciones de sorpresa respecto al hecho de que usar un programa tan habitual como Excel esté visto como un práctica cuestionable en entornos académicos. Dado que Gonzalo Rivero es amigo de la casa y su doctorado en NYU ha conllevado un uso intensivo de técnicas cuantitativas y programación en torno al análisis estadístico, le hemos pedido que nos hable un poco sobre sus herramientas de trabajo. Esperamos que esta nota sirva a la vez como introducción a quienes se inician en la investigación y, para los ajenos al sector, sea una muestra del trabajo día a día en las ciencias sociales.

Es importante que empiece enunciando una obviedad antes de perderla de vista: las herramientas son herramientas, y han de estar al servicio del objetivo final que es producir investigación social de la mejor calidad posible.

El instrumental que yo uso es bastante estándar en mi entorno académico. En la medida de lo posible, he intentado orientar mi configuración actual a hacer un poco más eficiente la cantidad de tiempo que paso delante del ordenador.

Solo escribo en Word por obligación. Creo que se adapta mal a mi rutina de trabajo y, de hecho, creo que la comunidad investigadora en su conjunto se beneficiaría de su abandono. La práctica totalidad de mis trabajos académicos los escribo en LaTeX, incluyendo las presentaciones, aunque últimamente uso Markdown u org-mode + pandoc para textos más sencillos que no requieren notación o tablas. Para las bibliografías, sigo usando BibTeX a través de BibDesk, aunque en algún momento probaré algo más moderno y completo como Zotero o Mendeley.

Hago casi todo el análisis de datos en R aunque uso ocasionalmente Stata para tareas concretas. R puede resultar un poco complicado al principio, especialmente si el punto de partida es la escasa formación técnica que es habitual en las facultades de Ciencias Sociales en España, pero es la lingua franca en investigación cuantitativa, así que es conveniente tener al menos cierta exposición. Además, R interactúa muy bien otras herramientas que forman parte de mi secuencia de trabajo, como Jags/Stan. Stata es muy popular, pero encuentro que me limita bastante en tareas como la limpieza y organización de los datos o la preparación de gráficos. Además, Stata tarda bastante en incorporar nuevas rutinas que, por lo general, son escritas primero para R. Sobra decir que me parece absurdo usar algo como Excel para el análisis de datos.

Con el tiempo me he dado cuenta de la importancia de usar un sistema de control de versiones. Para un investigador social, un programa sencillo como Mercurial es una forma excelente de evitar, entre otras cosas, el caos de tener una copia de cada una de las versiones de un mismo trabajo. Es quizás la parte que más me ha costado incorporar a mi rutina, pero la posibilidad de tener almacenado todo el historial de cambios de un archivo de forma poco intrusiva, o las ventajas que ofrece para que diferentes personas puedan trabajar simultaneamente en el mismo proyecto, me parecen razones suficientes para recomendar su uso. Además, facilita mucho compartir código y datos con el resto de la comunidad, algo que, por fortuna, se está convirtiendo en un requerimiento habitual en laspublicaciones científicas.

Cada vez uso más otras herramientas como Python o PostgreSQL, pero esto ya es algo muy específico del tipo de investigación en la que me estoy embarcando últimamente. De todos modos, tener ciertos rudimentos de programación me parece una habilidad básica para un investigador social en los tiempos que corren: cada vez es más frecuente recopilar datos a través de Internet y cada vez lasbases de datos que podemos explotar son más grandes. Eso por no mencionar la importancia de los métodos computacionales para entender mejor los sistemas complejos. Hoy día es muy sencilloencontrar cursos excelentes para empezar a programar.

La aplicación con la que más interactúo a lo largo del día, con mucha diferencia, es el editor de texto. Y como yo, cualquier otro investigador cuantitativo. Por eso es importante escoger bien. UsoEmacs desde años, pero hay muchas alternativas menos arcanas en el mercado, como TextMate o Sublime Text. Emacs se integra muy bien con R a través de ESS, con LaTeX via AUCTeX/RefTeX, y tiene modos específicos para Markdown, para la organización de tareas, e incluye un sinfín de pequeñas utilidades que simplifican mucho el trabajo diario. Como lo uso en todas las partes de mi trabajo, los célebres atajos de teclado son una bendición y les saco mucho partido.

Es el momento de reiterar lo dicho al principio. Esto es una lista de herramientas. No por usarlas uno se convertirá mágicamente en un mejor politólogo o sociológo. De hecho, ni siquiera se convertirá en uno más sofisticado. Estos son instrumentos que a mí (your mileage may vary) me facilitan el trabajo diario y que incorporan lo que creo que son buenas prácticas académicas.


21 comentarios

  1. L dice:

    Politikon es el primer medio que tiene la primicia de publicar un texto del Dr. Rivero ostentando esta distinción. #respect

  2. Hans Lucas dice:

    ¡Qué maravilla! Muchísimas gracias…
    Leyendo esto algunos nos sentimos «paletos tecnológicos», pero se agradece el estímulo para superarse a uno mismo. La verdad es que es poco habitual que los investigadores cuenten cómo hacen lo que hacen, y es de agradecer que la gente abra sus cajas de herramientas en público. En esta línea: http://www.gedisa.com/libroimpres.asp?codigolibro=240016

    Me ha llamado la atención especialmente lo del sistema de control de cambios en los documentos. Es éste: http://mercurial.selenic.com/?? No lograba acceder desde el link del texto y por descarte no me queda otra (la alternativa en google eran unas Nike para jugar al fútbol…).

    Mi impresión es que con algunas de estas cosas aprender a sacarle partido requiere un esfuerzo que no siempre compensa el resultado. ¿Es el caso de este programa? ¿Crees (creéis) que hay un punto en el que empieza a haber rendimientos crecientes? Y otra duda: ¿es sólo para LaTeX?

    • Oliver Huntemann dice:

      Supongo que depende de lo que hagas, te puede compensar más o menos dedicar tantas horas a aprender a programar y a usar todas esas herramientas…
      No soy cientifico, pero me parece que buena parte de la investigación en los ultimos años (desde biología hasta sociología) se está centrando bastante en analizar cantidades enormes de datos. Sin herramientas para filtrar todos los datos irrelevantes y poder extraer información, parece una tarea imposible. Por eso los campos de Machine Learning, Data Mining, etc. se están volviendo cada vez más importantes. En Coursera hay algunos cursos sobre estos temas también.

      Lo de Mercurial es un programa de control de versiones (como svn o git), no es solo para Latex. Es imprescindible usar algo así cuando se trabaja con alguien más. Además, herramientas como github (https://github.com/) le añaden un componente social para que la gente pueda ver tu código si es open source, y añadir bug fixes o proponer e implementar cambios.

    • Gonzalo dice:

      Muchas gracias.

      Sí, el Mercurial al que me refería es ese. El enlace original apuntaba a este manual http://hginit.com que es muy breve pero realmente bueno.

      Mercurial no es solo para LaTeX. De hecho, está más pensado para código que para texto. Mientras sea texto plano (no Word), funcionará bien. Es un poco engorroso al principio, pero no es para nada complicado. Además, hay GUI como http://sourcetreeapp.com que lo hacen todo más sencillo. Con acostumbrarse al vocabulario (commit, revert, merge, …) ya tienes el 90% del trabajo hecho. Yo lo he empezado a usar para seguir cambios en papers (siguiendo este ejemplo http://stackoverflow.com/questions/6188780/git-latex-workflow) y estoy muy contento.

      • Hans Lucas dice:

        Gracias, Gonzalo (que diga… Dr. Rivero)! Le dedicaré un ratín en las próximas semanas… Tiene buena pinta.

  3. Mª Teresa dice:

    Mil gracias por el post. Me será de gran e inmensa utilidad!!!

  4. Gonzalo dice:

    Algo que no he mencionado en el texto ya que me parece accesorio es que la práctica totalidad de las herramientas que uso son software libre (la única excepción es Stata, creo).

  5. Nel·la Saborit dice:

    Muy buen post Jorge. Como ya te comentaba el otro dia, entiendo que el R os sirve a solciólogos y politógolos, pero para tratamiento de datos, con MatLab se hacen virguerías. Lo bueno de MatLab es que puedes hacer llamadas y compaginar su uso con programas de información SIG. Quedan unos mapas preciosos. También se peuede encontrar en su forma libre: GNU Octave.

    Os dejo el enlace en la Wikipedia: http://es.wikipedia.org/wiki/MATLAB

  6. Gonzalo dice:

    He usado MATLAB en el pasado pero lo encuentro poco práctico para mi trabajo. Al fin y al cabo, R está diseñado específicamente para análisis de datos, y MATLAB requeriría que programase funciones que en R ya están implementadas (la Statistics Toolbox es demasiado básica). Sinceramente, no veo que MATLAB sea una herramienta superior para mí.

    R también se puede conectar con varios GIS: http://cran.r-project.org/web/views/Spatial.html

    A día de hoy, prefiero Python + pandas + NumPy para cosas que quizás antes haría en MATLAB.

  7. Estudiante dice:

    En mi facultad (Sociología Coruña) nos enseñan a usar SPSS ¿Contras?

    • Carlos Jerez dice:

      Parece lo normal en la universidad española, al menos a nivel de licenciatura o ahora grado (y eso si coges una optativa que lo requiera, como hice yo con análisis de datos).

      La universidad española casi siempre resulta retrasada, además de con programas académicos bastante mal pensados (para el estudiante). Uno ve por ejemplo el programa académico del LSE y ves como la mitad de la carrera obligatoria es economía pura y la otra mitad optativa. En cambio te vas a una universidad española, como mi licenciatura en economía y te encuentras como obligatorias Introducción al derecho, contabilidad o fundamentos de dirección de empresas y eso solo en primero, la cosa sigue así durante 3 años más (aparte de otras asignaturas obligatorias propiamente de economía que no forman parte de su núcleo).

      Para que veais otro caso más claro, ¿por que el programa de macroeconomía avanzada de la UV tenía que basarse durante años en unos apuntes que los propios profesores criticaban (incluido Javier Andrés)? Saludos.

    • Gonzalo dice:

      No me gusta SPSS. No me gusta en absoluto. Tuve que aprender a usarlo cuando empecé el doctorado en Madrid y nunca he entendido del todo bien su popularidad entre investigadores.

      • Guido Cor dice:

        Nos enseñan SPSS porque es el «standard» de mercado… y lo es (o eso te dicen ) porque es el único que enseñan! Se aprende más si te enseñan con R, es gratis, es abierto, es infinito….

        Que enseñen con SPSS es presentar una solución subóptima.

  8. Últimamente se habla mucho de Julia, un lenguaje de programación orientado a ciencia. http://julialang.org/

    • Gonzalo dice:

      Le eché un ojo hace unos meses y me parece una iniciativa excelente. Además, tiene unos benchmarks espectaculares. Eso sí, parece que todavía le falta generar una buena comunidad de usuarios, lo cual será difícil ya que apunta al nicho en el que R ahora mismo es dominante.

  9. La Maceta Universal dice:

    El artículo de Reinhart y Rogoff usa estadística muy básica y eso con Excel pues se puede hacer fácilmente. Tampoco es plan de demo izarlo en todas las aplicaciones…

    • Gonzalo dice:

      Yo creo que aquí hay dos reflexiones. La primera, que por muy básica que sea la estadística, Excel no suele ser la herramienta apropiada. Es una hoja de cálculo excelente, pero no una buena plataforma de análisis de datos, y menos para un ámbito como la investigación.

      La otra reflexión tiene que ver con el hecho de que, al menos desde mi perspectiva, Excel no «minimiza la probabilidad de un error de codificación», como por ejemplo sí que hace cualquier lenguaje especializado. Dicho de otro modo, es más difícil cometer el error que R&R cometieron usando R, Stata, SAS, MATLAB, … simplemente porque es mucho más fácil para el usuario comprobar que las instrucciones son correctas que comprobar las instrucciones más las referencias a celdas.

  10. Nico dice:

    Mil gracias!!! Voy a sacar buen provecho del artículo… Es triste que no conozca muchas de estas herramientas, siendo estudiante de periodismo como soy. Ni siquiera nos enseñan estadística en la facultad. Luego vienen los lloros. En fin, muchas gracias (de nuevo) y a seguir publicando cositas como esta, enhorabuena!! 🙂

  11. Jesús dice:

    ¡Excelente entrada! Y envidioso de ver que te has podido liberar del uso de Word, pero no para todos es posible porque es muy frecuente encontrarnos con congresos y revistas que piden sus contribuciones en Word; de vez en cuando LibreOffice, pero son la excepción. ¿Cómo te manejas en esos casos?

Comments are closed.