Análisis de índices académicos UMC 2019-02

Hecho por Samuel Ochoa, 21/02/2020

La UMC publicó los índices académicos acumulados (IAA) del período 2019-02 el 19 de febrero de 2020. Como desafío y práctica, decidí realizar este análisis estadístico de los índices académicos como una libreta interactiva de Jupyter. El código utiliza Python 3 con las librerías NumPy, Matplotlib y Pandas.

Si no quiere leer todo el documento, puede saltar directamente a las conclusiones.

Obtención y tratamiento de los datos

Los índices académicos fueron publicados como documentos PDF, disponibles en este enlace. No garantizo que el enlace funcione en un futuro. Debido a que los documentos PDF no están en un formato legible para máquinas, utilicé la herramienta Tabula para extraer las tablas de datos como archivos CSV y LibreOffice Calc para cambiar los decimales a puntos en lugar de comas y corregir los errores de conversión (algunas letras en la columna del IAA).

Los archivos CSV resultantes están disponibles aquí:

A continuación se muestra el código en Python para convertir estos archivos CSV a dataframes y series de Pandas para su posterior análisis estadístico:

In [1]:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

# Códigos y nombres de carreras
carreras = {
    'ADM': 'Licenciatura en Administración',
    'INGAMB': 'Ingeniería Ambiental',
    'INGINF': 'Ingeniería Informática',
    'INGM': 'Ingeniería Marítima',
    'TUR': 'Licenciatura en Turismo'
}

# Dataframes originales
dfs = {carrera: pd.read_csv('IAA_' + carrera + '.csv',
                            header = 0, index_col = 0)
       for carrera in carreras.keys()}

# Series de índices académicos solamente
iaa = {carrera: dfs[carrera]['IAA'] for carrera in carreras.keys()}

# Dataframe con los IAA de cada carrera
df_iaa = pd.DataFrame(iaa)

Análisis general

Primero se hace una descripción estadística de la población estudiantil completa. A continuación se crea una función describir_iaa para describir brevemente una o varias series de índices académicos, y se aplica esta función a los IAA de la población estudiantil agrupados en una sola serie de datos:

In [7]:
def contar_reg(serie):
    """Cantidad de estudiantes regulares en la serie de IAA"""
    return serie[serie >= 12].count()

def contar_pro(serie):
    """Cantidad de estudiantes en probatorio en la serie de IAA"""
    return serie[serie < 12].count()

def porcentaje_reg(serie):
    """Porcentaje de estudiantes regulares en la serie de IAA"""
    return contar_reg(serie)*100.0/serie.count()

def porcentaje_pro(serie):
    """Porcentaje de estudiantes en probatorio en la serie de IAA"""
    return contar_pro(serie)*100.0/serie.count()

def moda_max(serie):
    """Mayor valor de la moda de la serie de IAA"""
    return serie.mode().max()


def describir_iaa(df):
    """Descripción estadística de un dataframe con una
       o varias series de IAA."""
    return df.agg([
        # Cantidades: total, regulares, probatorio
        'count', contar_reg, contar_pro,
        # Porcentajes: regulares, probatorio
        porcentaje_reg, porcentaje_pro,
        # IAA máximo y minimo
        'max', 'min',
        # Medidas de tendencia central
        'mean', 'median', moda_max,
        # Medidas de dispersión
        'std', 'kurt', 'skew']).round(2)


def describir_carrera(carrera):
    """Descripción estadística de una sola carrera."""
    return describir_iaa(pd.DataFrame(df_iaa[carrera]))
    
    
# Serie con todos los IAA unidos
iaa_general = pd.DataFrame(pd.concat(iaa.values()))

# Descripción estadística
describir_iaa(iaa_general)
Out[7]:
IAA
count 2910.00
contar_reg 2310.00
contar_pro 600.00
porcentaje_reg 79.38
porcentaje_pro 20.62
max 18.89
min 0.00
mean 13.31
median 13.92
moda_max 14.17
std 2.66
kurt 6.49
skew -2.09

La descripción estadística nos provee la siguiente información, en orden:

  • La cantidad total de estudiantes.
  • La cantidad y porcentaje de los estudiantes regulares y de los estudiantes en probatorio (IAA inferior a 12).
  • El IAA más alto (18.89) y el más bajo (0.00).
  • El promedio (13.31) es el valor al que tienden los índices académicos.
  • La mediana indica el valor central de la distribución, es decir, que el 50% de los IAA está por encima de 13.92 y el otro 50% está por debajo.
  • La moda) es el valor más repetido en la distribución, es decir, que el IAA más común es de 14.17 puntos. Nótese que una distribución de frecuencia puede tener varias modas, porque es posible que haya dos valores que son los más repetidos; en este análisis siempre tomaremos el mayor valor de la moda.
  • La desviación estándar (2.66) cuantifica la variación o dispersión de los datos.
  • El coeficiente de kurtosis normalizado mide la "extremidad de las desviaciones" de la distribución. Como su valor es positivo, la distribución es leptokúrtica, y significa que la distribución tiene más valores atípicos que la distribución normal.
  • El coeficiente de sesgo mide el grado de simetría de la distribución de datos. La asimetría negativa significa que hay más dispersión en los índices académicos por debajo del promedio.

Este análisis global no es muy útil por sí solo, por lo que proseguimos a comparar la distribución de los índices académicos por carrera. A continuación se crea y aplica una función para graficar un histograma de la distribución de los estudiantes por IAA en cada carrera:

In [8]:
def histograma_iaa(titulo,
                   lista_carreras = carreras.keys(),
                   frec_relativa = False,
                   divisiones = 10,
                   pos_leyenda = 'best'):
    """Grafica un histograma de la distribución de IAA
       de las carreras dadas."""
    
    # Preparar gráfica
    fig, ax = plt.subplots()
    ax.grid(axis='y', alpha=0.75)
    ax.set_xlabel('IAA')
    if frec_relativa:
        ax.set_ylabel('Frecuencia relativa (%)')
    else:
        ax.set_ylabel('Frecuencia absoluta')
    ax.set_title(titulo)
    
    # Extraer índices de carreras seleccionadas
    indices_carreras = [iaa[carrera] for carrera in lista_carreras]
    
    # Preparar ponderaciones para el caso de frecuencia relativa
    porcentajes = [carrera.apply(lambda x: 100.0/carrera.size)
                   for carrera in indices_carreras]
    
    # Graficar histograma
    n, bins, patches = ax.hist(
        x = indices_carreras,
        bins = divisiones,
        range = (0,20),
        weights = porcentajes if frec_relativa else None,
        rwidth = 0.95,
        alpha = 0.7,
        label = lista_carreras)
    ax.set_xticks(bins)
    
    # Agregar leyenda y mostrar figura
    ax.legend(loc = pos_leyenda)
    plt.show()
    
def histograma_carrera(carrera, fr = False):
    """Grafica un histograma de la distribución de IAA
       de una sola carrera."""
    histograma_iaa(carreras[carrera],
                   lista_carreras = [carrera],
                   frec_relativa = fr)
    
    
histograma_iaa('Distribución de IAA por carrera',
               pos_leyenda = 'upper left')

Como el histograma muestra magnitudes absolutas, lo principal que se nota es la enorme disparidad entre la cantidad de estudiantes de Ingeniería Marítima y el resto de las carreras. Para poder apreciar mejor las diferencias en la distribución de índices académicos usaremos frecuencias relativas, es decir, compararemos los porcentajes de estudiantes en cada intervalo de IAA por carrera:

In [9]:
histograma_iaa('Distribución de IAA por carrera',
               frec_relativa = True)

Esta gráfica nos permite realizar algunas observaciones preliminares que comprobaremos más adelante:

  • Todas las carreras presentan asimetría negativa, es decir, mayor dispersión por debajo del IAA promedio.
  • En todas las carreras hay más estudiantes regulares que en probatorio.
  • La carrera con la mayor concentración de índices académicos parece ser Licenciatura en Administración.
  • El IAA promedio de Licenciatura en Turismo parece ser más alto que el de las demás carreras.
  • El IAA promedio de Ingeniería Ambiental parece ser más bajo que el de las demás carras.

Los histogramas anteriores son una manera simple de visualizar la distribución de los índices académicos en intervalos. Sin embargo, la manera en que se dividen los datos puede ofuscar la forma real de la distribución.

Para apreciar mejor la distribución real de los datos, tenemos que hallar una aproximación de su función de densidad de probabilidad, la cual desconocemos. Una técnica para lograr esto es la llamada kernel density estimation (KDE) (estimación de densidad del núcleo). En resumen, la técnica consiste en ponderar los datos usando una función positiva llamada kernel (núcleo) y un parámetro positivo llamado ancho de banda que determina la suavidad de la curva.

La librería Pandas provee una función para graficar la KDE de un conjunto de datos usando una función de núcleo Gaussiana y un ancho de banda calculado automáticamente. A continuación se crea y aplica una función para generar este tipo de gráficas para los IAA de las diferentes carreras:

In [10]:
def distribucion_iaa(titulo,
                     lista_carreras = carreras.keys(),
                     promedio = [],
                     mediana = [],
                     moda = []):
    """Grafica la distribución aproximada de IAA
       de las carreras dadas."""
    
    # Preparar gráfica
    fig, axes = plt.subplots()
    
    # Extraer índices de carreras seleccionadas
    indices_carreras = df_iaa.filter(items = lista_carreras)
    
    # Graficar distribución aproximada
    indices_carreras.plot.kde(title = titulo,
                              grid = True,
                              legend = True,
                              xlim = (0, 20),
                              xticks = [2*x for x in range(11)],
                              ax = axes)
    
    # Graficar medidas de tendencia central de cada carrera
    for carrera in promedio:
        mu = indices_carreras[carrera].mean()
        axes.axvline(mu, color = 'r', linestyle = '--',
                     label = f'{carrera}: μ = {round(mu, 2)}')

    for carrera in mediana:
        md = indices_carreras[carrera].median()
        axes.axvline(md, color = 'g', linestyle = '--',
                     label = f'{carrera}: md = {round(md, 2)}')

    for carrera in moda:
        mo = moda_max(indices_carreras[carrera])
        axes.axvline(mo, color = 'b', linestyle = '--',
                     label = f'{carrera}: mo = {round(mo, 2)}')
    
    axes.legend()
    plt.show()
    
def distribucion_carrera(carrera):
    """Grafica la distribución aproximada de IAA
       de una sola carrera."""
    distribucion_iaa(carreras[carrera],
                     lista_carreras = [carrera],
                     promedio = [carrera],
                     mediana = [carrera],
                     moda = [carrera])
    
distribucion_iaa('Distribución de IAA por carrera')

A partir de esta gráfica podemos reiterar y corregir nuestras observaciones preliminares antes de comprobarlas en el análisis por carrera:

  • Todas las carreras presentan asimetría negativa, es decir, mayor dispersión por debajo del IAA promedio.
  • En todas las carreras hay más estudiantes regulares que en probatorio.
  • La carrera con la mayor concentración de índices académicos parece ser Ingeniería Marítima.
  • El IAA promedio de Licenciatura en Turismo parece ser más alto que el de las demás carreras.
  • El IAA promedio de Ingeniería Ambiental parece ser más bajo que el de las demás carras.

Licenciatura en Administración (ADM)

Lo primero que hacemos es mostrar una previsualización de la tabla de datos, con los cinco índices académicos más altos y los cinco más bajos:

In [11]:
dfs['ADM'].sort_values(by = 'IAA', ascending = False)
Out[11]:
C.I Apellidos y Nombres IAA Condición
Nro
362 28132377 MORILLO Samuel 17.25 REG
42 28305726 BENITEZ HERRERA Misael Andrés 17.00 REG
517 25443436 SOLE LOMBANO Jurannys Del Valle 16.95 REG
366 15544663 NARVAEZ BELLORIN Alexander Jose 16.90 REG
202 20782742 GONZALEZ NEGRIN Kelwis Lewis 16.79 REG
... ... ... ... ...
191 27904889 GOITIA DELGADO Greimar Alexandra 0.70 PRO
200 27042909 GONZALEZ MARTINEZ Luis Sandro 0.60 PRO
439 27692395 RANGEL VASQUEZ Yesimar Del Valle 0.30 PRO
270 28013315 LEÓN CALDERÓN Jesús Alejandro 0.15 PRO
505 19914546 SANTAELLO POLEO Maria Alejandra 0.00 PRO

574 rows × 4 columns

Segundo, una breve descripción estadística de esta tabla:

In [12]:
describir_carrera('ADM')
Out[12]:
ADM
count 574.00
contar_reg 441.00
contar_pro 133.00
porcentaje_reg 76.83
porcentaje_pro 23.17
max 17.25
min 0.00
mean 13.06
median 13.98
moda_max 15.07
std 2.99
kurt 4.94
skew -2.06

Luego, un histograma del número de estudiantes por IAA en diez subintervalos:

In [13]:
histograma_carrera('ADM')

Por último, la distribución aproximada de los IAA y sus medidas de tendencia central:

In [14]:
distribucion_carrera('ADM')

Ingeniería Ambiental (INGAMB)

Lo primero que hacemos es mostrar una previsualización de la tabla de datos, con los cinco índices académicos más altos y los cinco más bajos:

In [15]:
dfs['INGAMB'].sort_values(by = 'IAA', ascending = False)
Out[15]:
C.I Apellidos y Nombres IAA Condición
Nro
25 20562293 DURAN ROBLES Gian Carlos 17.63 REG
83 26217878 PATRIZ VILLEGAS Jenifer Adriana 16.80 REG
28 27882088 ESPINA BRUCE Dainella Josbeth 16.60 REG
70 25915097 MENDOZA BENITEZ Oriana Coromoto 16.48 REG
114 26465658 SANTAELLA NAVARRO Jennifer Beatriz 16.47 REG
... ... ... ... ...
40 28184374 GONCALVES GABRIEL Hamil Gabriel 5.35 PRO
42 30170198 GONZALEZ MARTINEZ Katerin Alexandra 2.15 PRO
50 28313974 GUILLEN LOZANO Brencelys Nazareth 0.30 PRO
110 27487439 SALCEDO MONASTERIO Jean Franco Daniel 0.24 PRO
73 29743729 MONTILLA GARCIA Ramses Jesus 0.00 PRO

130 rows × 4 columns

Segundo, una breve descripción estadística de esta tabla:

In [16]:
describir_carrera('INGAMB')
Out[16]:
INGAMB
count 130.00
contar_reg 91.00
contar_pro 39.00
porcentaje_reg 70.00
porcentaje_pro 30.00
max 17.63
min 0.00
mean 12.48
median 13.20
moda_max 14.21
std 3.41
kurt 2.81
skew -1.54

Luego, un histograma del número de estudiantes por IAA en diez subintervalos:

In [17]:
histograma_carrera('INGAMB')

Por último, la distribución aproximada de los IAA y sus medidas de tendencia central:

In [18]:
distribucion_carrera('INGAMB')

Ingeniería Informática (INGINF)

Lo primero que hacemos es mostrar una previsualización de la tabla de datos, con los cinco índices académicos más altos y los cinco más bajos:

In [19]:
dfs['INGINF'].sort_values(by = 'IAA', ascending = False)
Out[19]:
C.I Apellidos y Nombres IAA Condición
Nro
180 27225685 OCHOA PALACIO Samuel David 18.89 REG
296 27042926 VILCHEZ DOMINGUEZ Omar Enrique 17.97 REG
144 29777971 MARTÍNEZ CABRERA Oriana Estefania 17.95 REG
191 28132505 OVALLES VERA Liz Aneth 17.23 REG
63 25561417 DI LORENZO VÉLEZ Enrique Gabriel 17.22 REG
... ... ... ... ...
301 28013843 YURDEN RADA Yondri José 1.95 PRO
223 31291035 RAMIREZ CARTAYA Ivan Dario 0.10 PRO
201 26647800 PARRA UGUETO Ulices Francisco 0.10 PRO
250 27441618 ROMERO MARCANO Anotnio Jose 0.10 PRO
23 28305410 BOLIVAR CONTRERAS Jose Alberto 0.10 PRO

304 rows × 4 columns

Segundo, una breve descripción estadística de esta tabla:

In [20]:
describir_carrera('INGINF')
Out[20]:
INGINF
count 304.00
contar_reg 225.00
contar_pro 79.00
porcentaje_reg 74.01
porcentaje_pro 25.99
max 18.89
min 0.10
mean 13.08
median 13.73
moda_max 15.34
std 2.87
kurt 5.38
skew -1.85

Luego, un histograma del número de estudiantes por IAA en diez subintervalos:

In [21]:
histograma_carrera('INGINF')

Por último, la distribución aproximada de los IAA y sus medidas de tendencia central:

In [22]:
distribucion_carrera('INGINF')

Ingeniería Marítima (INGM)

Lo primero que hacemos es mostrar una previsualización de la tabla de datos, con los cinco índices académicos más altos y los cinco más bajos:

In [23]:
dfs['INGM'].sort_values(by = 'IAA', ascending = False)
Out[23]:
C.I Apellidos y Nombres IAA Condición
Nro
910 28052786 MASTROMATTEO Domingo Antonio 18.28 REG
737 28496411 KHAWAM BATMAN Christian Jesus 17.87 REG
779 26994119 LINARES RIVAS Osmel Adonis 17.42 REG
395 26885643 DÍAZ PIÑA Isaac José 17.33 REG
1331 27663773 ROMERO GOMEZ Jesus Alexis 17.21 REG
... ... ... ... ...
1346 27693451 RUIZ CANO Keneddy Joseph 0.75 PRO
446 28340776 FERMÍN VELÁSQUEZ Clay Miguel 0.52 PRO
353 27858946 DARIAS OJEDA Marco Antonio 0.52 PRO
482 28076241 GALLARDO GARCÍA Angel David 0.52 PRO
1072 27079410 PACHECO CABELLO Reivielis Coromoto 0.00 REG

1639 rows × 4 columns

Segundo, una breve descripción estadística de esta tabla:

In [24]:
describir_carrera('INGM')
Out[24]:
INGM
count 1639.00
contar_reg 1322.00
contar_pro 317.00
porcentaje_reg 80.66
porcentaje_pro 19.34
max 18.28
min 0.00
mean 13.28
median 13.83
moda_max 14.17
std 2.23
kurt 8.74
skew -2.34

Luego, un histograma del número de estudiantes por IAA en diez subintervalos:

In [25]:
histograma_carrera('INGM')

Por último, la distribución aproximada de los IAA y sus medidas de tendencia central:

In [26]:
distribucion_carrera('INGM')

Licenciatura en Turismo (TUR)

Lo primero que hacemos es mostrar una previsualización de la tabla de datos, con los cinco índices académicos más altos y los cinco más bajos:

In [27]:
dfs['TUR'].sort_values(by = 'IAA', ascending = False)
Out[27]:
C.I Apellidos y Nombres IAA Condición
Nro
199 25575357 RODRIGUEZ MENESES Krimildha Anabella Shereshade 18.30 REG
22 26180738 BLEQUETT VERNA María Laura 18.11 REG
33 13044740 CAMPOS RODRIGUEZ Carmen Lourdes 18.08 REG
61 24272643 DELGADO GONZÁLEZ Yrene Karina 18.06 REG
256 28149706 VENTURA DIAZ Gabriela Anais 17.98 REG
... ... ... ... ...
151 29973267 MONTILLA PEREZ Mariel Patricia 1.13 PRO
173 30022605 PEÑA RODRIGUEZ Osgrey Ayari 0.35 PRO
178 27774408 PEREZ MARTINEZ Yorbis Jesus 0.00 PRO
175 28184655 PERES DIAZ Jekcsylina Yamali 0.00 PRO
165 27859374 OROPEZA SANDREA Eliany Daniela 0.00 PRO

263 rows × 4 columns

Segundo, una breve descripción estadística de esta tabla:

In [28]:
describir_carrera('TUR')
Out[28]:
TUR
count 263.00
contar_reg 231.00
contar_pro 32.00
porcentaje_reg 87.83
porcentaje_pro 12.17
max 18.30
min 0.00
mean 14.72
median 15.71
moda_max 16.70
std 3.23
kurt 7.66
skew -2.56

Luego, un histograma del número de estudiantes por IAA en diez subintervalos:

In [29]:
histograma_carrera('TUR')

Por último, la distribución aproximada de los IAA y sus medidas de tendencia central:

In [30]:
distribucion_carrera('TUR')

Comparación de datos, interpretación y conclusiones

A continuación se presentan la distribución aproximada de los IAA por carrera (de nuevo) y una tabla con la descripción estadística de cada carrera:

In [34]:
distribucion_iaa('Distribución de IAA por carrera')
In [35]:
describir_iaa(df_iaa)
Out[35]:
ADM INGAMB INGINF INGM TUR
count 574.00 130.00 304.00 1639.00 263.00
contar_reg 441.00 91.00 225.00 1322.00 231.00
contar_pro 133.00 39.00 79.00 317.00 32.00
porcentaje_reg 76.83 70.00 74.01 80.66 87.83
porcentaje_pro 23.17 30.00 25.99 19.34 12.17
max 17.25 17.63 18.89 18.28 18.30
min 0.00 0.00 0.10 0.00 0.00
mean 13.06 12.48 13.08 13.28 14.72
median 13.98 13.20 13.73 13.83 15.71
moda_max 15.07 14.21 15.34 14.17 16.70
std 2.99 3.41 2.87 2.23 3.23
kurt 4.94 2.81 5.38 8.74 7.66
skew -2.06 -1.54 -1.85 -2.34 -2.56

A partir de estos datos podemos realizar las siguientes observaciones:

  • La carrera con el mayor número de estudiantes es Ingeniería Marítima, con 1639 estudiantes que representan el 56.32% de la población estudiantil. La carrera con el menor número de estudiantes es Ingeniería Ambiental, con 130 estudiantes, equivalente al 4.47% de la población.
  • La carrera con el menor porcentaje de estudiantes en probatorio es Licenciatura en Turismo (12.17%), mientras que Ingeniería Ambiental tiene el mayor porcentaje (30%).
  • El promedio de los IAA de Licenciatura en Turismo (14.72) es el más alto de todas las carreras, debido al bajo número de estudiantes en probatorio y a que sus IAA en general son los más altos (ver mediana y moda). Por contraparte, Ingeniería Ambiental tiene el promedio más bajo (12.48) por las razones opuestas.
  • La mediana de los IAA de Licenciatura en Turismo (15.71) es la más alta de todas las carreras, por el bajo número de estudiantes en probatorio, principalmente. Ingeniería Ambiental tiene la mediana más baja (13.20) por las razones opuestas.
  • La moda de los IAA de Licenciatura en Turismo (16.70) es la más alta de todas las carreras, lo que significa que su índice académico más común es mayor que el de las demás. Por contraparte, Ingeniería Marítima tiene la moda más baja (14.17).
  • La desviación estándar de los IAA de Ingeniería Ambiental (3.41) es la mayor de todas las carreras, lo cual indica que tiene más dispersión o varianza en sus IAA que las demás. En cambio, Ingeniería Marítima tiene la desviación estándar más pequeña (2.23), indicando una mayor concentración de índices alrededor de su valor promedio.
  • La distribución de los IAA de todas las carreras es leptokúrtica, es decir, que todas tienen un coeficiente de kurtosis normalizado positivo. Esto indica que tienen más valores atípicos o desviaciones extremas que la distribución de probabilidad normal. El coeficiente más alto lo tiene Ingeniería Marítima (8.74), mientras que el más bajo lo tiene Ingeniería Ambiental (2.81).
  • Todas las carreras tienen un coeficiente de sesgo negativo, lo cual indica asimetría negativa, es decir, que presentan más dispersión en los índices académicos inferiores promedio que en los índices superiores a este. Los IAA de Licenciatura en Turismo presentan la asimetría negativa más pronunciada (-2.56), mientras que los IAA de Ingeniería Ambiental tienen la asimetría negativa menos pronunciada (-1.54).

Entonces, se puede concluir que:

  • Las carreras de Licenciatura en Administración e Ingeniería Informática presentan una distribución de IAA bastante representativa de la población estudiantil completa, puesto que sus porcentajes de estudiantes regulares y en probatorio, así como sus medidas de tendencia central y de dispersión son muy cercanas a las obtenidas en el análisis general.
  • La distribución de los IAA de Ingeniería Ambiental se caracteriza por la alta proporción de estudiantes en probatorio, así como los índices académicos más bajos y dispersos en general. Una posible explicación es que haya un gran número de estudiantes abandonando la carrera.
  • Los IAA de Ingeniería Marítima presentan un promedio cercano al de la población general, pero con una mayor concentración de índices cerca de dicho promedio. Posiblemente indique la existencia de asignaturas en las que es difícil obtener calificaciones altas, o que gran parte de los estudiantes no trata de maximizar sus calificaciones más allá de lo requerido para aprobar.
  • La distribución de los IAA de Licenciatura en Turismo se caracteriza por tener la menor proporción de estudiantes en probatorio, los índices académicos más altos en general, y la segunda mayor concentración de dichos índices alrededor de su valor promedio. Posiblemente se deba a la ausencia casi total de asignaturas numéricas en su pénsum, lo cual es simplemente un reflejo de la naturaleza de la carrera, no un defecto.