paint-brush
Creación de un sistema sistemático de puntuación ESG: métodospor@carbonization

Creación de un sistema sistemático de puntuación ESG: métodos

Demasiado Largo; Para Leer

Este proyecto tiene como objetivo crear un sistema de evaluación ESG basado en datos que pueda proporcionar una mejor orientación y puntuaciones más sistematizadas incorporando el sentimiento social.
featured image - Creación de un sistema sistemático de puntuación ESG: métodos
Carbonization Process Evolution Publication HackerNoon profile picture
0-item

Autores:

(1) Aarav Patel, Escuela Secundaria Regional Amity – correo electrónico: [email protected];

(2) Peter Gloor, Centro de Inteligencia Colectiva, Instituto de Tecnología de Massachusetts y autor correspondiente – correo electrónico: [email protected].

Tabla de enlaces

4. Métodos

La creación de este proyecto se dividió en tres pasos. El primer paso fue la recopilación de datos a través de web scrapers en varias redes sociales. Posteriormente, los datos del texto se preprocesaron y se convirtieron en puntuaciones de subcategorías mediante el procesamiento del lenguaje natural. Finalmente, se entrenaron algoritmos de aprendizaje automático utilizando estos datos para calcular una calificación ESG coherente.


Figura 2: Una descripción general de cómo el índice ESG basado en datos utiliza los datos de las redes sociales para calcular una calificación ESG coherente

4.1. Recopilación de datos

En lugar de utilizar presentaciones corporativas autoinformadas, se utilizaron datos de redes sociales para cuantificar ESG de manera integral. El análisis de redes sociales y el web scraping se pueden utilizar para identificar tendencias (Gloor et al., 2009). Las redes sociales populares como Twitter, LinkedIn y Google News tienen una gran cantidad de datos relacionados con casi cualquier tema. Estos datos pueden proporcionar una visión equilibrada de las prácticas ESG de las empresas y pueden ayudar a cubrir las tendencias ESG de las empresas tanto a corto como a largo plazo. También puede recopilar datos que podrían no reflejarse en las presentaciones. Finalmente, estos datos pueden resaltar directamente las preocupaciones de los externos, lo que puede guiar mejor las iniciativas ESG de las empresas para que tengan más impacto.


Figura 3: Palabras clave/temas utilizados para la recopilación de datos


Para ello, se creó una lista completa de palabras clave relevantes en materia ESG (figura 3). Esta lista de palabras clave se inspiró en subcategorías comúnmente utilizadas en las metodologías de calificación ESG actuales. Esta lista se utilizó para ayudar a recopilar datos de empresas disponibles públicamente en Wikipedia, LinkedIn, Twitter y Google News. Para recopilar datos, se desarrollaron web scrapers en Python. Los datos de Wikipedia se recopilaron utilizando la interfaz de programación de aplicaciones (API) de Wikipedia. Wikipedia sirve para dar una visión general de las prácticas de una empresa. Los datos de Google News se recopilaron identificando los principales artículos de noticias según una búsqueda en Google. Los enlaces a estos artículos fueron almacenados. La noticia sirve para brindar actualizaciones generales sobre desarrollos ESG notables. Los datos de Twitter se recopilaron con la ayuda de la biblioteca Snscrape. Snscrape es una API liviana que permite a los usuarios recopilar Tweets casi ilimitados (con ciertas restricciones sobre cuántos se pueden recopilar por hora) de casi cualquier período de tiempo. Se eligió Twitter principalmente para brindar comentarios de los consumidores sobre las prácticas de una empresa. Dado que la API de LinkedIn no admite la recopilación de publicaciones de LinkedIn, se creó un algoritmo desde cero para hacerlo. El algoritmo utilizó Selenium Chromedriver para simular un desplazamiento humano a través de una consulta de LinkedIn. En base a esto, el texto de cada publicación se recopiló y almacenó mediante solicitudes HTML a través de BeautifulSoup. LinkedIn sirve para proporcionar información más profesional sobre las prácticas de una empresa. Esta arquitectura de recopilación de datos permite actualizar y generar calificaciones en tiempo real según sea necesario. Posteriormente, los datos de cada subcategoría se almacenaron en un archivo CSV.


Estas cuatro redes sociales cubren una amplia gama de datos ESG de las empresas. Se recopilaron datos para la mayoría de las empresas del S&P 500 (excluido el sector inmobiliario). Los bienes raíces se excluyeron principalmente porque no recibieron tanta cobertura relacionada con cuestiones ESG (según el análisis a nivel de superficie), por lo que no parecían viables para el sistema propuesto. Esto garantiza que las empresas recopiladas estuvieran bien equilibradas entre sectores e industrias. Los web scrapers intentaron recopilar ~100 publicaciones/artículos para cada palabra clave en una red social. Sin embargo, a veces se recopilan menos datos debido a los límites de tasa de API y la disponibilidad limitada de datos para las empresas menos conocidas. Para acelerar la recopilación, se ejecutaron varios scripts simultáneamente. Al principio, los programas solían tener una velocidad limitada para recopilar tantos datos en un período de tiempo tan corto. Para resolver esto, se agregaron medidas de seguridad para pausar el programa en caso de que surgiera esto. Toda la recopilación de datos se realizó siguiendo los términos y condiciones de cada sitio. En total, se recopilaron aproximadamente ~937.400 puntos de datos en ~470 empresas, con un promedio de ~37 puntos por palabra clave de red social. La mayoría de estos datos se concentraron en 2021. Sin embargo, no se impuso un rango de fechas estricto porque eliminaría puntos de datos de empresas menos conocidas que ya tenían dificultades para recopilar suficiente información.


Una vez que se recopilaron todos los datos, se exportaron a una hoja de cálculo para su posterior análisis. Los datos se procesaron previamente utilizando RegEx (Expresiones regulares). Primero, se eliminaron las URL y los enlaces. Las menciones fueron reemplazadas por una palabra genérica para abstraer los nombres. Finalmente, se eliminaron los caracteres poco comunes y la puntuación. Esto ayudó a filtrar palabras/caracteres que podrían interferir con el análisis de PNL.

4.2. Análisis de PNL

Una vez que se limpiaron y organizaron los datos, se creó un algoritmo de PNL para su análisis. En primer lugar, se creó un algoritmo de relevancia ESG para filtrar datos irrelevantes en materia ESG que podrían obstruir los resultados. Para hacer esto, se utilizó la detección de palabras clave para ver si la publicación/artículo trataba de la empresa actual, así como de una o más de las subcategorías ESG. A continuación, se utilizó la biblioteca de reconocimiento de entidades con nombre del kit de herramientas de lenguaje natural (NLTK) de Python para determinar si una publicación estaba relacionada con la organización para eliminar datos no deseados. Por ejemplo, si se buscó la consulta "clima de manzanas", podría aparecer una publicación que dijera "El clima de primavera es el mejor momento para cultivar manzanos". Sin embargo, Named Entity Recognition podría identificar que esta frase no es relevante en materia ESG ya que “Apple” se utiliza como adjetivo. Por tanto, el algoritmo lo descartará del análisis. Por otro lado, si la publicación dijera: "Apple está invirtiendo 500 millones de dólares en iniciativas para el cambio climático", entonces el algoritmo determinaría que la publicación se refiere a la organización Apple. Este paso de filtración ayuda a eliminar información irrelevante para mejorar la calidad de los datos.


Después de la filtración, se utilizó el análisis de sentimiento de PNL para calificar si una publicación era positiva o negativa en materia de ESG. Se crearon dos algoritmos de PNL para hacer esto: el algoritmo de PNL de publicaciones cortas analizó cuerpos de texto más cortos (Tweets, publicaciones de LinkedIn) mientras que el algoritmo de PNL de artículos largos analizó los más largos (artículos de noticias, artículos de Wikipedia).


Se llevó a cabo un análisis literario de diferentes bibliotecas de análisis de sentimiento de Python. Después de comparar varias bibliotecas de análisis de sentimientos, como TextBlob, VADER, FastText y Flair, se descubrió que Flair superó a los otros clasificadores. Probablemente esto se deba a que los clasificadores simples de bolsa de palabras, como VADER o TextBlob, no lograron identificar las relaciones que tenían las diferentes palabras entre sí. Por otro lado, Flair utilizó vectores de palabras contextuales para analizar las relaciones a nivel de palabra y de carácter de una oración. Probablemente esta sea la razón por la que, cuando estos algoritmos se probaron en el Stanford Sentiment Treebank (SST) para calificar el sentimiento de crítica de películas en una escala del 1 al 5, se descubrió que el algoritmo Flair tuvo el mejor rendimiento con una puntuación F1 del 49,90 % (Akbik et al., 2018) (Rao et al., 2019) (figura 4). Entonces, el algoritmo de publicación breve se creó utilizando la biblioteca de análisis de sentimientos Flair. El algoritmo de artículo largo es esencialmente el algoritmo de publicación corta, pero se promedia en todos los párrafos del cuerpo relevantes (es decir, los párrafos que contienen el nombre de la empresa) de un artículo.


Figura 4: Comparación de la precisión de diferentes algoritmos de análisis de sentimientos en la base de datos SST-5


Estos algoritmos generales se optimizaron aún más para cada red social específica. Por ejemplo, el algoritmo de LinkedIn analizó el perfil del autor de una publicación de LinkedIn para eliminar los autoinformes. Esto se debe a que los ejecutivos a menudo discuten sus iniciativas y objetivos positivos, lo que puede diluir otras observaciones imparciales y, por tanto, interpretar los resultados. Además, para los algoritmos de Twitter y LinkedIn, si se encontraba una dirección de enlace dentro del texto, el algoritmo analizaría ese artículo para su evaluación.


Inicialmente, el algoritmo de análisis era muy lento ya que Flair tardaría entre 3 y 4 segundos en analizar una publicación. Entonces, se instaló una variación llamada "Flair sentiment-fast". Esto permitió a Flair realizar análisis por lotes en los que analiza varias publicaciones simultáneamente. Esto redujo significativamente el tiempo de análisis y sacrifica ligeramente la precisión.


Una vez que se calificaron todos los datos sin procesar, las puntuaciones se promediaron en una hoja de cálculo coherente. Se utilizó la imputación de la media para completar los datos faltantes de la subpuntuación. Estas puntuaciones de subcategorías pueden proporcionar a los ejecutivos desgloses del sentimiento social sobre cuestiones clave, brindándoles información concreta sobre qué áreas mejorar. Estos puntajes se pueden usar sin procesar para ayudar a guiar las iniciativas, o se pueden compilar más a través del aprendizaje automático para proporcionar una predicción ESG.

4.3. Algoritmos de aprendizaje automático

Después de recopilar los datos, se probaron diferentes modelos de aprendizaje automático. El objetivo de estos modelos era predecir una puntuación ESG de 0 a 100, siendo 0 el peor y 100 el mejor. La mayoría de estos modelos de aprendizaje supervisado eran algoritmos de regresión livianos que pueden aprender patrones no lineales con datos limitados. Algunos de estos algoritmos incluyen regresión de bosque aleatoria, regresión de vectores de soporte, regresión de K-vecinos más cercanos y regresión XGBoost (aumento de gradiente extremo). La regresión de bosque aleatoria opera construyendo varios árboles de decisión durante el tiempo de entrenamiento y generando la predicción media (Tin Kam Ho, 1995). La regresión de vectores de soporte identifica la línea de mejor ajuste dentro de un umbral de valores (Awad et al., 2015). La regresión de vecinos más cercanos predice un valor basado en el valor promedio de sus puntos de datos vecinos (Kramer, 2013). La regresión XGBoost (aumento de gradiente extremo) utiliza el aumento de gradiente combinando las estimaciones/predicciones de árboles de regresión más simples (Chen et al., 2016).


Estos algoritmos de regresión se entrenaron utilizando 19 funciones. Estas características incluyen el sentimiento promedio para cada una de las 18 palabras clave con una categoría adicional para Wikipedia. Fueron calibrados según las calificaciones públicas ESG de S&P Global para garantizar que no se desviaran mucho de las soluciones existentes. Se utilizó un raspador de calificaciones ESG con licencia pública en GitHub para recuperar las puntuaciones ESG de S&P Global para todas las empresas analizadas (Shweta-29). Se utilizaron técnicas de optimización, como la regularización, para evitar el sobreajuste y lograr una mayor precisión.


Antes de crear los algoritmos, se filtraron las empresas con menos de 5 artículos/publicaciones por subcategoría ESG. Esto dejó ~320 empresas para el análisis. Para crear y probar el algoritmo, se utilizaron ~256 empresas como datos de entrenamiento, mientras que ~64 empresas se utilizaron para datos de prueba. Estos resultados se utilizaron para determinar las capacidades predictivas del algoritmo.


Este documento está disponible en arxiv bajo licencia CC BY-NC-ND 4.0 DEED.