Analizando outliers con SofíaXT

Eduardo Mexia
MCD-UNISON
Published in
9 min readDec 12, 2020

SOFIAXT es una plataforma educativa web que permite a sus alumnos aprender matemáticas de una manera divertida y autodidacta. Este año, un grupo de 35 escuelas del país solicitaron que se aplicaran dos exámenes de diagnóstico a sus alumnos por medio de la plataforma. La empresa facilitó 15,662 resultados de estudiantes para que puedan ser utilizados en este ejercicio. Las evaluaciones se llevaron a cabo desde 20 localidades del país, la mayoría urbanas y algunas en zonas rurales. Cada examen tiene 50 reactivos y los usuarios no tienen límite de tiempo para hacerlo.

La actividad que se detalla en esta publicación consiste en limpiar y analizar los datos, detectar valores atípicos mediante diversas técnicas y buscar alguna explicación de ellas. Para su realización, los datos fueron anonimizados y la información de las escuelas, localidades y alumnos, han sido cambiadas.

A continuación se realiza una descripción breve de las variables de nuestro set de datos:

  • Estudiante: id del estudiante que realizó el examen
  • Escuela: id de la escuela a la que pertenece el alumno
  • Ciudad: ciudad de la escuela
  • Población: si la ciudad está ubicado en una zona urbana o rural (10,000 habitantes o menos)
  • Grupo: grupo al que pertenece el alumno
  • Examen: materia del examen: español o matemáticas.
  • Calificación: del 0 a 10
  • FechaComenzado: fecha y hora en la que el usuario abrió por primera vez el examen.
  • FechaTerminado: fecha y hora en la que el usuario envió el examen.
  • Duración: suma del tiempo en segundos que duró el alumno en resolver todos los reactivos
  • IdEvaluación: identificador del examen contestado

Cada renglón corresponde a un examen contestado por un alumno, por lo que por un mismo alumno puede tener 2 registros: uno para el de matemáticas y otro para el de español. Si la columna Calificación, FechaTerminado y Duración son iguales a null, quiere decir que el alumno inició el examen pero no lo terminó.

EDA

El paso inicial para cualquier proyecto de datos es el análisis exploratorio de datos (EDA, por sus siglas en inglés), el cual nos permite tener una idea general de la información y las posibles hipótesis que se pueden formular a partir de ella.

La tabla de datos proporcionada cuenta con 11 variables (columnas) y 15,662 entradas (renglones).

Al agrupar por variable, se encuentra que según el tamaño de la población hay 14,232 exámenes de poblaciones urbanas y 1,430 de poblaciones rurales. A su vez, por tipo de exámenes, se tienen 7,850 de matemáticas y 7,812 de español.

En cuanto a las calificaciones la máxima es de 10 y la mínima de 0, con un promedio de 6.4. A su vez, la máxima duración de un alumno para hacer un examen fue de 23,754 segundos (es decir 6 horas con 36 minutos), mientras que la mínima fue de 17, con un promedio de 4,408 segundos (1 hora con 13 minutos).

A continuación se presenta un gráfico donde se plasma cada uno de los exámenes según su calificación, duración, tipo de población y tipo de examen, para una mejor visualización de ellos.

El conjunto de datos contiene 332 registros sin FechaTerminado, Calificación o Duración; puesto que éstas últimas dos variables son de interés para desarrollo de este proyecto se tomó la decisión de descartar los registros por completo. La falta de datos en estos registros se debe a que, en ocasiones, los alumnos abren el examen pero no lo finalizan.

Posteriormente, se calculó la cantidad de exámenes de cada materia por persona; el resultado esperado es que cada estudiante tuviera una evaluación de matemáticas y una de español; sin embargo, 5 estudiantes no cumplen con este punto; a continuación, se describen las incidencias:

  • 2BC819E5 dos exámenes de español con diferente calificación
  • 30494ABB tiene dos exámenes de cada materia, con diferente grupo: el alumno estaba inscrito en dos grupos en ese momento, por lo que al momento de exportar los datos, se duplicaron los resultados por cada grupo. En ese caso se podría quitar cualquiera de los resultados de un grupo, ya que son los mismos.
  • 459B3C73 tiene dos exámenes de español, misma calificación, diferente hora de inicio: cómo tiene la misma calificación, se pudiera seleccionar solo un registro y descartar el siguiente.
  • DF7C3ABA tiene dos exámenes de español, misma calificación, diferente hora de finalizado.

Los 10 registros que presentan incidencias se recomienda sean descartados. Los casos 2BC819E5 y DF7C3ABA serán enviados al equipo de SofíaXT, ya que requieren más tiempo para analizarlo a detalle para poder analizar el por qué este comportamiento.

Calificación por materia

La calificación promedio de matemáticas y español es 5.98 y 6.27, respectivamente. La gráfica muestra que hay más varianza en el examen de matemáticas; específicamente, la desviación estándar de esta materia es de 2.16 y la de español es 1.81. Se observa que en matemáticas la calificación tiene sesgo a la izquierda; esto indica que

Se realizaron pruebas Lilliefors y Ji cuadrada de bondad de ajuste; ambas rechazan normalidad. Se muestran los histogramas y gráficas Q-Q Plot, en ellos puede comprobarse de manera visual que, principalmente en matemáticas, la distribución normal no es lo más adecuado. Por otro lado, un F test muestra que el cociente de varianzas pertenece al intervalo [1.355475 1.482033] con un 95% de confianza; es decir, se rechaza la homocedasticidad. Al no cumplirse estos supuesto, no fue posible realizar una ANOVA en una dirección para probar diferencia de medias.

IDENTIFICACIÓN DE OUTLIERS

El paquete de R “dlookr” provee herramientas que permiten el diagnóstico de los datos y proveer información y visualización acerca de valores perdidos y outliers, para entender mejor su distribución. De este paquete, se utilizan las funciones dlookr::diagnose_outlier, que identifica los outliers y muestra información estadística de los mismos, y dlookr::plot_outlier, la cual muestra 4 gráficos de distribución, para identificación rápida de los outliers, y analizar cómo se distribuyen las observaciones en caso de eliminarlos. Los gráficos son:

  • Gráfico de cajas con outliers
  • Gráfico de cajas sin outliers
  • Histograma con outliers
  • Histograma sin outliers

Utilizando esta herramienta, se analizó la variable Duraciónsegundos en varias etapas, la primera con los datos en general, y la segunda según el tipo de examen realizado:

Todos los exámenes

Al realizar el análisis de todos los datos de DuracionSegundos, se detectaron 198 outliers, los cuales presentan una media de 11,922 segundos (3 horas y 19 minutos). Al eliminar los outliers del set de datos, la media pasa de 4,408 segundos (1 hora con 13 minutos) a 4,311 segundos (1 hora con 12 minutos), una reducción de 2.2 por ciento. Los gráficos generados presentan este cambio en la media a través de los gráficos de caja y el cambio en la distribución de los datos a través del histograma.

Español

Mediante el análisis de DuracionSegundos referentes a los exámenes de español, se obtienen 128 outliers, los cuales presentan una media de 9863 segundos (2 horas y 44 minutos). Al eliminar los outliers del set de datos, la media pasa de 3770 segundos (1 hora con 3 minutos) a 3667 segundos (1 hora con 2 minutos), una reducción de apenas 3 segundos.

Matemáticas

Por último, en el análisis de la duración de los exámenes de matemáticas, se obtuvieron 83 outliers, los cuales presentan una media de 13,024 segundos (3 horas y 37 minutos). Al eliminar los outliers del set de datos, la media pasa de 5043 segundos (1 hora con 24 minutos) a 4956 segundos (1 hora con 23 minutos), una reducción 1.7 por ciento.

Del análisis se puede concluir que los outliers detectados al realizar el análisis agregado de los dos tipos de exámenes tienen un mayor impacto en la media, que al separar los tipos de exámenes en dos subdatasets. Respecto a recomendar su eliminación, la plataforma no tiene límite de tiempo por lo que se deberá hacer un análisis detallado de los casos clasificados como outliers para tomar una decisión más informada.

ITZEL

A continuación, se decidió utilizar Python para el análisis de estos datos con las librerías de numpy y pandas para el análisis y matplotlib para la graficación, primeramente, lo que se hizo fue una limpia de los datos perdidos o nulos (‘n/a’) para ser convertidos a 0 y poder ser convertida la columna entera a valores flotantes.

Después se utilizó el método describe() de pandas para calcular las estadísticas básicas de las columnas numéricas y con estas basar el siguiente paso del análisis de outliers y la graficación

Resultados:

Se convirtieron los valores de la duración en segundos a horas para que al momento de graficar las escalas entre las variables a comparar de calificación y tiempo pudieran verse más adecuadamente.

Detección de anomalías

Para encontrar las anomalías se creó un método en donde se reciben los datos y la columna a analizar, en este se calcula la media de la columna y la desviación estándar, con esto se calculan los límites inferior y superior multiplicando la desviación estándar por dos para después restar o sumar a la media. Cada dato que se encontraba como una anomalía se guarda para después ser eliminado de la data set original.

Código:

Después se graficó primeramente los valores con los outliers incluidos:

Se puede observar que se tiene una mayor cantidad de outliers en la variable del tiempo, mientras que en la calificación se ven más los valores cercanos al 0.

Como parte de la limpieza del dataset, se tomaron las entradas con anomalías que fueron encontradas y se fueron eliminando.

Código:

Y, por último, se graficaron los resultados después de la limpieza:

ARLING

Se encontraron calificaciones iguales a cero y exámenes cuya duración fue de escasos minutos; se concluyó que estos registros no se eliminarán debido al contexto escolar presente en el proceso.

EDUARDO

En las siguientes gráficas se busca identificar valores atípicos agrupándolos por tipos de población.

En este diagrama de cajas, se graficaron las calificaciones de los exámenes agrupados por materia y tipo de localidad. A simple vista, se puede observar que las calificaciones en localidades urbanas son mejores que en las rurales. Así mismo, se identificaron algunos valores atípicos en la materia de español en las áreas urbanas.

En este diagrama se graficó la duración en minutos de los exámenes agrupados por materia y tipo de población. Se aprecia que en general las medianas de duración en escuelas urbanas son mayores que en las de zonas rurales. También se observan valores atípicos en todos los casos, pero, estas predominan más en zonas urbanas que en las rurales.

En este gráfico se agruparon los resultados por calificación (redondeo la calificación hacia arriba) y se encontraron valores atípicos de duración en el examen en casi todos los casos. Aquí se aprecian dos casos particulares de calificaciones 8 y 9 en el cual la duración de exámenes es muy corta, los cuales llaman mucho la atención.

Análisis de outliers encontrados

En la siguiente tabla se enumeran algunos valores atípicos encontrados y se revisó con la empresa para obtener información adicional de cada caso.

Conclusiones

La detección de outliers es una parte importante dentro del procesamiento de datos ya que pueden representar errores, límites o puntos de interés, para la detección de estos se pueden utilizar múltiples métodos así como lenguajes de programación. El ejercicio del presente artículo permitió el explorar distintos métodos de detección, así como discutir y tomar decisiones respecto a los outliers identificados, además la experiencia misma para la empresa que proporcionó los datos permite identificar por un lado a qué se deben éstos, si hay posibles trampas por parte de los alumnos, y por otro posibles mejoras a los métodos de aplicación de examen, como un límite de tiempo en su caso.

Colaboradores

Eduardo Mexia

Luis Armando Moreno

Itzel Vigil

Arling Vázquez

--

--

Eduardo Mexia
MCD-UNISON

.NET Web Developer at SofíaXT, Data Science student