Comprendiendo la popularidad con PLS 馃幎

Kaggle kernel: Understanding-popularity-with-pls

Spotify es una aplicaci贸n de m煤sica con miles de canciones. Hoy nos centraremos en analizar cu谩les son las variables que influyen en la popularidad de una canci贸n mediante el m茅todo PLS.

Brevemente, PLS es un m茅todo supervisado de regresi贸n. Se trata de un m茅todo de reducci贸n de la dimensi贸n al igual que otros como PCR. Pero a diferencia de PCR, PLS obtiene las variables latentes de forma supervisada, es decir, hace uso de la variable o variables Y. De esta forma, no solo obtiene un subespacio que aproxima bien a la nube de puntos sino que adem谩s estas variables latentes estar谩n relacionadas con la variable respuesta.

Dataframe

El dataset contiene m谩s de 160.000 canciones extra铆das de la web de Spotify; Link馃幍 . Las variables se detallan en la web y son las siguientes:

Features:

  • acousticness [0 - 1]: M茅trica que hace referencia a lo ac煤stica que es la canci贸n; un valor de 1 indica que la canci贸n es muy ac煤stica
  • danceability [0 - 1]: M茅trica que hace referencia a lo bailable 馃拑 que es la canci贸n. La m茅trica se basa en una combinaci贸n de variables como; tempo, rhythm stability, beat strength, y overall regularity. Un valor de 0.0 indica que la canci贸n no es bailable mientras que un valor de 1.0 indica que la canci贸n es muy bailable
  • energy [0 - 1]: La energ铆a de la canci贸n. Las canciones muy energ茅ticas son r谩pidas, ruidosas y sonoras. Por ejemplo, una canci贸n de metal o de rock incluso tienen una alta energ铆a, mientras que una pieza de Bach no tiene un valor tan alto en energ铆a. Las variables en las que se basa esta variable son: dynamic range, perceived loudness, timbre, onset rate, y general entropy
  • duration_ms [200k - 300k]: La duraci贸n de la canci贸n en milisegundos
  • instrumentalness [0 - 1]: M茅trica que hace referencia a lo instrumental de la canci贸n. Predice si una canci贸n no contiene voz. En este caso, 鈥榦oh鈥 y 鈥榓ah鈥 son tratadas como instrumental. Por ejemplo, una canci贸n de rap tendr谩 un valor muy bajo en esta m茅trica. Cu谩nto m谩s cercano a 1.0, mayor probabilidad de que la canci贸n no contenga voz alguna
  • valence [0 - 1]: M茅trica que hace referencia a la positividad de la canci贸n. Canciones con un alto valor de valence suenan m谩s positivas, mientras que canciones con valores bajos de valence suenan m谩s negativas
  • popularity
  • tempo [50 - 150]: El ritmo medio medido en beats per minute (BPM). El tempo es la velocidad de una pieza
  • liveness [0 - 1]: Detecta la presencia de p煤blico en la grabaci贸n. Altos valores de liveness indican que hay una alta probabilidad de que la canci贸n haya sido grabada con p煤blico
  • loudness [-60 - 0]: El volumen medio de una canci贸n medido en decibelios (dB)
  • speechiness [0 - 1]: M茅trica que hace referencia a la presencia de palabras en una canci贸n. Por ejemplo, un audiolibro o un poema tendr谩n unos valores muy cercanos a 1.0. Valores por encima del 0.66 ser谩n canciones habladas, valores entre 0.33 y 0.66 ser谩n canciones que combinen m煤sica con voz, valores menores de 0.33 ser谩n canciones donde no haya voz alguna
  • year [1921 - 2020]
  • explicit [0 = No explicit content, 1 = Explicit content]: Variable dicot贸mica que indica si una canci贸n contiene letras 鈥榚xpl铆citas鈥 o no

Como nuestro objetivo no es obtener un buen modelo de regresi贸n para predecir, sino para discriminar la popularidad, no se realizar谩 ninguna validaci贸n cruzada. Por otro lado, nuestra variable respuesta ser谩 la popularidad y las variables regresoras ser谩n; acousticness, danceability, duration_ms, energy , explicit, instrumentalness, liveness, loudness, mode, speechiness, tempo and valence.

PLS

Los m茅todos de reducci贸n de la dimensi贸n como PCR, PCA o PLS facilitan mucho el tratamiento de datos correlacionados. Sin embargo, PLS tiene una serie de propiedades comparado con otros m茅todos como los random forests, las redes neuronales鈥 PLS no modela 煤nicamente la relaci贸n entre el espacio X y el espacio Y como lo hacen otros m茅todos de caja-negra, adem谩s PLS proporciona modelos tanto para el espacio X como el espacio Y.

La principal diferencia comparado con PCA es que en PCA se proyectan las observaciones en un subespacio de forma que se maximiza la varianza de la variable latente, mientras que en PLS se trata de maximizar la covarianza entre los espacios X e Y. Ello significa que las variables latentes explicar谩n la variabilidad en X relacionada con la variabilidad en Y. Debido a que la cov(X, Y) no es m谩s que el producto de las desviaciones t铆picas de X, Y y la correlaci贸n de X e Y, estaremos maximizando la correlaci贸n entre los espacios X e Y.

Algoritmo PLS

Empezamos con dos matrices; $X$ e $Y$. Ambas deben ser centradas y escaladas antes de que empiece el algoritmo.

Paso 1 Establecemos u como la primera columna de Y o la columna de m谩xima varianza

Paso 2 Predecimos las columnas de X usando u

\[X = \vec{u} \; \vec{w}^t + E_{1} \rightarrow \vec{w}^t = \frac{\vec{u}^t \; X}{\vec{u}^t \vec{u}}\]

Paso 3 Predecimos las filas de X usando w

\[X^t = \vec{w} \; \vec{t}^t + E_{2} \rightarrow \vec{t} = X \; \vec{w}\]

Paso 4 Predecimos las columnas de Y usando t

\[Y = \vec{t} \; \vec{c}^t + E_3 \rightarrow \vec{c}^t = \frac{\vec{t}^t \; Y}{\vec{t}^t \vec{t}}\]

Paso 5 Predecimos las filas de Y usando c

\[Y^t = \vec{c} \; \vec{u}^t + E_4 \rightarrow \vec{u} = \frac{Y \; \vec{c}}{\vec{c}^t\vec{c}}\]

Repetimos 1,2,3,4,5 hasta la convergencia. Por ejemplo, hasta que u es muy parecido al u de la iteraci贸n anterior

Paso 6 En la convergencia, predecimos las columnas de X usando t

\[X = \vec{t} \; \vec{p}^t + E_5 \rightarrow \vec{p}^t = \frac{\vec{t}^t \; X}{\vec{t}^t \vec{t}}\]

Paso 7 Matrices de residuos

\[E = X - \vec{t} \; \vec{p}^t \;\;\; F = Y - \vec{t} \; \vec{c}^t\]

E es la matriz de residuos de $X$ y $F$ la matriz de residuos de $Y$. Las nuevas iteraciones empiezan con $X$ e $Y$ como las matrices de residuos de la anterior iteraci贸n. Por ello, se extrae una dimensi贸n por iteraci贸n.

png

Interpretaci贸n

Las componentes PLS crean dos subespacios; uno en el espacio Y y otro en X. Cuando se proyectan las observaciones se obtienen dos scores diferentes; t y u, los scores en el espacio X y los scores en el espacio Y respectivamente.

  • u: Scores del espacio Y. u es una combinaci贸n lineal de Y y c
  • t: Scores en el espacio X. t es una combinaci贸n lineal de X y w
  • c: Loadings en el espacio Y. Los loadings c son los coeficientes de correlaci贸n entre las variables en Y y t
  • w: Loadings en el espacio X. Los loadings w son los coeficientes de correlaci贸n entre las variables X y u. Aquellas variables en X que est茅n altamente correlacionadas con Y tendr谩n un loading alto en w

Si una variable x1 tiene un alto valor en su peso w, quiere decir que esa variable est谩 muy relacionada con el score u pero como los scores u son combinaci贸n lineal de las variables Y con pesos c, querr谩 decir que esa variable x1 estar谩 relacionada con aquellas variables Y que tengan altos valores en c. En otras palabras, si una variable z en X tiene un alto loading en w y otra variable o en Y tiene un alto valor en c; z estar谩 correlacionada con o.

Selecci贸n de componentes

Una forma de seleccionar componentes PLS es analizando el Q2 y R2 para cada componente. Se decide parar de escoger componentes cuando el Q2 empieza a decrecer. En nuestro caso, usaremos 煤nicamente las tres primeras componentes. Si quisi茅ramos un modelo para predecir la popularidad deber铆amos escoger m谩s componentes PLS ya que el Q2 mide la capacidad predictiva del modelo y en el siguiente gr谩fico se observa que el valor Q2 aumenta tras cada componente.

png

SPE

Tras realizar un modelo PCA o PLS se deben analizar los residuos del modelo. La parte residual de una observaci贸n puede reducirse a un 煤nico n煤mero; el SPE (sum of predicted errors):

\[SPE_i = \sqrt{e_i^t \; e_i}\]

Donde e es el vector de residuos de una observaci贸n. Una observaci贸n en X con un SPE = 0 es una observaci贸n que se encuentra justo en el hiperplano definido por el modelo, mientras que una observaci贸n con un alto SPE, se alejar谩 mucho del hiperplano. En PLS nos encontraremos con dos tipos diferentes de SPE; una clase de SPE para el espacio Y que se calcular谩 usando la matriz de residuos F y otra clase de SPE para el espacio X. En este caso vamos a centrarnos 煤nicamente en el SPE para el espacio X.

png

Podemos calcular un l铆mite de confianza, por debajo de este esperaremos encontrar una fracci贸n de los datos. Este es el l铆mite chi2;

\[chi2lim = g \; \chi2_h(\alpha)\]

En el siguiente gr谩fico se muestra el SPE para cada observaci贸n con el l铆mte del 99% de confianza. Aquellas observaciones que superen dicho l铆mte deber谩n ser eliminadas y se recalcular谩 el modelo.

png

T2-Hotelling

El estad铆stico T2 es un resumen de todos los scores t en todas las A dimensiones (3 en nuestro caso). El T2 es la distancia desde el centro del hiperplano a la proyecci贸n de la observaci贸n. Una proyecci贸n que est茅 justo en el centro del hiperplano, tendr谩 un valor T2 = 0. Las observaciones que tengan valores muy cercanos al centroide de los datos, tendr谩n valores T2 muy bajos. Dato curioso; el estad铆stico T2 es equivalente a la distancia Mahalanobis de una proyecci贸n a la media.

\[T_i^2 = \sum_{a = 1}^{a = A} (\frac{t_{i,a}}{s_a})^2\]

Donde A es el n煤mero total de componentes y sa es la varianza para cada componente. En PCA ser铆a el valor propio asociado a la componente.

El estad铆stico T2 se distribuye como una distribuci贸n F de Snedecor. Por ello, podemos calcular un l铆mite de confianza del 95% por debajo del cual esperamos encontrar el 95% de las observaciones. Por tanto, una observaci贸n Ti estar谩 por encima de este l铆mite cuando:

\[T_i^2 > F_{A, N-A}^{\alpha = 0.05} \; \frac{A \; (N^2 - 1)}{N (N - A)}\]

Como se observa en el siguiente gr谩fico, existen observaciones que sobrepasan el l铆mite del 99%. Al igual que antes con el SPE, estas observaciones an贸malas se eliminar谩n y el modelo se recalcular谩.

png

R2X

Para interpretar los gr谩ficos de loadings o de scores, primero se debe observar el valor R2 para cada variable distinguiendo entre componentes. El R2 nos indica la variabilidad de una variable k explicada por el modelo. El R2 puede calcularse como:

\[R_i^2 = \frac{SCE_k}{SCT_k}\]

El siguiente gr谩fico muestra que:

  • acousticness: Principalmente explicada por la primera componente
  • danceability: Explicada por las tres pero especialmente por la tercera
  • duration_ms: Explicada por las tres pero especialmente por la tercera
  • energy: Principalmente explicada por la primera componente
  • explicit: Principalmente explicada por la primera componente
  • instrumentalness: Principalmente explicada por la primera componente
  • liveness: Principalmente explicada por la segunda y tercera componente
  • loudness: Principalmente explicada por la primera componente
  • mode: A penas est谩 explicada por nuestro modelo
  • speechiness: Principalmente explicada por la segunda componente
  • tempo: Explicada por la primera y segunda componente
  • valence: Principalmente explicada por la segunda componente
png

Loadings

Esta es la parte m谩s interesante. Con los loadings se puede interpretar la relaci贸n existente entre variables en el espacio X, Y o en ambos a la vez. En el siguiente gr谩fico se van a superponer dos gr谩ficos diferentes; los loadings en el espacio X y los loadings en el espacio Y.

w1*c1/w2*c2

La primera componente PLS est谩 correlacionada positivamente con danceability, energy y loudness y de forma negativa con acousticness en el espacio X. En el espacio Y, la primera componente se correlaciona de forma positiva con Popularity. Ello significa que una observaci贸n que sea popular presentar谩 altos valores en la primera componente. Por otra parte, la segunda componente PLS se correlaciona de forma negativa con valance, speechiness, acousticness y iveness en el espacio X y se correlaciona de forma positiva con popularity en el espacio Y.

Podemos observar diferentes relaciones en el siguiente gr谩fico:

  • Popularity se correlaciona de forma negativa con acousticness, ya que ambas variables se encuentran formando un 谩ngulo de 180掳
  • Popularity se correlaciona de forma positiva con danceability, duration_ms, energy, explicit y loudness
  • Speechiness y liveness se correlacionan de forma negativa con instrumentalness (como cabr铆a esperar)
  • Acousticness se correlaciona de forma negativa con danceability, duration_ms o explicit
png

w1*c1/w3*c3

Esta nueva tercera componente est谩 correlacionada de forma positiva con danceability y de forma negativa con acousticness o duration_ms en el espacio X. Por otra parte, se correlaciona de forma positiva con Popularity en el espacio Y. Adem谩s, se observa que danceability est谩 correlacionada negativamente con acousticness.

png

Scores

t1/t2

Como ya se ha dicho, los scores son las proyecciones de las observaciones en el nuevo subespacio creado por el modelo. Este gr谩fico es complementario al visto antes; wn*cn/wn*cn. Por ello, si coloreamos los scores t1/t2 seg煤n el valor de Popularity podemos ver un gradiente (de menos a m谩s popularidad), indicando la direcci贸n de Popularity vista en el gr谩fico de loadings. Ahora, si coloreamos los scores t1/t2 seg煤n acousticness observaremos el gradiente opuesto ya que acousticness se correlaciona de forma negativa con Popularity.

png

No hemos introducido la variable a帽o en el modelo, as铆 que鈥 驴qu茅 ocurre si coloreamos los scores seg煤n a帽o? Si lo hacemos se observa un gradiente de color movi茅ndose hacia la direcci贸n de popularity, como el gradiente visto antes. Esto significa que las canciones m谩s populares son a su vez las m谩s recientes. Adem谩s, este gradiente nos revela tambi茅n que las canciones han ido aumentando en danceability, energy, loudness o duration_ms a lo largo de los a帽os y disminuyendo en acousticness.

png

Interpretando algunos scores

Para poder comprender mejor lo que nuestro modelo est谩 haciendo, seleccionaremos 20 canciones aleatorias y analizaremos algunos scores usando los gr谩ficos de loadings vistos antes.

Por ejemplo, La Boa (La Sonora Santanera), esta observaci贸n tiene un valor muy alto en la segunda componente PLS, ello significa que esta canci贸n tendr谩 un valor elevado en valence, liveness y speechiness. Si vemos el v铆deo de esta canci贸n鈥 La聽BOA馃挜 observaremos que esta es una actuaci贸n en directo y en mi opini贸n, bastante positiva馃槒 Es la boa, es la boa, es la boa鈥︷煇 Por el contrario, hay otra canci贸n llamada War Is Declared / The Death of Charles que observando el gr谩fico t1/t3 se podr铆a decir que no ser谩 bailable, ser谩 larga y tendr谩 un alto valor de acousticness鈥 War Is聽Declared.

png
png

Coeficientes de regresi贸n PLS

Un modelo PLS puede ser escrito como un modelo de regresi贸n de la forma; $Y = \vec{y}^t + X \; B_{PLS} + F$. No entrar茅 en demasiados detalles sobre c贸mo se obtiene la matriz BPLS, pero esta matriz tiene k filas (k es el n煤mero de variables de X) y m columnas (m es el n煤mero de variables de Y). As铆, para cada variable en Y existen unos coeficientes que nos indican la influencia de cada variable en X. Estos coeficientes facilitan la interpretaci贸n del modelo, la desventaja es que se pierde informaci贸n sobre la estructura de correlaci贸n.

En el siguiente gr谩fico tenemos los coeficientes para la variable respuesta; Popularity. Observamos que las principales variables que disminuyen la popularidad de una canci贸n son valence y acousticness, seguidas en menor medida por instrumentalness, liveness y speechiness. Por otra parte, las principales variables que incrementan la popularidad de una canci贸n son danceability, energy, explicit y loudness. Tempo, mode y duration no parecen ser significantes.

png

Bob Marley vs Mozart

Si proyectamos todas las canciones de Mozart o Bob Marley sobre las componentes PLS, observaremos una clara diferencia en sus scores. Probablemente, deber铆amos hacer un An谩lisis de Componentes Principales para ver una diferencia m谩s clara ya que nuestros scores van a estar sesgados por popularity. Aun as铆, se observa una clara diferencia entre ambos m煤sicos usando los scores PLS. Mozart tiene valores elevados de instrumentalness o duration_ms, mientras que Bob Marley tiene valores elevados de tempo, danceability, loudness, energy鈥

png

Si los coloreamos seg煤n a帽o, no se observa ning煤n gradiente de color en el caso de Bob Marley, pero s铆 en el caso de Mozart. Esto significa que sus canciones han aumentado en instrumentalness a lo largo de los a帽os.

png