Buenos días y buenas tardes. Estoy aquí para presentar el proyecto de investigación «Análisis de las tendencias musicales del siglo XXI mediante análisis de sentimiento y texto» en la Cumbre JMP Discovery. Mi nombre es Srichandrika Gadde y me acompaña mi compañera de investigación, Delaney Carroll. Somos estudiantes de posgrado de la Universidad Estatal de Oklahoma, donde cursamos la carrera de Análisis de Negocios y Ciencia de Datos.
Este proyecto se realizó como parte de un curso de posgrado en la Universidad Estatal de Oklahoma. Su objetivo fue analizar el sentimiento y las características textuales de las letras de las canciones para identificar cambios en las tendencias musicales a lo largo del tiempo, así como determinar qué características influyen en el éxito comercial de las canciones. Para este proyecto, utilizamos JMP Pro 18 Student's Edition. El flujo de trabajo fue bastante estándar: preprocesamos los datos para prepararlos para el análisis. Limpiamos algunas columnas y realizamos imputaciones (lo explicaré en breve). Luego, analizamos las letras, incluyendo el sentimiento y el texto, y posteriormente realizamos un análisis exploratorio de datos (EDA) para identificar cambios y tendencias. Finalmente, construimos modelos predictivos para predecir características de éxito comercial como la popularidad y la permanencia en las listas de éxitos. Por último, realizamos la validación.
Un breve resumen de estos datos. Hemos obtenido nuestros conjuntos de datos de Kaggle y estamos analizando la lista Hot 100 de Billboard, un referente en la industria musical para medir el éxito de las canciones en Estados Unidos. Utilizamos tres conjuntos de datos principales: la lista semanal de Billboard, las funciones de audio de Spotify y las letras de las canciones de la lista Hot 100 de Billboard entre 2020 y 2022. Combinamos estos tres conjuntos de datos para explorar e identificar cambios y tendencias. Esta es la base de nuestro análisis para determinar las tendencias musicales presentes en las canciones más populares.
En el preprocesamiento de datos, limpiamos algunas columnas de texto (nombres de canciones y artistas) con Python para homogeneizarlas, lo que facilita la fusión de nuestros conjuntos de datos. Luego, identificamos algunos datos faltantes (registros faltantes en algunas características de audio) que imputamos mediante imputación de media con JMP. Finalmente, aplicamos ingeniería de características a algunas variables, como el total de semanas en listas, las posiciones máximas y el top 10, entre otras. Explicaremos en detalle estas variables en breve. Eso fue todo el preprocesamiento de datos.
Ahora comenzamos con el análisis de las letras. En esta fase, buscamos responder preguntas como: ¿Cómo cambió el sentimiento o la complejidad lírica entre 2000 y 2022? También nos preguntamos: ¿Cómo evolucionaron los géneros y las tendencias a lo largo de los años? Para este análisis, utilizamos scripts de Python en JMP para realizar tanto el análisis de sentimiento como el de texto. En el análisis de sentimiento, usamos Vader, que calcula puntuaciones de sentimiento (positivas y negativas). Es un léxico, una herramienta de análisis de sentimiento basada en reglas que nos ayuda a identificar el sentimiento general de un texto. Lo usamos para identificar el sentimiento de las letras. Creamos cuatro características: Vader positivo, Vader negativo, Vader neutro y Vader compuesto.
La siguiente parte es el análisis de texto. En esta, también creamos cuatro características: TTR, Hapax Legomena, Densidad Léxica y Complejidad Lírica. El TTR es básicamente el número de palabras únicas respecto al total de palabras. Hapax cuenta cuántas palabras aparecen solo una vez en el texto. La Densidad Léxica es la proporción de contenido (como sustantivos, verbos, adjetivos, etc.) respecto a la complejidad lírica. Esto filtra las frases pegadizas o de relleno que no contribuyen a la complejidad lírica. La complejidad lírica es la suma de las tres características principales. Lo mismo ocurre con el índice Vader, que nos da el sentimiento general, desde positivo hasta negativo. Estas son las ocho características que creamos. Podemos pasar a JMP para ver cómo cambian estas características con el tiempo.
En primer lugar, al analizar las características de Vader, observamos que el componente positivo se ha mantenido relativamente estable. Presenta algunas fluctuaciones entre 2005 y 2015, pero a finales de 2022 se mantuvo prácticamente igual que en el año 2000. En cuanto al componente neutral de Vader, este indica la cantidad de contenido neutral en el texto. Se observa una ligera disminución y luego un ligero aumento en 2021, pero también se aprecia una ligera disminución en el componente neutral general de las letras entre 2000 y 2020. Respecto al componente negativo de Vader, este ha aumentado considerablemente. Se observa un aumento significativo entre 2000 y 2020, seguido de una caída, pero el componente negativo general de Vader ha aumentado. El componente compuesto de Vader representa básicamente el sentimiento general, del cual se observa una ligera disminución.
Volvió a fluctuar entre 2006 y 2015, pero luego disminuyó ligeramente a finales de 2022. En cuanto a las características del texto, el TTR aumentó notablemente después de 2020 y alrededor de ese año. El Hapax, como vemos, sigue una tendencia bastante similar a la del TTR. Esto se debe principalmente a que miden una diversidad de vocabulario similar. El Hapax es casi directamente proporcional al TTR, por lo que siguen una tendencia muy parecida. La densidad léxica, que representa el contenido léxico, aumentó considerablemente entre 2000 y 2022, lo que significa que se utilizó más vocabulario en las letras y, por lo tanto, estas se volvieron más diversas. La puntuación de complejidad lírica, que es la suma de las tres principales, también aumentó a finales de 2020. Ahora analizamos la media del índice Vader por género. Este índice refleja el sentimiento general en los diferentes géneros. Observamos que los géneros como música para adultos, comedia, K-pop, soul y música de adoración presentan un sentimiento bastante alto que se alinea con su temática. Los géneros con menor presencia de Vader incluyen rap, punk y música latina. Estos son los géneros con menor presencia de Vader. De esto podemos deducir que el género influye en el sentimiento general de las letras. Géneros como el punk y el rock tendrán, sin duda, un sentimiento general menos intenso debido a su naturaleza más negativa.
Pasemos al siguiente punto. Aquí intentamos visualizar la media de los aspectos negativos y positivos de Vader en diferentes géneros. Visualmente, podemos identificar de inmediato que los aspectos positivos de Vader son mayores que los negativos en todos estos géneros, lo que significa que, si bien los géneros son altamente negativos, también contienen componentes positivos, como palabras positivas en sus canciones. Podemos identificar inmediatamente que el punk y el rap tienen el componente negativo más alto, mientras que la música infantil o la música para adultos tienen la menor cantidad de contenido negativo. Esto tiene sentido, ya que el punk y el rap tienen letras que tratan sobre ira, rebeldía y lucha, por lo que son de naturaleza más negativa en comparación con la música infantil, que debería ser menos negativa y más positiva. Esta tabla resume las medias de todas las características que creamos a lo largo de los años y en diferentes géneros para explorar cómo evolucionaron las tendencias musicales.
Con esto, creamos este mapa de calor, cuyo tamaño se basa en el número de canciones. Inmediatamente podemos ver que el pop es un género bastante dominante debido a la cantidad de canciones que tiene en la lista Billboard Hot 100. Diría que su percepción es bastante positiva de forma constante. Presenta un alto índice Vader compuesto a lo largo de los años, y probablemente también un mayor alcance, lo que se refleja en la lista Billboard Hot 100. Podemos observar que el rap presenta algunas fluctuaciones. A finales de 2020, su tono se tornó más negativo, mientras que el hip hop y la música country mantienen una percepción positiva bastante constante. Estas son algunas de las conclusiones que podemos obtener con este análisis. Este es otro mapa de calor donde analizamos el TTR (tiempo hasta la aparición) por género y año. En este análisis de TTR, observamos que la música pop, rap, R&B, hip hop y country presentan índices de TTR bastante altos y constantes desde el año 2000 hasta el 2022. La música de adoración, los estándares para adultos y la música infantil, en general, tienen los índices de TTR más bajos y sin fluctuaciones. Esto sugiere que poseen letras menos complejas o muy simples, ya que no buscan expresar emociones profundas. Esta es una conclusión que podemos extraer de este análisis.
Otra pregunta que intentamos responder es si, en función de los cambios culturales, se produjeron cambios significativos en la música antes y después de 2010. Para ello, creamos una columna aparte que agrupa todos los años y canciones anteriores y posteriores a 2010, la cual utilizamos en nuestro análisis ANOVA. En este análisis unidireccional, comparamos la densidad léxica antes y después de 2010 para determinar si hubo algún cambio importante. El valor de significancia es inferior a 0,001, lo que indica que hubo un cambio significativo y que, según las visualizaciones iniciales, la densidad léxica aumentó considerablemente a finales de 2020. Este cambio fue significativo y la densidad léxica de las letras era menor antes de 2010 que después. Intentamos realizar el mismo análisis con el compuesto Vader para comprobar si hubo algún cambio importante en el sentimiento general antes y después de 2010. El valor p fue de 0,09, lo que significa que no hubo muchos cambios en el sentimiento general, aunque sí hubo fluctuaciones, por lo que, en comparación con antes y después, no hubo muchos cambios.
Realizamos el mismo análisis con TTR para determinar si hubo algún cambio significativo con un valor p de 0.033. Nuevamente, diría que TTR tampoco mostró una diferencia muy grande entre antes y después de 2010. Dicho esto, también verificamos si las tres características en conjunto presentaban algún cambio significativo. Para ello, utilizamos un análisis MANOVA. En este análisis, observamos que el compuesto Vader disminuyó después de 2010, lo que indica una disminución del sentimiento general y un aumento de la densidad léxica, mientras que TTR se mantuvo prácticamente igual. Visualmente, se aprecian cambios, pero al analizar el conjunto definido, ¿se produjo un cambio significativo? Al realizar la prueba, observamos que, tanto antes como después de 2010, el valor F fue inferior a 0.001, lo que significa que, en conjunto, estas tres características sí experimentaron cambios antes y después de 2010. Con esto concluye la primera fase: el análisis lírico. Las conclusiones generales serían que el género y el sentimiento general funcionan conjuntamente, que el sentimiento general aumenta o disminuye en función del género, así como también observamos que la complejidad lírica, a finales de 2020, había aumentado.
Ahora, le cedo la palabra a Delaney para que nos guíe a través de la segunda mitad del proyecto, donde construiremos modelos.
Gracias, Srichandrika, por la demostración del análisis lírico. Ahora veremos cómo podemos usar el análisis de texto en modelos predictivos. Elegimos el modelo de bosque bootstrap para este análisis en particular debido a su capacidad para manejar datos complejos. Las características musicales como el sentimiento, la complejidad lírica, el género y el año pueden interactuar de maneras no lineales que los modelos simples, como la regresión lineal, no pueden capturar. JMP también genera una clasificación de importancia de variables, lo que nos ayuda a ver qué factores influyen más en la popularidad o la longevidad de las campañas de reorientación. Además, los modelos de bosque bootstrap evitan el sobreajuste al combinar los resultados de diferentes árboles. Voy a empezar de inmediato con una demostración en vivo.
Además de nuestros datos semanales de Billboard y las funciones de audio musical, contamos con variables que representan el análisis de sentimiento del texto y los datos de las letras. Este conjunto de datos con el que trabajo incluye los datos semanales de la lista Billboard. Hay bastantes registros; aproximadamente más de 130 000.
Primero, vamos a realizar un análisis exploratorio de datos para examinar las tendencias y patrones. Comenzaremos viendo la distribución de nuestras variables para identificar dónde se concentran los datos. Podemos simplemente ir a Analizar > Distribución. Como ya tengo todas mis variables aquí, solo tengo que hacer clic en Aceptar y luego verlas en formato de pila, que es mucho más fácil de visualizar. Así podremos ver la distribución de nuestras variables. Aquí están nuestros géneros. Tenemos aproximadamente 25 géneros, e incluso podemos ordenarlos por frecuencia. El pop es, por mucho, el más popular, seguido del country y el rap. A continuación, crearemos una visualización de serie temporal usando el Generador de Gráficos. Me gustaría ver cómo cambia la frecuencia de los géneros a lo largo del tiempo. Podemos crearla en el Generador de Gráficos, pero ya tengo todo lo necesario allí. Vamos a usar el ID de la semana en el eje X, luego lo colorearemos por género y añadiremos la opción "Género" y "Superposición" para poder verlos todos al mismo tiempo. Luego, pulsaremos Aceptar. Aquí hay muchos géneros, pero esto es a lo largo de los años. Este es pop. Este es wrap. Como pueden ver, después de 2015, el pop y el wrap compiten por el primer puesto en la lista de popularidad.
En nuestro análisis exploratorio de datos (EDA), también me gusta crear una matriz de correlación con todas mis variables numéricas para ver si existen variables predictoras que estén altamente correlacionadas entre sí. Podemos crearla utilizando la herramienta y los métodos multivariados (voy a reiniciar el análisis), introducir todas las variables numéricas y ejecutarlo. Esto resalta las relaciones altamente correlacionadas. Aquí podemos ver que existe una alta correlación entre la energía y la sonoridad. Conviene asegurarse de incluir solo una de estas variables en nuestro modelo para reducir la multicolinealidad. Una prueba estadística que suelo utilizar para visualizar las relaciones entre diferentes variables es un análisis de varianza (ANOVA) de un factor.
Anteriormente vimos que hay aproximadamente 25 géneros principales en el conjunto de datos. Me gustaría ver si existen diferencias significativas entre las medias de los distintos géneros. Para empezar, analicé cómo la duración o el total de semanas en la lista de reproducción puede variar entre géneros. Podríamos hacerlo creando una matriz de ajuste Y x X, luego introduciendo el género en X, y después calculando el total de semanas en la lista de reproducción. No esa, sino el total de semanas en la lista de reproducción. Luego, pulsamos Aceptar, y realizamos un ANOVA de medias, comparando las medias y, finalmente, cada par. Aquí abajo podemos ver que el valor p indica que la diferencia es significativa.
Volviendo al informe de Letras Conectadas, este nos muestra las diferencias entre los distintos grupos o géneros. Aquí podemos ver que tiene la mayor permanencia promedio en las listas y es estadísticamente diferente de todos los demás géneros. Lo mismo ocurre con los siguientes géneros: indie pop, pop y post-grunge. No comparten ninguna letra con ningún otro género, por lo que su permanencia promedio es estadísticamente mayor. Podemos repetir el mismo proceso para analizar la posición máxima por género, pero utilizando la variable de posición máxima para nuestra variable Y. Al analizar las letras conectadas, podríamos observar que buscamos la media más baja, ya que esto indica que esos géneros alcanzan posiciones más altas en la lista. Curiosamente, el K-pop tiene la media más baja, lo que indica una mayor probabilidad de alcanzar posiciones más altas en las listas. Esto también es interesante porque, al observar la prueba ANOVA de permanencia, el K-pop no se encuentra en una posición muy alta en la lista. Esto podría indicar que el K-pop tiene una gran capacidad para volverse viral y alcanzar su punto máximo inicialmente, pero no tiene un poder duradero muy fuerte y cae rápidamente en las listas de popularidad.
También podríamos realizar una prueba ANOVA, como hizo Srichandrika con las variables de texto y sentimiento, para observar las diferencias entre géneros y otros grupos. Una vez finalizado el análisis exploratorio de datos (EDA), estamos listos para pasar al modelado predictivo. Pero primero necesitamos crear una columna de validación para cada variable de respuesta. JMP Pro facilita este proceso. Podemos acceder a modelado predictivo y luego a columna de validación. Crearemos una para cada una. Construiremos dos modelos: uno para la longevidad y un modelo de clasificación para predecir si una canción podría entrar en el top 10 o no. Estratificaremos según el total de semanas en la lista, que es una de nuestras respuestas. Realizaremos una división de 60, 20, 20. Dado que crearemos varias columnas, las nombraremos para poder identificarlas. Simplemente usaremos una semilla aleatoria de 1, 2, 3, 4, 5. Esto las creará.
Ya creé uno para los 10 mejores, así que no lo repetiré. Ahora que tenemos nuestras columnas de validación, podemos empezar a construir nuestros modelos predictivos. JMP tiene una opción de bosque bootstrap que puedes usar fácilmente. Voy a reiniciar el análisis. Colocamos nuestra variable de respuesta en el eje Y y luego todas nuestras variables predictoras, asegurándonos de incluir la columna de validación que creamos. Para evitar que el programa tarde mucho en ejecutarse, voy a excluir del modelo algunas variables categóricas con muchos grupos diferentes. Por ejemplo, me gustaría ver cómo un artista podría influir en la duración de una canción, pero hay demasiados en el conjunto de datos para un modelo eficiente. Al incluir las variables como entradas, también tenemos en cuenta las variables que no queremos incluir debido a la multicolinealidad. Aquí he incluido energía en lugar de volumen para evitarlo. Asegurémonos de tener nuestra validación. Vamos a hacer clic en Aceptar.
Aparecerá una ventana emergente de especificación del bosque Bootstrap preguntándote cuántos árboles hay en el modelo y cuántas variables predictoras se consideran aleatoriamente en cada división. Puedes especificar cuántos árboles se generan, su profundidad, la cantidad de datos que procesa cada árbol y el grado de aleatoriedad de las divisiones. Modificar estos ajustes puede afectar el equilibrio entre precisión, tiempo de ejecución y sobreajuste. Para empezar, usaremos los valores sugeridos para cada ajuste y haremos clic en Aceptar para ver los resultados. Hago clic en Aceptar, y este paso suele tardar un par de segundos, ya que JMP crea varios árboles de decisión en segundo plano. Esperemos un poco. Este conjunto de datos es bastante grande, por lo que también influirá en el tiempo de ejecución. Aquí vamos. Nuestro r² es 0.89, lo cual ya es bastante bueno. Si creemos que los resultados podrían mejorarse, podríamos volver a ejecutar el modelo con diferentes especificaciones y ver qué tal. Aquí podemos hacer clic en el triángulo rojo, consultar las contribuciones de las columnas y ver cómo nuestras variables influyen en la permanencia en la lista. La posición máxima es nuestra variable de mayor influencia, lo cual es lógico, ya que las canciones que alcanzan una posición máxima más alta suelen permanecer más tiempo en la lista.
Ahora haremos lo mismo con nuestro segundo modelo. ¿Dónde está? Usaremos nuestra variable binaria como Y y validaremos esa variable de respuesta. Aquí también omití la posición del pico porque la usé para crear la variable de los 10 mejores. Dejaremos todo igual y veremos qué resultados obtenemos. El modelo de clasificación nos proporciona una matriz de correlación para las diferentes fechas o columnas de validación. También podemos ver la curva ROC y la curva de elevación de este modelo para evaluar su rendimiento y su capacidad para distinguir entre clases. 0.98 es un buen valor en este aspecto. Con esto concluimos nuestro recorrido por el flujo de trabajo de JMP que usamos en nuestro proyecto. En la práctica, este modelado podría ayudar a artistas, productores o sellos discográficos a comprender qué características de las canciones influyen más en el éxito y, potencialmente, a predecir tendencias en la industria. Nuestro proyecto es solo un ejemplo de cómo se puede aplicar JMP a datos de texto y análisis de sentimiento en el modelado predictivo y en campos creativos.
Queremos agradecer especialmente al Dr. Chakraborty y al Dr. McGaugh por su mentoría y guía durante nuestro programa de Bandas. Su aliento y valiosas aportaciones han enriquecido nuestra experiencia y nos han ayudado a crecer tanto técnica como profesionalmente. Agradecemos el tiempo y el apoyo que nos han brindado y valoramos enormemente la oportunidad de aprender bajo su dirección. Gracias a todos por su atención. Con esto concluimos nuestra presentación.