Análisis de Depresión en Redes Sociales mediante Inteligencia Artificial

Donostia. Primera Edición. 2020

Introducción

¿Te has preguntado alguna vez si tanto usar las redes sociales podría afectar a tu estado de ánimo? Hay quien relaciona un mal uso de las redes sociales a problemas psicológicos como la depresión, pero ¿qué hay de cierto en esta idea? ¿Existe evidencia científica que nos alerte sobre peligros reales de las redes sociales, o se trata de temores infundados?

Durante la primera edición del programa Saturdays AI en Euskadi, el grupo Facemood nos embarcamos en el reto de analizar si podemos predecir una serie de síntomas relacionados con la depresión en base al uso que hacemos de las redes sociales. Para ello, usamos un abanico de herramientas estadísticas y de Machine Learning que nos ayudaron a entender la relación entre estas variables.

La depresión constituye un problema importante de salud pública, ya que es un gran factor de riesgo para el suicidio, que reclama cientos de miles de vidas cada año.

Por ello, entendemos que conocer a fondo los aspectos que podrían estar asociados a un cuadro de depresión es la única forma de poder ayudar a proyectar políticas públicas eficientes de cara a mejorar este problema, y definitivamente, ¡salvar vidas!

Como punto de partida, nos basamos en el trabajo realizado por un grupo de investigadores neerlandeses y estadounidenses titulado: ‘Social Media and Depression Symptoms: A Network Perspective’ (DOI:10.1037/xge0000528; accesible también en abierto). En este estudio, los investigadores analizaron si el uso pasivo de las redes sociales (es decir, hacer scrolling en el feed de noticias o fotografías de nuestros amigos y contactos) provoca síntomas depresivos, o viceversa.

Para la obtención de los datos, cada uno de los participantes en el estudio recibía en su teléfono móvil un cuestionario en el que debía responder de 0 a 100 como se sentía en referencia a cada uno de los posibles síntomas de depresión: falta de energía (Fatigue), estado de ánimo bajo (LowMood), soledad (Loneliness), problemas de concentración (Concentration), pérdida de interés (Loss of Interest), sentimiento de inferioridad (Inferiority), desesperanza (Hopeless), y estrés (Stress). También tuvieron que responder de 0 a 100 a tres preguntas relacionadas con el uso de las Redes Sociales: uso pasivo (PSMU), activo (ASMU), y consulta de noticias (News: acceder a información de carácter político o de interés público). Los participantes rellenaron este cuestionario siete veces al día durante 14 días.

A continuación, una breve descripción de las 11 variables del estudio:

Para llevar a cabo este proyecto, hemos planificado una estrategia de análisis según el esquema de abajo, en el que hemos utilizado distintas metodologías y herramientas:

1. EDA (Exploratory Data Analysis)

2. Cluster Analysis

3. ANOVA de Medidas Repetidas

4. Análisis de Regresión

Figura 1. Estrategia de Análisis.

1. EDA (Exploratory Data Analysis)

Al tratarse de un conjunto de datos proveniente de una publicación científica y haber pasado por un análisis previo durante dicha investigación, podríamos decir que cuenta con una mayor validez en comparación a un dataset que obtengamos a través de una plataforma open source como Kaggle. No obstante, esto no significa que no debamos llevar a cabo un análisis de los datos por nuestra parte, con el fin de encontrar patrones y preparar los datos para las tareas de Machine Learning.

La primera fase consistió en identificar aquellas mediciones que consideramos válidas. Lógicamente muchos de los participantes olvidaron llevar a cabo algunas de las mismas (realizar 7 mediciones al día durante 14 días no es tarea fácil 😅), o no supieron responder a algunos de los síntomas (cuantificar tu estado de ánimo de 0 a 100 tampoco lo es…). Todas estas mediciones fueron eliminadas.

En una segunda fase, nos fijamos en si las mediciones restantes eran coherentes: no poseen el mismo valor en todos los síntomas, no son respuestas recurrentes, fueron realizadas en el plazo de tiempo definido, etc.

De esta forma, ¡ya estamos listos para pasar a la acción!

2. Cluster Analysis

La siguiente fase consistió en llevar a cabo un Cluster Analysis, una de las técnicas de Machine Learning para identificar grupos en el dataset. Utilizamos los métodos Elbow y Silhouette para obtener el número de clusters óptimo y el algoritmo K-means, técnica de unsupervised learning para hacer clustering.

Identificación del número óptimo de clusters

Método Elbow: en este se calcula la distorsión promedio de los clusters, es decir, la distancia promedio del centroide a todos los puntos del cluster. Esta se obtiene con el algoritmo de K-means en función del número de clusters. Para resolver este ejercicio, hemos creado la función plot_elbow, que recibe un conjunto de datos y un título de gráfico. Fijamos los valores de los parámetros max_k en 10. Lo que hace la función es probar con cada valor del 1 al 9 y graficar el resultado.

Figura 2. Gráfica que representa el método Elbow.

El gráfico nos muestra que, a partir del valor 3, la dispersión se empieza a reducir drásticamente. Por lo tanto, podemos tomar el 3 como valor óptimo.

Método Silhouette: El coeficiente de Silhouette se define como la diferencia entre la distancia promedio a los elementos del cluster más cercano (b) y la distancia intra-cluster promedio de los elementos de un cluster (a) dividido por el máximo de los dos, solo pudiendo tomar valores entre -1 y 1.

Figura 3. Gráfica que representa el método Silhouette.

Con este método comprobamos que el 3 puede ser un buen valor para probar nuestro cluster analysis.

Implementación del algoritmo k-means y visualización de los grupos en un gráfico 3D

El algoritmo recibe un conjunto de datos para entrenarlo y un número de clusters para dividirlo. Mediante el método predict se obtiene la clase del objeto entrenado en el dataset, y finalmente se representa cada dato con un color distinto en función del cluster al que ha sido asignado. Podemos apreciar el resultado en la Figura 4 y la distribución de participantes en la Figura 5.

Figura 4. Visualización de los grupos en un gráfico 3D.
Figura 5. Distribución de los participantes por cluster.

Finalmente, para concluir con el Cluster Analysis, hemos elaborado una serie de gráficos (histogramas solapados), para identificar de un vistazo las diferencias en cada variable entre los miembros de cada cluster.

Figura 6. Variables de RR.SS. por cluster.
Figura 7. Variables relacionadas a la depresión, por cluster.
Figura 8. Variables relacionadas a la depresión, por cluster.

Se observa que los 3 clusters son diferentes en lo que concierne a los síntomas relacionados con la depresión, siendo el Cluster 1 el que contiene las mayores puntuaciones medias en relación a los 8 síntomas del estudio, por lo que se podría afirmar que es el grupo con mayor propensión a presentar un posible cuadro de depresión.

Sin embargo, como podemos observar en la Figura 6 (Variables de RR.SS. por Cluster), en el caso de las variables relacionadas con RR.SS. no encontramos grandes diferencias entre clusters.

Figura 9. Tabla de medias por cluster.

3. ANOVA de Medidas Repetidas

Hay dos aspectos de este dataset que nos llamaron especialmente la atención. Por un lado, el hecho de haber tomado mediciones durante dos semanas nos ofrece la posibilidad de explorar si dichas mediciones varían con el tiempo. Mediante un gráfico de líneas o lineplot podemos hacernos una idea de cómo ha variado, de media, cada uno de los síntomas relacionados con la depresión que se han medido.

Figura 10. Medias de cada variable agrupadas por día de la semana.

Aunque parece haber cierta variación a lo largo del tiempo en alguna de las variables, no podemos estar seguros a simple vista de si cabría esperar que los datos varíen así por puro azar o porque no hemos usado un instrumento de medida muy bueno.

Por otro lado, sabemos que se realizaron un gran número de mediciones a cada participante. Como explicamos arriba, se hizo un seguimiento de sintomatología relacionada con la depresión durante 14 días a 125 sujetos. Además, cada día se pidió a los participantes que rellenaran la escala cada 2h desde las 10:00 a las 22:00. Por tanto, con siete mediciones diarias durante dos semanas en 125 sujetos, tenemos un total de 12.250 observaciones en el dataset.

¡Pero cuidado! Estas observaciones no son independientes entre sí. No podemos utilizar un modelo estadístico que tome cada una de esas observaciones como si proviniera de distintas personas, porque la variabilidad que obtenemos al medir repetidamente a un mismo individuo será distinta a la variabilidad obtenida al medir a distintos individuos (al menos si la medición es mínimamente fiable).

Existe un modelo estadístico que sí nos permite analizar la influencia del tiempo en nuestros datos, pero respetando el hecho de que no todas las observaciones son independientes, sino que tenemos grupos de 98 observaciones a lo largo del tiempo para 125 sujetos. Este modelo se llama Análisis de la Varianza (o ANOVA) de Medidas Repetidas.

Como el tamaño de nuestra muestra no es excesivamente grande (125 participantes) y contamos con 8 variables de síntomas relacionados con la depresión, decidimos no incorporar al modelo estadístico todas las variables y estimar un modelo simplificado para la variable ‘estado de ánimo bajo’ (LowMood). Por tanto, se trataría de un ANOVA de medidas repetidas con dos factores: (i) tiempo, donde se incluyen las puntuaciones medias de cada día en esta variable; y (ii) cluster, donde se recoge la pertenencia de cada sujeto a los clusters calculados anteriormente. La hipótesis nula de este modelo establece que todas las medias del LowMood son iguales a lo largo de los 14 días de encuestas.

Figura 11. Promedio de cada variable del cuestionario por día y cluster.

Como podemos ver en la Figura 11 (variable LowMood), la variabilidad de los datos a lo largo del tiempo es mínima y, de hecho, aunque el resultado del test estadístico es estadísticamente significativo (F(13,26) = 2.261, p = 0.018), el tamaño de efecto es prácticamente despreciable (η2 = 0.02).

Por tanto, el modelo estadístico de ANOVA de Medidas Repetidas nos ha informado que, a pesar de tener un dataset relativamente rico en detalles en la dimensión temporal, los síntomas relacionados con la depresión asociados al uso de redes sociales no parecen variar demasiado a lo largo del tiempo.

4. Análisis de Regresión

El primer paso que dimos para ajustar las regresiones lineales fue calcular las medias de todas las mediciones por participante y variable. Esto nos permitió “eliminar” el aspecto temporal de las “medidas repetidas” del estudio.

A continuación, construimos gráficas de dispersión entre todas las variables del estudio, y calculamos los coeficientes de correlación lineal de Pearson (r2) para todas las combinaciones de variables, con el objetivo de identificar los diversos tipos de correlación y alguna posible “multicolinealidad” entre variables (r2 > 90%).

Observamos que algunas variables estaban muy correlacionadas linealmente, como se puede observar en la gráfica de abajo:

Figura 12. Diagrama de matriz de las gráficas de dispersión de las 11 variables del estudio.

Para ajustar un modelo inicial, tuvimos que definir una variable “respuesta” o “Y”. Elegimos “LowMood”, por tratarse en principio de una de las variables más importantes del estudio.

En el mapa de calor de correlaciones lineales de Pearson, se observa multicolinealidad entre “Loneliness y Hopeless”, y “Inferior y Hopeless”, por lo que decidimos no utilizar en un primer momento “Hopeless”.

Figura 13. Mapa de calor de los coeficientes de correlación de Pearson
de las 11 variables del estudio.

Para el ajuste del Modelo de Regresión, utilizamos el método “backward”: a partir del modelo saturado con todas las variables independientes disponibles, el método iba eliminando, una a una, dichas variables cuyo p-value > alpha, siendo alpha = probabilidad del “error tipo 1”.

Para ello, creamos una función recurrente llamada “calculateRegression”, que utiliza un 80% de los datos para los ajustes, y reserva un 20% de los datos para los testeos.

Además, la función calcula el “RootMeanSquareError” (RMSE) y el “Coeficiente de Determinación” (R2) para todos los ajustes.

Figura 14. Output del método “backward” de eliminación de variables
con poca capacidad explicativa.

El Modelo Final ajustado involucra 3 variables, siendo “News” una de ellas.

LowMood = -0,85 + 0,78 Loneliness + 0,18 Stress + 0,04 News

Es importante resaltar que el coeficiente de determinación (R2) del modelo ajustado es “alto” (93,1%).

Para validar definitivamente el modelo, realizamos un “Análisis de Residuos”, también recogido en una función llamada “residualAnalysis”. Esta función realiza el “test de normalidad” (Kolmogorov-Smirnov) de los residuos estandarizados e imprime 3 gráficas: Gráfica de Dispersión entre “Predicción” y “Residuos Estandarizados”, Histograma de los Residuos Estandarizados, y “Normal Q-Q Plot” de los Residuos Estandarizados.

Como el Análisis de Residuos también fue considerado satisfactorio, se valida el modelo estadísticamente.

Figura 15. Output de la función “residualAnalysis”.

Es importante observar que el peso de “News” (0,04) es muy inferior a los pesos de “Loneliness” (0,78) y “Stress” (0,18), y que, si hubiésemos definido un “alpha” más exigente, “News” no se mantendría en el modelo final.

Por otro lado, dada la complejidad para diagnosticar una persona con depresión, construimos un “índice de depresión”, para ser utilizado como variable respuesta de un segundo modelo. La idea era comparar los 2 modelos, de cara a corroborar las conclusiones anteriores.

El índice de depresión, a partir de ahora “DeprRate”, fue calculado como el promedio simple entre “LowMood”, “LostOfInt” y “Hopeless”, ya que estas variables podrían contener indicios importantes de una posible depresión, según la literatura.

Seguimos los mismos pasos expuestos anteriormente. El modelo final contiene ahora 5 variables y no involucra ninguna variable relacionada al uso de Redes Sociales.

DeprRate = -0,025 + 0,31 Loneliness + 0,25 Inferior + 0,19 Concentrat + 0,15 Stress + 0,06 Fatigue

El coeficiente de determinación (R2) del modelo ajustado siguió siendo alto (90,8%), y como el Análisis de Residuos también fue considerado satisfactorio, se valida el modelo bajo un punto de vista estadístico.

Es interesante constatar que “Loneliness” de nuevo aparece como la variable de mayor peso para “DeprRate”, y que “Stress” sigue en este segundo modelo, con un peso parecido.

Nota: Las 2 funciones comentadas anteriormente están definidas en “regresion_functions.py”. En este archivo también se pueden encontrar otras funciones utilizadas en este análisis, como:

  • printMatrixDiagram: función que genera gráficas de dispersión (2 a 2), involucrando todos los indicadores del estudio. Útil para ver de forma gráfica, en un único vistazo, los indicadores que están más correlacionados entre ellos.
  • printPearsonCorrelations: genera un mapa de calor de las correlaciones de Pearson entre todos los indicadores del estudio. Útil para ver, en un único vistazo, los indicadores que están más correlacionados entre ellos y si hay multicolinealidad.
  • eliminateOutliers: elimina los residuos estandarizados considerados “altos” (menores que -3 y mayores que +3), de cara a realizar posteriormente nuevos ajustes sin estos datos que muchas veces distorsionan los resultados. La función imprime los datos eliminados, posibilitando un control de lo que se está eliminando.
  • repeatRegression: vuelve a ajustar el modelo de regresión lineal final ajustado en “calculateRegression”, ahora para los datos libres de “outliers”. Además, vuelve a calcular el “RootMeanSquareError” (RMSE) y el “Coeficiente de Determinación” (R2).

Conclusiones Finales

Con relación al Cluster Analysis, se observa que los 3 clusters formados son diferentes en lo que concierne a los “síntomas de depresión”, siendo el Cluster 1 el que contiene las mayores medias en relación a los 8 síntomas del estudio. Sin embargo, lo mismo no pasa con las variables de Redes Sociales, ya que los histogramas solapados por cluster no muestran grandes diferencias para las variables PSMU, News y ASMU.

Por otro lado, el ANOVA de Medidas Repetidas sugiere que no hay diferencias significativas a lo largo de los 14 días de encuestas realizadas para cada individuo.

Los Modelos de Regresión ajustados indican que el uso de las Redes Sociales tiene un peso mucho menor que las demás variables utilizadas en el estudio para explicar un posible cuadro de depresión.

La Soledad, el sentimiento de Inferioridad, la pérdida de Concentración y el Estrés tienen un peso notablemente mayor para este conjunto de datos.

Esta constatación coincide con los resultados del Cluster Analysis presentados anteriormente.

Todas las conclusiones presentadas aquí son referentes única y exclusivamente al conjunto de datos utilizado en este proyecto. Para hacer inferencias más concluyentes, habría que ampliar el estudio utilizando un muestreo mayor, entre otras cosas.

Pasos Futuros

El estudio que hemos realizado nos muestra que el perfil de uso de las redes sociales no parece ser un buen predictor de síntomas relacionados con la depresión. Sin embargo, los sentimientos de soledad e inferioridad, los problemas de concentración, el estrés y la fatiga sí resultan predictoras de un posible riesgo de sufrir depresión.

Lo que hemos aprendido con este modelo predictivo nos permitiría un siguiente paso: construir una herramienta de procesamiento natural del lenguaje que detecte usuarios en riesgo de sufrir depresión en base a la identificación de contenido emocional relacionado con las variables detectadas en nuestro estudio.

Integrantes

  • Henry Corazza
  • Daniel Alcalá
  • Ana Patricia Bautista
  • Sergio Hernando
  • Sergio Navarro

Presentación del proyecto: DemoDay

Repositorio

En el siguiente repositorio se encuentra el código usado para desarrollar esta aplicación: https://github.com/SaturdaysAI/Projects/tree/master/Donostia/Donostia2020/AISaturdays-depresion-rrss

¡Más inteligencia artificial!

La misión de Saturdays.ai es hacer la inteligencia artificial más accesible (#ai4all) mediante cursos y programas intensivos donde se realizan proyectos para el bien (#ai4good).

Infórmate de nuestro master sobre inteligencia artifical en https://saturdays.ai/master-ia-online/

Si quieres aprender más inteligencia artificial únete a nuestra comunidad en community.saturdays.ai o visítanos en nuestra web www.saturdays.ai ¡te esperamos!

Comments are closed.