Una pregunta: ¿dados los resultados de las pruebas Saber 11 por colegios cuál es el área evaluada cuyo resultado mejor prediría si el colegio es oficial o privado?

Una forma (tal vez muy ingenua, no estoy seguro) de abordar esta pregunta es a través de árboles de clasificación. Un árbol de clasificación intenta encontrar la variable de entrada que mejor parte los datos de acuerdo a la variable a predecir. Este procedimiento se itera en cada nuevo nivel de partición y de ahí se obtiene el árbol. Si generamos un árbol de clasificación, la variable contemplada en el primer nodo del árbol es, de cierta forma técnica muy precisa, la que tiene la mayor capacidad para clasificar la variable objetivo.

¿Y qué pasa cuando se generan árboles de clasificación con los resultados por áreas de las pruebas Saber 11 como variables de entrada y la naturaleza (oficial o no) del colegio como variable objetivo?

Pasa que de 2011 a 2013 la variable principal es siempre la misma: inglés. Esto no sorprende. En la lista de razones para inscribir a los niños en colegios privados usualmente figura el inglés que supuestamente recibirán. Más difícil, sin embargo, es intentar adivinar cuál sería la segunda área. Detengan la lectura unos segundos e intenten hipotetizar cuál sería (de haber alguna) y por qué.

Para intentar responder esta subpregunta usemos el mismo procedimiento pero esta vez tomando como variables de entrada los resultados de todas las áreas exceptuando inglés.

Una vez más, los tres árboles tienen la misma variable principal. En este caso, lenguaje.

¿Adivinaron?

Por curiosidad repetí el ejercicio para ver si la tercera variable (de acuerdo a este orden tal vez no muy confiable) también era la misma y no: en 2011 es sociales y en 2012 y 2013 es biología.

Aquí los árboles para los tres años:

arboles
Click para verlo más grande. Cada nodo dice cuál es la proporción de privados y públicos, cuál es mayoría y cuál es el porcentaje de datos total en ese punto. Los árboles fueron generados con rpart y pintados con el comando fancyRpartPlot del paquete rattle de R. Aparecen podados en versiones “óptimas” de acuerdo a un criterio técnico que no viene al caso.

Dudas: ¿Es coincidencia que las primeras dos sean inglés y lenguaje o sería más o menos uniforme si se pudieran considerar otros años? Si no es coincidencia, ¿qué explicaría que lenguaje sea el diferenciador de colegios públicos y privados más eficiente después de inglés?

Otra duda: ¿Alguna forma más rigurosa de abordar la pregunta?

*

Increíblemente, no hay ningún buen graficador limpio y nativo de los árboles de clasificación que produce scikit-learn. Depender de graphviz me parece burdo. Lo ideal sería que matplotlib permitiera graficar árboles fácilmente, supongo. De pronto sería una buena forma de entender matplotlib a fondo. ¿Tarea para 2014?

Por lo pronto, R sigue siendo muchísimo más cómodo para estas vainas.

*

Hoy dejamos ir a Laia en la piscina agarrada sólo de su fideo de espuma. Pateó su camino hasta la mamá mientras yo la seguía de cerca por si acaso el sistema de flotación (todavía bastante endeble) fallaba. La primera vez estuvo sola unos veinte segundos. La segunda vez creo que alcanzó el minuto y se veía cansada. No avanzó sino un par de metros cada vez. Creo que tendremos a Laia chapoteando libre y sin ayuda antes de que cumpla los dos años.