Curso de Iniciación a R

Desde que empecé a adentrarme en el mundo R tengo claro que quiero continuar trabajando en ello y potenciarlo como un skill más. Aunque lleve tiempo y esfuerzo, estoy convencida de que merece la pena ya que se trata de una herramienta que permite enriquecer los análisis que de otra forma no sería posible, ampliando así el espectro y las posibilidades de alcanzar los insights relevantes para el negocio.

Es por ello que, justo un mes antes de irme de vacaciones, acudí al curso de introducción a R en Kschool, y me gustaría aprovechar esta publicación para aportar mis impresiones, comentar lo que me ha gustado y lo que no tanto,  además de otras con las que me he quedado con ganas.



El curso fue impartido por Carlos Gil Bellosta, que para quién no le conozca, se trata de un entusiasta de R que escribe en el blog de Datanalytics pequeños posts todos los días laborables.

Las clases eran principalmente prácticas, de ahí que se hacían en su mayoría amenas. Está bien si vas al curso sin antes haber tocado R, de hecho se empieza instalando el programa aunque obviamente, es recomendable haberse puesto antes con ello para que los inicios no sean tan duros y la interfaz de la herramienta te sea ya familiar.


En las primeras dos clases repasamos las funciones básicas para trabajar con dataframes y vectores. Me pareció acertado priorizar la exposición de dataframes frente a vectores. El hecho de que un dataframe esté compuesto de 2 o más vectores lleva a pensar que la manera orgánica de explicarlo sería al revés, sin embargo, no hay que olvidar que todos nosotros estamos acostumbrados a trabajar con tablas. Sin duda estas primeras clases me sirvieron para afianzar conocimiento y enriquecerlo en algunos casos.


En la siguiente sesión estuvimos conociendo formas de hacer presentaciones en R a través de R markdown y también gráficos dinámicos con Shiny. Mientras lo primero me pareció fácil,  pues es simplemente conocer los símbolos que han de acompañar al texto para que se muestre en el formato que uno busca, la generación de gráficos tipo Shiny fue todo lo contrario: requieren un mayor esfuerzo al tener que generar 2 tipos de código: uno que defina lo que se quiere pintar, y otro que le dice al código HTML cómo lo tiene que mostrar, mientras ambas partes comparten variables comunes.



Sin embargo las clases que más me gustaron fueron aquellas en las que aprendimos funciones para el formateo y tratamiento de los datos. Dicho así no parece muy interesante pero os voy a contar:

Las ocasiones en las que me he puesto a perseguir un objetivo en R, lo que más tiempo me ha llevado ha sido el formateo de los datos: pulirlos y preparados de tal forma que se pueda aplicar el algoritmo que a uno le interesa. De hecho, se comenta que el 80% del trabajo en R se destina al tratamiento del dato.

En este campo se habla del Tidy Data (aconsejo leer el paper v59i10.pdf  publicado por Hadley Wickman). El tidy data se caracteriza por ser un dataframe con una estructura en particular: cada variable es una columna, cada observación es una fila.

Dicha estructura asegura una fácil manipulación para luego poder modelizar y visualizar los datos desde todo tipo de herramientas y funciones mientras que con otras no tan limpias, se convierte en algo no tan fácil. 

Mientras que esta es la típica representación de un dataset

Una tabla en formato "Tidy" sería de la siguiente manera:

Una variable por columna, una observación por fila


Fue uno de los conceptos que más me gustó descubrir, ya que de manera autodidacta no había logrado llegar a comprender, de ahí que fuera muy clarificador.


Existe una razón por la que en diferentes disciplinas, los datos vienen dados (imput) antes de la primera forma que en formato limpio: el formato Tidy no es útil para el 'data entry' : la persona cuyo trabajo es imputar los datos en un sistema de manera manual.

La primera forma reduce duplicidad e implica un menor esfuerzo en comparación con el formato Tidy, que implica generar por cada observación una fila, ... ¡imaginaros esta misma estructura pero con un mayor set de datos!


Para la disciplina que me compete, la analítica web, los datos los tomamos directamente a través de una llamada a la API de Google Analytics - a excepción de ciertos casos en los que queramos trabajar con datos que no estén recogidos en la interfaz-.

A partir de ahí podemos configurar la llamada disponiendo de métricas y dimensiones de tal forma que cada variable sea una columna y así extraer la información directamente en formato de Tidy Data.



Al poder definir la extracción de los datos desde la llamada a la API, quizás el reto no esté en lograr un formato concreto sino en las acciones de filtrado, transformación, agragación y orden, de tal forma que nos permita sacar conclusiones significativas. Y es que, en la mayoría de las ocasiones los datos no están especialmente finos (faltan valores, no están bien estructurados, etc...)


Hay quien opina que la manipulación de datos en R no es un tema relevante y que realmente en lo que hay que centrarse es en conocer el algoritmo que te lleve a la solución del problema de negocio (marketing analytics). Sin embargo,  dándole vueltas he llegado a la conclusión de que el formateo es igual de importante porque... ¿de qué te sirve conocer un algoritmo X si luego no eres capaz de preparar los datos para aplicarlo? 

Y es que al final, para hacer una regresión lineal múltiple, el dataset ha de tener una estructura determinada, igual que para pintar un gráfico concreto, o para aplicar la técnica de inspección de afinidad de productos de la cesta de la compra al igual que para generar una serie temporal. Siempre, para aplicar algo, se requiere un formato concreto y determinado.



Retomando el hilo inicial, quería resaltar un par de comentarios más.

Hubo una sesión en la que estuvimos trabajando en las distintas representaciones gráficas. Fue una clase en la que me quedé con ganas de ver más ya que la tipología de gráficos es muy amplio, y únicamente vimos unos pocos. Además creo que hubiera resultado interesante buscar ejercicios a partir de distintos datasets que lleven a pensar sobre cuál sería la forma gráfica más apropiada o explicativa.


Entre las sesiones que más me emocionaron fueron las de Generación de Mapas e Introducción a la Estadística.

  • Respecto a la primera, me pareció muy divertida y entretenida aunque la motivación venía lastrada en cierta medida por el pensamiento de que seguramente no lo iba a poder aplicar en el trabajo ni en ejercicios focalizados en analítica web. 
  • Y la segunda estuvo verdaderamente interesante: vimos árboles, predicciones, regresiones lineales, clusters,... todo lo que en parte me era familiar y con grandes posibilidades de aplicarlo en el día a día.

Una cosa que si recomiendo para todos aquellos que os animéis a este curso es que os propongáis un proyecto y lo saquéis adelante, apoyándoos en los conocimientos del profesor. Este curso carece de examen o prueba, pero el sacar adelante un problema ayudará a afianzar lo aprendido y a sentir de alguna manera se ha superado con éxito la formación.




En resumen, se trata de un curso en el que se presentan todas las posibilidades de la herramienta. Estamos hablando de un espectro muy amplio de ahí, que cada uno ha de identificar aquello a aplicar en su propia disciplina.

Por ejemplo, mientras mi objetivo es sacar un mayor partido a los datos de Google Analytics, otros compañeros buscaban aprender sobre el tratamiento semántico de los datos ya que su propósito era analizar los datos obtenidos en encuestas, y otros aprender una nueva herramienta con la que poder sustituir a SaS, al ser más más económica y flexible.


Una vez terminado el curso, lo que queda es destinar cada vez más tiempo a ello, seguir trabajando, continuar practicando :)  El "Ponerte con", que es la filosofía que defiende Kschool y con la que tan de acuerdo estoy.

                                                            
                                                "Keep going, keep growing"









Comentarios

Entradas populares de este blog

¿Diseñamos un Dashboard con R?

Profundizando en Google Data Studio

¿Por qué me gusta ser Analista Digital?