¿Realmente estamos escuchando al mercado laboral?

Esta pretende ser una breve entrada que invite a la reflexión a las autoridades académicas sobre una simple pregunta ¿Realmente estamos escuchando al mercado laboral? pues a partir de este cuestionamiento sabremos si estamos dotando a nuestros estudiantes con las herramientas correctas y suficientes para entregar a un buen profesional que el mercado vaya a absorber (dejo fuera tecnicismos del desempleo estructural). 

Para entender este tema tomé datos de el sitio wehttp://elempleo.com/cr/ofertas-trabajo disponibles para julio 2018 y extraje todos los anuncios de las ofertas de empleo, lo que podría entenderse como la oferta de trabajo o la demanda por mano de obra.  Este  ejercicio lo realicé para los ofertas de empleo sólo de Costa Rica, por lo cual no es de extrañar que las solicitudes analizadas exijan un alto perfil profesional, es importante tener en cuenta que existe, un elevado nivel de calidad de empresas que se anuncian en estos sitios, con esto en mente, veamos si han sabido "escuchar al mercado laboral".

Empezamos con la pregunta natural ¿Qué buscan las empresas que se anuncian en el portal elempleo.com? Para responder eso, hubo que plantearse los siguientes objetivos
  • Extraer todos los anuncios de un portal web para determinar qué demandan las empresas en términos de servicios informáticos y gestión de datos.
  • Realizar una búsqueda de patrones y términos recurrentes para resumirlos en un wordcloud.
  • Realizar tablas y gráficos de frecuencias para identificar los términos más requeridos por las empresas
  • Realizar un análisis de asociación múltiple entre términos para complementar los resultados anteriores 

Un a vista genérica lo que veríamos en esta web de ofertas de empleo es la siguiente:


Metodolología de análiisis

  • Una vez descargado todo el contenido de la web, se procedió a extraer el texto de interés.
  • Se uniformó para obtener todo en minúsculas.
  • Se eliminó puntuación, espacios extras y las “stopwords” (palabras “vacías) 
  •  Así, el texto de análisis quedó de la siguiente manera.


Wordcloud (Nube de palabras)

Para interpretar ese resultado se debe tomar en cuenta que:

  • Se consideraron las 150 palabras más frecuentes
  • El tamaño de cada palabra indica su frecuencia dentro del texto, mientras más grande, más frecuente es.
  • Los colores indican grupos de palabras con mismas probabilidades de ocurrencia


 Top 20 términos deseados


A continuación se muestra el top 20 de términos más buscados por las empresas. Se observa que lo principal corresponde a: experiencia, datos, apoyo, equipos (de trabajo) y orientación a negocios. 



Asociaciones de términos

La asociación de términos consiste en emparejar las palabras claves con otras con las que estén más relacionadas dada una métrica de asociación, en este caso, el coeficiente de correlación.

A continuación se muestra el resultado de las asociaciones para el términio "Information"

  • Los resultados indican la (co)relación entre cada término la y la palabra en cuestión.  Por ejemplo, con la palabra información la más relacionada es adaptabilidad , las empresas requieren información dinámica, no estática. 
  • Para “data”, los términos más frecuentes y de mayor cercanía son: extract, analytics, better y analysis.
  • De lo anterior, se puede concluir que el mercado necesita extracción de datos, que éstos sean mejores y se apliquen analíticas  que permitan su análisis.
  • Para el término “business” se sigue la misma lógica para determinar lo que requiere el mercado.

Finalmente, con esto es ha hecho un pequeño esfuerzo para caracterizar la demanda de trabajo en nuestro vecino país La pregunta sigue abierta: ¿estamos escuchando al mercado? Si bien el clamor del mercado no llegado como gritos a las autoridades, sí han llegado susurros a la Universidad de Costa Rica que organizarán para los días 19 y 20 de noviembre de 2020 un excelente simposio ateniendo a los nuevos retos  del mercado y a cómo esta casa de estudios lo ha escuchado. Vale señalar que tuve la dicha de ser parte del equipo expositor. Aquí los detalles: http://simposioucrgte.avotz.com/







Una breve explicación sobre el pipe operator en R

Una breve explicación sobre el pipe operator en R

Este post intenta servir como una breve nota explicativa de qué es el pipe operator en R, por qué usarlo y, sobre todo, cuándo usarlo.

¿Qué es el pipe operator? Es un operador que forma parte del paquete magrittr, y su símbolo es %>%, este permite “encadenar” operaciones en el sentido que el resultado de una operación anterior se convierta en el input de la siguiente operación.

Por ejemplo, podríamos hacer lo siguiente:

  1. Crear un vector con números consecutivos desde el 1 hasta el 10
  2. Tomar el logaritmo natural de cada uno de esos números
  3. Sacar el promedio de ese vector
  4. Tomarle la raíz cuadrada

Hay muchas alternativas para ello, podríamos, por ejemplo ir creando un objeto por cada paso:

x <-  1:10
logx <- log(x)
meanlogx <- mean(logx)
sqrt(meanlogx)
## [1] 1.229

Podríamos hacerlo en una sola línea anidando todas las funciones…

sqrt(mean(log(1:10)))
## [1] 1.229

… donde la lectura natural de izquierda a derecha sería leer de forma invertida los pasos del ejemplo, es decir, sería algo como: aplicamos la raíz cuadrada a la media del logaritmo natural de los valores consecutivos desde el 1 hasta el 10. Si bien se entiende, no es una lectura natural puesto que estamos invirtiendo el orden, ya que empezamos a leer desde el final hasta el inicio.

En este contexto es donde interviene el pipe operator y la respuesta a la pregunta ¿por qué usarlo? se evidencia en la facilidad de lectura del código que se acopla con las instrucciones y da una conciliación natural entre el código y el lenguaje natural. Es decir, que las cuatro instrucciones anteriores se pueden ejecutar “encadenando” los pasos, ya que cada paso toma el resultado del paso inmediato anterior, así podríamos escribir:

library(magrittr)
1:10 %>% 
  log() %>% 
  mean() %>% 
  sqrt()
## [1] 1.229

Este código podría leerse de la siguiente manera:

  1. primero creo un vector de números consecutivos desde 1 hasta 10, luego
  2. aplico logaritmo natural, luego
  3. tomo el promedio, luego
  4. saco raíz cuadrada

Como podrá notar el lector, este operador de nombre exótico “pipe operator” puede interpretarse como un “luego” o “después” a la hora de leer el código. Notará también que ahora existe, además de una mayor facilidad de lectura, una coincidencia exacta en el orden de aplicación de funciones y en el orden de aparición de las instrucciones, no quiere decir que las otras alternativas tengan orden incorrecto, sino que se facilita la comprensión del código cuando se “traduce” a lenguaje natural (el hablado).

Finalmente, ¿cuándo usar este operador? Pues la respuesta es cuando queremos darle mayor claridad a nuestro código con la finalidad de facilitar la lectura, sobre todo cuando vamos a compartirlo con otras personas, así podrán seguir con mayor facilidad lo que nuestros códigos hacen. Agregaré una última razón al por qué usarlo: porque, las nuevas tendencias de uso de R, basado en el desarrollo y “filosofía” del tidyverse promovido por R Studio apuntan a que esta es la forma natural de escritura moderna en R y muchos posts, foros y sitios de consulta ofrecen este nuevo “acento” cuando se habla R.

BONO: para obtener el pipe operator en R Studio use Ctrl + Shift + M

Más información en: