lunes, 13 de marzo de 2017

Concursos docentes: Cómo integrar opiniones de los jurados

El año pasado fui parte del jurado de un concurso docente para cubrir cargos en el Departamento de Computación (FCEN-UBA). Una parte del concurso consistió en evaluar la prueba de oposición (PO) de los concursantes. En nuestro caso, decidimos que cada jurado evaluara la prueba de oposición y cuantificara con un solo número del 0 al 1 al concursante. Tras haber completado todas  las pruebas de oposiciones nos preguntamos cómo íbamos a hacer para juntar nuestras opiniones en un orden de mérito.

En principio pensamos en usar simplemente el promedio de la valoraciones de las POs pero nos dimos cuenta de algunos de los problemas que ocurren tomando esta decisión:

1) ¿Las opiniones de los jurados valen igual?
2) ¿Qué hacemos con las abstenciones?

Para intentar responderlas, junto a David Gonzalez Marquez, usamos datos de 3 concursos distintos (de manera 100% anonima). De cada concurso usamos una tabla con tres puntajes correspondientes a la valoración de la PO de cada jurado (distintos para cada concurso) para cada concursante. Para cada concurso contamos en promedio con 24 candidatos.

El primer acercamiento a los datos que hicimos fue mirar la distribución de puntajes del orden de méritos y notamos cosas interesantes: cada concurso tiene formas y usos de rangos bastante particulares entre si y distintas entre los concursos. Por ejemplo el concurso 3 tiene un uso del rango mucho mayor que  los demás concursos para todos los jurados. Inclusive, tomando todas las valoraciones y comparando por concursos resultan estadísticamente distintas entre si (Concurso 1 vs Concurso 3 pval<10^-5, Concurso 2 vs Concurso 3 pval<10^-8).
No sabemos bien a qué se debe esto. Podría ser que realmente haya un buen uso del rango por todos los jurados y justo la muestra a la cual accedimos en cada año sea muy distinta entre concursos, aunque esto parece muy poco probable. Nos inclinamos más a pensar que puede haber una sugestión por parte de un jurado o un sesgo en como reportan las PO los jurados con más experiencia y un ajuste en los nuevos jurados a medida que pasa el concurso.


Mirando las mismas distribuciones pero por jurado se ve que si bien entre concursos hay formas particulares también hay cierta heterogeneidad entre los jurados en el uso del rango y distribución de los puntajes.


Esto nos llevó a preguntarnos si había una valoración coherente de los candidatos entre las distintas opiniones de los jurados. Para eso medimos la correlación entre los jurados por concurso. Vemos en la figura que las correlaciones son muy altas, esto significa que los jurados concuerdan en opiniones, es decir, están típicamente de acuerdo si un candidato es muy bueno, promedio o malo.

Si bien la alta correlación es alta, en el mismo gráfico se ve que los rangos de uso de las PO son algo distintos. Por ejemplo los Jurados 1 y 2 en el Concurso 3 tiene una correlación lineal muy alta (rho >0.87) sin embargo también se ve que el Jurado 1 suele tener una valoración  significativamente (pval<0.001) menor que el jurado 2.


Esta cualidad de los datos hace que tomar el promedio para juntar las opiniones de los jurados no sea buena idea pues, si un jurado usa un rango muy grande, por ejemplo valora 1 a los malos, 5 a los medios y 10 a los buenos, y otro jurado usa  4 para los malos, 5 para los medios y 6 para los buenos el promedio de las valoraciones lo único que hará es tomar en cuenta la decisión del primer jurado pues en el caso donde haya mayor discrepancia de opiniones pesará más la del primer jurado.

Por ejemplo si cierta PO el jurado X la evalúa como buena (10) y el jurado Y como media (5), el promedio de estos dos seria 7.5, ahora si el jurado Y la puntua como mala (4) la valoración promedio será 7.  En caso contrario, si el jurado X con el rango grande vota otra cosa, por ejemplo que es mala (1) y el jurado Y que es buena el promedio seria 3.5, ponderando más la decisión del jurado X en ambos casos. Si bien este problema está mitigado si la correlación entre jurados es alta, esto no garantiza nada pues para los pocos sujetos que haya discrepancia una opinión valdrá de igual manera más que otra.

Otro problema que encontramos de usar el promedio es cómo proceder frente a los casos donde un jurado se abstiene de calificar de un candidato. El problema es similar al anterior, en los casos donde se usen distintos rangos la abstención puede mover la valoración de un participante sustancialmente rompiendo con el orden relativo que tiene el candidato para los demás jurados.

Por ejemplo, supongamos que el concursante A, dio una PO media y hay consenso en esto, entonces el jurado Z (que suponemos usa un rango de 7 a 9 para calificar) le otorga un 8, el jurado T (q se comporta como Z) le otorga otro 8 y por otro lado, el jurado W (que suponemos usa el rango [2,3,4]) lo califica con algún valor cercano a 3. El promedio de estas valoraciones son: (3+8+8) / 3 = 6.33, de este modo todos los candidatos con PO promedio van a moverse en torno al 6.33, sin embargo, si el jurado W se abstiene de evaluar al candidato, el promedio del candidato se va a 8 puntos ( (8+8)/2 ). Esta distorsión hace que un candidato promedio que tiene en promedio una PO entorno al 6 ahora tenga uno entorno a 8.  Mucho mayor al promedio de los candidatos con consenso de PO alta.

Si bien este ejemplo de juguete es extremadamente exagerado, vimos, cuando probamos el promedio como medida primera, que ocurren este tipo de distorsiones con algunos candidatos y nos dimos cuenta que eran producto de los distintos usos de las escalas de valoración (muchos más sutiles que el ejemplo de juguete).

En el caso de un concurso real, si tomamos el Concurso 3 y simulamos una abstención al azar de un jurado al azar vemos la siguiente distribución de cambios del orden de mérito (si repetimos el experimento 30K veces partiendo cada vez del estado inicial)
Es decir, cualquier abstención al azar cambia por lo menos en una posición a los candidatos (tomamos el valor de cambio de posiciones del primer candidato con cambio en la posición más alta), un 6% de las veces genera un cambio de 2 posiciones, un 3%  de 3 posiciones y 2% cambios de 4 posiciones o más. En datos reales se ve que la influencia de las abstenciones es mucho menor que en el ejemplo de juguete, sin embargo hay posiciones donde cambiar en uno la posición es quedarse sin cargo.  

Una solución posible: normalizar

Como solución para mitigar este efecto, propusimos normalizar las series de los jurados primero y luego tomar el promedio. Par eso probamos usando z-score. Z-score esencialmente consiste en normalizar con la siguiente formula: Para cada valor de una serie se resta la media y se divide por el desvío estándar. Las propiedades que tiene esta cuenta son claras, primero al restar se centra la media a 0 y al dividir por el desvío, normalizamos el rango de dispersión de la muestra.

Haciendo el mismo experimento de abstenciones al azar, pero con los datos reales del concurso 3 se ven los siguientes cambios:


Sin normalización
Z-score
Sin cambios
0 %
43 %
Un cambio
89 %
46 %
Dos cambios
6 %
6%
Tres cambios
3 %
3%
4 cambios o más
2 %
3%

Esta tabla muestra que la normalización por z-score disminuye mucho las distorsiones de las abstenciones aumentando mucho la cantidad de casos donde no cambia el orden de merito por una abstención al azar. Por supuesto tal vez haya una mejor forma de hacer estar normalización pero entre que tomamos la prueba de oposición y cerramos el dictamen tuvo que pasar poco tiempo y nos conformamos con esta.

lunes, 19 de septiembre de 2016

Concurso Dpto Computacion/Exactas: predicción de orden de mérito


En la facultad de Ciencias Exactas y Naturales de la Universidad de Buenos Aires existen concursos docentes. Para conseguir un cargo los aspirantes luego de juntar ciertos requisitos compiten contra otros candidatos. El concurso se basa en cuantificar distintas categorías de la experiencia del aspirante (antecedentes docentes, de extensión, científicos, calificaciones, etc) y una prueba de oposición donde el concursante debe performar alguna tarea establecida por el jurado. Dependiendo del cargo que se concursa dicha tarea va desde presentar la resolución de un ejercicio hasta presentar el plan de práctica de una materia.

El cargo de ayudante de 2da tiene dos particularidades: los aspirantes deben ser alumnos y la duración del cargo es de 1 año por lo que para sostener el mismo deben concursar anualmente. En el departamento de computación los concursos están separados en 3 áreas con aproximadamente 45 cargos regulares en total. En el 2015  quedaron los distintos órdenes de mérito aproximadamente 140 personas. Teniendo en cuenta que la prueba de oposición más la discusión del jurado dura al menos 15-20 minutos y que en cada concurso hay 3 jurados, se dedicaron entre 100 y 140 hs hombre (sin contar el extenso trabajo previo de cuantificar los antecedentes), 3.5 semanas laborables completas (40 hs semanales).

Como la información de los concursos es pública nos preguntamos si existe alguna regularidad en los dictámenes entre aspirantes y año tras año.

Distribución en el orden de mérito de concursantes con y sin experiencia en concursos previos.


Tomando como ejemplo el concurso de ayudante de 2da área algoritmos para 2013, 2014 y 2015 se puede medir cómo se distribuye el orden de mérito en función a si el concursante tiene experiencia en concursos del área o concursa por primera vez.  En principio las tasas de concursantes nuevos, es decir sin experiencia, es la siguiente:



Año
Tasa de concursantes sin experiencia
2013
0.3606
2014
0.5571
2015
0.4492


Teniendo en cuenta esto y que dicho concurso hay 20 cargos podemos separar el orden de mérito en los que obtienen un cargo regular (los primeros 20) y los que no (desde la posición 21 en adelante). Cabe aclarar que después terminan obteniendo cargo más aspirantes ya sea por renuncias o por nominaciones interinas.

Los nuevos candidatos se distribuyen muy distinto en los dos grupos (los que obtienen cargo vs los que no) acorde a lo esperado.

Sobre aspirantes sin experiencia

Obtuvieron cargo
No obtuvieron cargo
2013
12%
88%
2014
10%
90%
2015
14%
86%

Esto confirma  lo esperado, ingresantes nuevos se distribuyen no uniformemente quedando más atrás en el orden de méritos de los concursos.

¿Somos consistentes en el tiempo? ¿Mejoramos?


Otra pregunta que nos preguntamos fue si existe una correlación en cada aspirante entre concursos consecutivos. Es decir, si en el 2013 un concursante salio ultimo ¿Es esperable que en el siguiente salga primero? Si otro salió 5to en el 2013 ¿Es esperable que salga en la posición 70 en el 2014? Para contestar esto armamos la relación <posicion concurso anterior, posición concurso actual> para todos los sujetos (a su vez armamos la misma relación pero normalizando la posición en el concurso por la cantidad de concursantes)


Los datos muestran que existe una correlación positiva (pearson rho >0.68, pval<10^-15) indicando que se mantiene cierto orden en el tiempo. Esto significa que si en un un concurso un aspirante quedó en la posición 10 es en el próximo probablemente quede cerca de la misma posición y lo mismo ocurriría para aquel que quedó al final del orden. Sin embargo, si bien el comportamiento tiene esta pinta también muestra que los aspirantes mejoran con el tiempo (más antecedentes y/o mejoran en la prueba de oposición) . De hecho la recta que mejor fitea los datos de ay2 algoritmos tiene  es:

posicion_nuevo_concurso = posicion_concurso_anterior * .72 + 1.98

Suponiendo que tenemos 70 inscriptos en el concurso constantemente para los dos años.
Si en el 2013 un aspirante salió en la posición 60 (osea casi a lo último), este modelo predice que en el 2014 el mismo aspirante saldrá (o salió) en la posición 45. Si otro salió, en el 2013, en la posición 20 el modelo propone que en el 2014 el aspirante saldría en la posición 16/17.

Para testear la validez de este “modelo” performamos validación cruzada de 5 folds reportando un r^2 promedio es 0.46 con una varianza de 0.07.

Para analizar cómo mejoran los concursantes en el tiempo, tomamos todos los aspirantes a concursos de ayudante de 2da con 4 concursos en el mismo área (15).

Tomando la media por concurso por sujeto podemos caracterizar la curva promedio de mejora donde se aprecia lo esperado, inicialmente mejoramos rápidamente y luego disminuye la velocidad, lo que es esperable pues el top10 del ranking tiene mucho menos rango que las últimas 10 posiciones.

Automatización de orden de mérito


Dada las regularidades que ya reportamos nos preguntamos que resultaría de ordenar los aspirantes automáticamente.

La primera prueba que hicimos fue preguntarnos cómo nos va seleccionando a los ganadores. Para eso definimos la siguiente estrategia: Tomamos la lista de aspirante del concurso actual sin orden e  intersecamos con la lista con el concurso anterior respetando el orden del concurso anterior. Devolvemos como nuevo orden esta lista y luego los restantes en cualquier orden. Esta idea trivial genera los siguiente resultados para los concursos de ayudante de 2da algoritmos.

Sobre los 20 ganadores
Año
Precisión
Chance
2013
65%
28%+-4%
2014
60%
29%+-4%
2015
80%
33%+-4%

Los valores de chance son los obtenidos al comparar nuestra estrategia con distintos órdenes al azar. Esta comparación la reportamos para tener idea de cuán bien funciona nuestra estrategia.

La siguiente prueba que hicimos fue intentar regresionar la posición de cada concursante en el orden de mérito.  Para eso enriquecimos un poco más cada aspirante con los siguientes atributos:

  • Cantidad de concursos anteriores (en cualquier área)
  • Si ya concurso como ayudante de primera
  • La media en las posiciones relativas en concursos anteriores
  • El desvío estándar en la posición relativa en concursos anteriores
  • La media de la derivada de las posiciones relativas en concursos anteriores
  • La posición en el concurso inmediatamente anterior

Tomando estos atributos haciendo una regresión no lineal en el mismo esquema de validación cruzada de 5 folds obtenemos un r^2 de 0.6145, mucho mejor que con el modelo lineal y más simple.

En resumen, tener bien formateados los datos para hacer análisis de este tipo puede resultar interesante. Lamentablemente no contábamos con los valores para cada categoría del concurso (antecedentes docentes, extensión, etc…) , con esto podría haberse estudiando el efecto de sobre ajustar la performance de la prueba de oposición al jurado, práctica que se ejerce comúnmente. A su vez, estudiar el sesgo que ponen los jurados al usar distintos rangos para cada categoría.

Algunas ideas de que mirar y cómo medirlo fueron pensadas y discutidas con Edgar Altszyler


jueves, 2 de junio de 2016

Estadística Exactas-UBA: alumnos y examenes finales

Hace algunos años con Pablo Zivic (@ideasrapidas) analizamos los datos de los alumnos / cursadas / finales de la facultad de Ciencias Exactas y Naturales de la Universidad de Buenos Aires disponibles en materias.fcen.uba.ar. Dichos datos contienen información de alumnos (nombre, libreta universitaria, email) , cuándo cursaron cada materia y cuándo rindieron los finales con su resultado, entre otras cosas.


Encontramos algunas cosas interesantes... primero describimos los datos, luego planteamos 3 preguntas que intentamos responder:

1 - ¿(des) aprobamos igual durante toda la carrera?
2 - ¿Hay relación entre el resultado de un final y el tiempo que tardamos en rendirlo?
3 - ¿Los alumnos del primer cuatrimestre desaprueban menos que los del segundo?

Finalmente tomamos los alumnos de una carrera en particular y miramos cómo es el orden de cursada real en comparación con el plan de estudio




Datos




La distribución de alumnos por el año de su libreta muestra valores coherentes para cierto rango de años. Se ve notoriamente un pozo en 1985 debido al inicio de la puesta en marcha del ciclo básico común (CBC) en remplazo del examen de ingreso. A su vez se ve un pico positivo para el año 1973 (desconocemos el motivo, tal vez el contexto argentino). Lo datos de los alumnos más antiguos probablemente no estén completos en el sistema por eso también vemos muy pocos datos previos a 1960.


Los alumnos con libretas posteriores al 2005 no terminaron su carrera (para el momento que obtuvimos los datos) por lo que para contestar las preguntas que nos planteamos, filtramos algunos datos.


Recién a partir (aproximadamente) de 1985 los finales parecen estar todos cargados y empieza a bajar el promedio a partir de 1992 con una abrupta caída desde el 2003. Esta última caída es fácilmente explícame, pues es producto de la gente aun no recibida. Sin embargo la caída de finales para los alumnos que ingresaron a partir del 1992 y hasta el 2003 se debe a alumnos que bien se les alargo mucho la carrera o más posiblemente abandonaron lo estudios.



La distribución de finales por mes no es uniforme, probablemente porque las materias promocionadas que en actas aparecen como finales y ocurren a fin de cuatrimestre. En cuanto a la distribución por días, están más concentrados en Martes y Viernes (>51%)




Finales desaprobados

En exactas muchas veces no se pasan finales (cuando la nota es mala o baja) esto podría explicarse, en parte, por qué solo el 5% de todos los finales en el sistema están desaprobados. Históricamente la tasa de finales desaprobados fue bajando hasta el 2006 (llegando a 3%) donde empieza a subir al 5%.


Es interesante la distribución de finales desaprobados agrupados por mes. Los finales rendidos en marzo tienen una tasa de desaprobación del 7% cuando en Julio tan solo de 2.5%. En cuanto a los dias de la semana de distribuyen uniformemente.



Pregunta 1: ¿(des) aprobamos igual durante toda la carrera?


Tomando alumnos con al menos 15 finales (para descartar aquellos que abandonaron tempranamente la carrera) calculamos la tasa de finales aprobados en función al inicio de su carrera. Los datos muestran que al principio de la carrera desaprobamos más finales relativamente y a medida que avanzan los años crece la tasa de aprobación. A partir del quinto año la tasa se estabiliza pero lo cierto es que disminuye fuertemente la cantidad de alumnos con finales a medida que pasan los años.



Pregunta 2: ¿Hay relación entre el resultado de un final y el tiempo que tardamos en rendirlo?


Tomando, nuevamente, alumnos con mas de 15 finales medimos el efecto de "colgar un final". Vemos que hay una correlación negativa en la tasa de aprobación y el tiempo que esperamos para rendir el final. Es decir, a medida que demoramos más en rendir un final después de haber aprobado la cursada, la tasa de aprobación del final baja. Si bien el primer punto de la figura (0-5 meses) debe corresponder a las materias promocionadas, el efecto mencionado se conserva para los demás puntos también.




Pregunta 3: ¿Los alumnos del primer cuatrimestre desaprueban menos que los del segundo?


Podríamos estimar cuales alumnos ingresaron el primer cuatrimestre y cuales el segundo en cada camada. Sin embargo decidimos ir por otro lado... normalizamos la primera parte del numero de libreta XXX (para una libreta XXX/YY) por la cantidad de alumnos en esa camada. Por lo que el primer alumno con libreta 1/YY va a tener orden 1 / #camada y el último 1. Teniendo en cuenta esto, agrupamos todas las camadas filtrando como mencionamos varias veces (más de 15 finales). Lo que vemos inicialmente que el primer 68% de lo alumnos tienen un orden promedio de aprobación separado (y superior) del otro restante. No sabemos bien cual es la distribución de alumnos en primer cuatrimestre con respecto al segundo, pero si fuera constante a lo largo de los años, esta separación podría explicar bien los dos cuatrimestres. Al menos podríamos decir hay una diferencia con los últimos alumnos en anotarse en las carreras, estos tienen menor tasa de aprobación que los primeros (68%) en anotarse (p<10^-11).



Comparación plan de estudio de computación con el plan de estudio real

La carrera de computación consta de 5 años donde se deben cursar por lo general dos materias por cuatrimestre. En promedio, la diferencia en fechas de inscripción de un cuatrimestre a otro son 6 meses. Por lo cual, si los alumnos siguieran el plan de estudio propuesto la cursada se vería así:



Cada circulo representa una materia, dos materias con el mismo color se deben cursar el mismo cuatrimestre según el plan. Existen flechas entre materias cuando una materia sigue a la otra según el plan y el número  de la flecha corresponde a la cantidad de meses que separan las materias.

Teniendo en cuenta este plan, tomamos varios alumnos de computación (con al menos 15 finales, en total 650) y medimos la mediana de los tiempos para todos los alumnos para cada flecha. De esta manera, tenemos un plan de estudios real poblacional.  

Dibujamos, de la misma forma, solo anotamos los links donde la mediana difiere al menos en 3 meses con el plan de estudios.


El tamaño de los nodos representa  el nivel de distorsión que reciben en cuanto al tiempo que tardan en cursarse. El primer año y medio de carrera los alumnos siguen el plan bastante ordenadamente pero al llegar a métodos numéricos empiezan a cambiarlo. Si se ve el árbol de correlativas (de cubawiki.com.ar), parece lógico que métodos numéricos sea dejado un poco de lado. A su vez también corresponde con el momento en que los alumnos empiezan a conseguir buenos trabajos pues ya tienen un nivel de formación interesante para algunas tareas de la industria. También teoría de lenguajes  recibe alumnos tardíamente, junto con Base de datos y Paradigmas de Lenguajes de Programación. Casi todas estas materias son materias que no habilitan a cursar ninguna otra materia obligatoria (es decir hojas en el árbol de correlatividad) por lo que tiene sentido que sean las más demoradas.