A7U1_Equipo6

Héctor Leal, Luis Marín, José Orozco, Aldo Mendívil

15/3/2022

Estado de Ánimo de los tuiteros en México.

Introducción

En México el Instituto Nacional de Estadística y Geografía (INEGI) tiene una aplicación capaz de distinguir el estado de ánimo de los Mexicanos usuarios de Twitter (Red social enfocada a compartir información) a partir de de los tweets (Texto corto de 280 caracteres) que estos mismos postean en sus perfiles, la forma en la que este algoritmo funciona esta documentada en el siguiente enlace a documentación. un dato muy importante a tomar en cuenta, es que no se toman en cuenta los tweets de todos los Mexicanos, sólo se toman aquellos tweets dónde el usuario habilitó la opción de “georeferencia”.

En el presente documento analizaremos cómo ha variado el discurso de los Mexicanos en twitter desde 2016 hasta el día de hoy en 2022.

Logo de Twitter

Estado de Ánimo

El estado de ánimo es el humor o tono sentimental, agradable o desagradable, que acompaña a una idea o situación y se mantiene por algún tiempo; ya sea individual o grupalmente.

Covid-19: Un problema mundial

Sin duda alguna no hay nada que nos cambie más de manera emocional que un cambio de paradigmas a los que estamos impuestos o vemos como “normalidad”, como bien sabemos, el virus Sars-Covid 19 llegó a México en los primeros meses del año 2020, pero se tomaron acciones por parte de la secretaría de salud hasta marzo del mismo año cuando se comenzó a preveer que habría contagios masivos, algunas de las acciones fue el aislamiento de todas las personas entre otras medidas que disminuían la interacción social.

Con base a lo anterior, analizaremos más a detalle cómo la pandemia de covid-19 afectó al estado de animo de las personas (si lo afectó de alguna manera) en comparación a cómo se comportaban años atrás y realizaremos una comparación para ver si el discurso ha mejorado, empeorado o se ha mantenido igual a lo largo del tiempo.

Imagen Ilustrativa 1.1

Objetivo

El objetivo del siguiente caso de estudio es analizar los datos proporcionados por el Instituto Nacional de Estadística y Geografía para comparar estado de ánimo de los twitteros en México entre los años 2016-2022, esto con el fin de observar la variabilidad de tweets positivos o negativos antes y durante el evento que azotó a la humanidad, la pandemia del virus COVID-19.

Imagen Ilustrativa 1.2

Datos y Paquetes

Paquetes

Los paquetes a utilizar para el siguiente caso son los siguiente;

library(pacman)
p_load("DT","xfun","ggplot2", "readr","tseries","ggfortify","tidyr", "dplyr","prettydoc",  "psych", "GGally", "stringr","vembedr", "xfun","gridExtra","corrplot", "plotly","base64enc", "htmltools", "mime", "xfun", "prettydoc","readr", "knitr",  "gganimate","gifski","scales")

Datos

Los datos que analizaremos son obtenidos directamente de la página oficial del INEGI el cual puedes consultar bajo el nombre de animotuitero. La información es de acceso público y puedes descargar este mismo documento en formato .csv desde el link proporcionado.

Importamos los datos desde el .csv

dataTwitter <- read_csv("twitterData.csv")
## Rows: 2255 Columns: 7
## -- Column specification --------------------------------------------------------
## Delimiter: ","
## chr  (2): tipo_usuario, lugar
## dbl  (4): tuits_negativos, indice, recoleccion_promedio, tuits_positivos
## date (1): fecha
## 
## i Use `spec()` to retrieve the full column specification for this data.
## i Specify the column types or set `show_col_types = FALSE` to quiet this message.
dataTwitter
## # A tibble: 2,255 x 7
##    fecha      tuits_negativos indice recoleccion_promedio tipo_usuario lugar
##    <date>               <dbl>  <dbl>                <dbl> <chr>        <chr>
##  1 2016-01-01           34401   2.98               136802 todos        NAC  
##  2 2016-01-02           34689   2.52               122121 todos        NAC  
##  3 2016-01-03           39431   2.41               134428 todos        NAC  
##  4 2016-01-04           46229   2.37               156001 todos        NAC  
##  5 2016-01-05           44575   2.25               144751 todos        NAC  
##  6 2016-01-06           43144   2.31               142602 todos        NAC  
##  7 2016-01-07           42547   2.26               138627 todos        NAC  
##  8 2016-01-08           46027   2.21               147592 todos        NAC  
##  9 2016-01-09           38919   2.57               138984 todos        NAC  
## 10 2016-01-10           40552   2.38               137241 todos        NAC  
## # ... with 2,245 more rows, and 1 more variable: tuits_positivos <dbl>

Conociendo los datos a traves de una tabla interactiva

datatable(dataTwitter)

Significado de los datos.

Como podemos observar, los datos vienen con una marca de la fecha, en este caso diaria desde el 1 de enero del 2016 hasta el 9 de marzo del 2022.

  • Tuits positivos y negativos - Son la cantidad de tweets que la aplicación detectó y categorizó como positivo o negativo.

  • Recolección promedio - Es la cantidad de tweets recolectados en dicho día.

  • Indice - Se calcula a través de (tuitsPositivos / tuitsNegativos); entre mayor, significa mejor estado de ánimo.

  • Tipo de Usuario - Se refiere a si es ciudadano mexicano o turista.

  • Lugar - En este caso todos son NAC (Nacional).

Desarrollo

Representación gráfica de los datos

Para comprender mejor los datos, vamos a ver los datos con una gráfica interactiva.

plot_ly(data = dataTwitter, x = dataTwitter$fecha , y = dataTwitter$indice, type = 'scatter' , mode = 'lines')%>% layout(title = 'Estado de ánimo de twitteros en México',
         yaxis = list(zeroline = FALSE, title = 'Indice'),
         xaxis = list(zeroline = FALSE), title = 'Fecha')

(Tomando en cuenta que a mayor índice, mejor estado de ánimo)

Curiosamente, vemos a través de esta gráfica que nunca se han tenido mas tweets negativos que positivos (recordando que el índice se calcula [tweets positivos / tweets negativos]) aún que si vemos algunos puntos en donde el índice era extremadamente bajo y en un caso casí llego a 1.

Primer acercamiento a los datos.

Podemos observar en la gráfica que hay 4 momentos en toda la historia de nuestros datos en los cuales el índice descendió a menos de 1.4.

Si nos vamos a buscar en noticias qué sucedio en esos días, encontramos lo siguiente:

  • (18 de Octubre de 2019) - La aprhension y posterior liberación de un líder del cártel de Sinaloa.

  • (17 de Febrero de 2020) - El trágico fallecimiento de una niña llamada Fátima.

  • (4 de Mayo de 2021) - La caída de la Línea 12 del metro de la Ciudad de México.

  • (6 de Marzo de 2022) - El incidente en el estadio Corregidora en Querétaro.

Como podemos observar, todos los incidentes que nos llevaron a tener un discurso de odio / mal estado de ánimo a los mexicanos son causados por tragedias ocurridas dentro del país, donde las personas se enteran de las noticias por medio de esta red social y lanzan su opinión al respecto.

También podemos observar que los picos más altos se dan en días festivos cómo lo son:

  • Año nuevo

  • Día de las Madres

  • Día del Niño

  • Navidad

Y algunos otros sucesos que no se atienen a una fecha en particular del año como lo son partidos de futbol, eventos mundiales o nacionales.

Comparando los datos.

Como vimos anteriormente, el estado de ánimo en twitter es afectado de manera negativa por tragedias y aumenta en fechas familiares o eventos importantos, pero la pregunta aquí es ¿que tanto afectó la pandemia al estado de ánimo en twitter? y ¿ha mejorado o empeorado desde que comenzó?

Vamos a ver esta comparativa de manera gráfica

Dividiendo los datos por año

dataTwitter2022 <- dataTwitter%>% 
  filter(between(fecha, as.Date("2022-01-01"), as.Date("2022-12-31")))

dataTwitter2022 <- cbind(dataTwitter2022, anio=2022)

dataTwitter2021 <- dataTwitter%>% 
  filter(between(fecha, as.Date("2021-01-01"), as.Date("2021-12-31")))

dataTwitter2021 <- cbind(dataTwitter2021, anio=2021)

dataTwitter2020 <- dataTwitter%>% 
  filter(between(fecha, as.Date("2020-01-01"), as.Date("2020-12-31")))

dataTwitter2020 <- cbind(dataTwitter2020, anio=2020)

dataTwitter2019 <- dataTwitter%>% 
  filter(between(fecha, as.Date("2019-01-01"), as.Date("2019-12-31")))

dataTwitter2019 <- cbind(dataTwitter2019, anio=2019)

dataTwitter2018 <- dataTwitter%>% 
  filter(between(fecha, as.Date("2018-01-01"), as.Date("2018-12-31")))

dataTwitter2018 <- cbind(dataTwitter2018, anio=2018)

dataTwitter2017 <- dataTwitter%>% 
  filter(between(fecha, as.Date("2017-01-01"), as.Date("2017-12-31")))

dataTwitter2017 <- cbind(dataTwitter2017, anio=2017)

dataTwitter2016 <- dataTwitter%>% 
  filter(between(fecha, as.Date("2016-01-01"), as.Date("2016-12-31")))

dataTwitter2016 <- cbind(dataTwitter2016, anio=2016)


newDataTwitter = rbind(dataTwitter2016 , dataTwitter2017 , dataTwitter2018 , dataTwitter2019 , dataTwitter2020 , dataTwitter2021 , dataTwitter2022)

Graficas de variación de estado de ánimo

Para comparar como ha evolucionado el estado de ánimo de los Mexicanos a través del tiempo vamos a comparar los datos utilizando gráficas de caja y bigotes filtradas por años para tener una visión general.

boxplot(newDataTwitter$indice~newDataTwitter$anio ,col = "blue", xlab="Año", ylab="Indice", main="Estado de Ánimo de twitteros")

abline(h = mean(dataTwitter2016$indice) , col = "green")
abline(h = mean(newDataTwitter$indice) , col = "orange")
abline(h = mean(dataTwitter2020$indice) , col = "red")

#### Representación de los datos

  • Línea verde - Media de estado de ánimo más alta registrada
  • Línea naranja - Media de estado de ánimo general.
  • Línea roja - Media de estado de ánimo mínima registrada.

Como podemos observar, el estado de ánimo de los twitteros tuvo una tendencia a la baja desde su punto más alto en 2016 hasta el punto más bajo en 2020, que fue el año dónde sucedió el inicio de la pandemia y sigue afectandonos hasta este año 2022, pero se puede ver una mejora significativa, llegando incluso a superar la media total de estado de ánimo (línea naranja) en lo que va del año 2022, esto se puede deber en parte a que se han estado tomando medidas para volver a la normalidad post-pandemia lo cual significa que más personas comienzan a salir a convivir con los demás.

También notamos que en todos los años tenemos valores extremos tanto positivos como negativos, esto debido a ciertos sucesos que impáctan a la sociedad los cuales generan altos flujos de opiniones entre las personas, afortunadamente notamos que los valores extremos se encuentran del lado positivo, por lo que podemos decir que en general, pareciera que tenemos sucesos más sucesos extraordinarios buenos, que malos.

Gráfica comparativa interactiva

En la gráfica a continuación vamos a poder comparar de manera directa el índice de estado de ánimo entre los diferentes años para tener una comparativa directa más visual.

p <- plot_ly(x=newDataTwitter, y=dataTwitter2016$indice, mode = 'lines', type="scatter", name="Indice 2016") %>%
  layout(title = 'Estado de ánimo de twitteros en México' ,
         yaxis = list(zeroline = FALSE, title = 'Indice'),
         xaxis = list(zeroline = FALSE, title = 'Día del Año'), legend = list(font = list(size = 15)))
p <- add_trace(p,y=dataTwitter2017$indice, name="Indice 2017")
p <- add_trace(p,y=dataTwitter2018$indice, name="Indice 2018")
p <- add_trace(p,y=dataTwitter2019$indice, name="Indice 2019")
p <- add_trace(p,y=dataTwitter2020$indice, name="Indice 2020")
p <- add_trace(p,y=dataTwitter2021$indice, name="Indice 2021")
p <- add_trace(p,y=dataTwitter2022$indice, name="Indice 2022")
p

Decesos Covid 19

url_decesos <- "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_deaths_global.csv"
datos_decesos <- read.csv(url_decesos)
dec_mex  <- t(datos_decesos[datos_decesos$Country.Region=="Mexico" ,])
Fecha <- seq(from = as.Date("2020-01-22"), to = as.Date("2020-12-18"), by = "day"   )
vec1 <- as.vector(dec_mex)
vec2 <- vec1[5:336]
num1 <- as.numeric(vec2)
Decesos <- as.vector(num1)
datos1 <- data.frame(Fecha,Decesos)
gcov <- ggplot(data = datos1) +
  geom_line(aes(Fecha, Decesos, colour="Decesos"))  +
  xlab("Fecha") +
  ylab("COVID-19 en México") +
  labs(colour="casos")+
  ggtitle("Casos de COVID-19 en México (Fuente: JHU CSSE") +
  scale_y_continuous(labels = comma)
gcov

Conclusion

Como vimos, el estado de ánimo de los Mexicanos ya tenía una tendencia a bajar antes del inicio de la pandemia y llegó al punto más bajo durante la misma, pero al parecer estamos retomando valores normales e incluso por encima de la media si tomamos en cuenta lo que va del año en curso, por lo que podemos concluir que el estado de ánimo de las personas sí empeoró durante la pandemia en comparación a antes de la misma, pero, en el momento actual, mientras estamos dejando atrás poco a poco la pandemia, el estado de ánimo parece que volverá a los valores sin pandemia.

Conclusión Personal

Como podemos observar, las personas se comunican ahora a través de las redes sociales, se informan mediante las mismas e incluso opinan sobre ellas, lo que ha facilitado este análisis y nos permite ver cómo reaccionamos a ciertos eventos, ciertamente la pandemia afectó al estado de ánimo de las personas, como lo vimos durante el análisis, pero, todo indica que esa estapa está pasando y vamos a volver a un estado de ánimo igual al que teníamos antes de la pandemia.

Descarga este código

xfun::embed_file("A7U1_Equipo6.Rmd")

Download A7U1_Equipo6.Rmd

xfun::embed_file("twitterData.csv")

Download twitterData.csv