Estado de Ánimo de los tuiteros en México.
Introducción
Para empezar con el tema, ¿Qué es un estado de ánimo? Los estados de ánimo son parte de nuestra experiencia subjetiva, al igual que las emociones. Ambas son sensaciones que nuestro cuerpo genera en respuesta a determinados estímulos y factores ambientales, pero las emociones tienen un carácter más transitorio, ocurren y se desvanecen con rapidez.
¿Qué es Twitter? Twitter es un servicio que permite que los grupos de amigos, familiares y compañeros de trabajo se comuniquen y estén en contacto a través de mensajes rápidos y frecuentes. Las personas publican Tweets, que pueden contener fotos, videos, enlaces y texto. Estos mensajes se publican en tu perfil, se envían a tus seguidores.
En el siguiente documento se analizara como ha cambiado el estado de animo de los mexicanos al paso de los años en twitter.
Datos y Paquetes
library(pacman)
p_load("DT","xfun","ggplot2", "readr","tseries","ggfortify","tidyr", "dplyr","prettydoc", "psych", "GGally", "stringr","vembedr", "xfun","gridExtra","corrplot", "plotly")
Datos
Los datos que se utilizaran son sacados de la pagina del INEGI, el cual lo pueden ver aqui: https://www.inegi.org.mx/app/animotuitero/#/app/multiline
Se importan los datos desde el .csv
twits <- read_csv("twits.csv")
## Rows: 75 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.
twits
## # A tibble: 75 x 7
## fecha tuits_negativos indice recoleccion_promedio tipo_usuario lugar
## <date> <dbl> <dbl> <dbl> <chr> <chr>
## 1 2016-01-01 1269505 2.36 136739. todos NAC
## 2 2016-02-01 1098442 2.48 131794. todos NAC
## 3 2016-03-01 1296862 2.41 142092. todos NAC
## 4 2016-04-01 1360176 2.27 147715. todos NAC
## 5 2016-05-01 1471456 2.26 154664. todos NAC
## 6 2016-06-01 1447713 2.27 157116. todos NAC
## 7 2016-07-01 1400805 2.30 148718. todos NAC
## 8 2016-08-01 1409549 2.21 145745. todos NAC
## 9 2016-09-01 1249556 2.15 130977. todos NAC
## 10 2016-10-01 1158539 2.26 121517. todos NAC
## # ... with 65 more rows, and 1 more variable: tuits_positivos <dbl>
Datos en una tabla interactiva
datatable(twits)
Desarrollo
Gráfica de los datos interactiva
plot_ly(data = twits, x = twits$fecha , y = twits$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')
Como se puede observar en la grafica, el estado de animo de los twitteros era todo relativamente normal hasta que en marzo del 2020 hasta la actualidadlos twits se volvieron negativos por el inicio y por lo sucedido en la pandemia, tomando en cuenta que entre mas arriba la linea mas positivos los twitteros y entre mas abajo la linea mas negativos los twits
También podemos observar que los picos más altos se dan en días festivos cómo lo son:
- Año nuevo
- Navidad
- Día del Niño
- Entre otros
Dividiendo los datos por año
twits2022 <- twits%>%
filter(between(fecha, as.Date("2022-01-01"), as.Date("2022-12-31")))
twits2022 <- cbind(twits2022, anio=2022)
twits2021 <- twits%>%
filter(between(fecha, as.Date("2021-01-01"), as.Date("2021-12-31")))
twits2021 <- cbind(twits2021, anio=2021)
twits2020 <- twits%>%
filter(between(fecha, as.Date("2020-01-01"), as.Date("2020-12-31")))
twits2020 <- cbind(twits2020, anio=2020)
twits2019 <- twits%>%
filter(between(fecha, as.Date("2019-01-01"), as.Date("2019-12-31")))
twits2019 <- cbind(twits2019, anio=2019)
twits2018 <- twits%>%
filter(between(fecha, as.Date("2018-01-01"), as.Date("2018-12-31")))
twits2018 <- cbind(twits2018, anio=2018)
twits2017 <- twits%>%
filter(between(fecha, as.Date("2017-01-01"), as.Date("2017-12-31")))
twits2017 <- cbind(twits2017, anio=2017)
twits2016 <- twits%>%
filter(between(fecha, as.Date("2016-01-01"), as.Date("2016-12-31")))
twits2016 <- cbind(twits2016, anio=2016)
newTwits = rbind(twits2016 , twits2017 , twits2018 , twits2019 , twits2020 , twits2021 , twits2022)
Grafica de caja y bigote sobre el estado de ánimo
Para comparar como se ha desarrollado el estado de ánimo de los Twitteros a traves de los años se utilizara una grafica de caja y bigotes.
boxplot(newTwits$indice~newTwits$anio ,col = "green", xlab="Año", ylab="Indice", main="Estado de Ánimo de twitteros")
abline(h = mean(twits2016$indice) , col = "blue")
abline(h = mean(newTwits$indice) , col = "yellow")
abline(h = mean(twits2020$indice) , col = "red")
La línea azul representa la media de estado de ánimo más alta. La línea amarilla representa la media de estado de ánimo en general. La línea roja representa media de estado de ánimo mínima.
Como se puede ver en la grafica que apartir del año 2016 empezó a bajar el estado de animo drasticamente y esto se debe a varios factores, pero despues del año 2020 este empezó a subir.
Gráfica comparativa interactiva
En la siguiente gráfica se puede comparar el indice de los estados de ánimo entre diferentes años.
p <- plot_ly(x=newTwits, y=twits2016$indice, mode = 'lines', type="scatter", name="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=twits2017$indice, name="2017")
p <- add_trace(p,y=twits2018$indice, name="2018")
p <- add_trace(p,y=twits2019$indice, name="2019")
p <- add_trace(p,y=twits2020$indice, name="2020")
p <- add_trace(p,y=twits2021$indice, name="2021")
p <- add_trace(p,y=twits2022$indice, name="2022")
p
Conclusión Personal
Al haber hecho este trabajo y analizado esos datos puedo concluir que la pandemia afectó terriblemente al estado de ánimo de las personas, ademas el estado de animo esta muy influenciado por las fechas y festividades del año.