library(pacman)
p_load("DT","xfun","ggplot2", "readr","tseries","ggfortify","tidyr", "dplyr")
Estado de animo de los Twitteros en México
Durante el inicio de la pandemia, muchas personas se sintieron angustiadas por el futuro de la humanidad debido a la situación que comenzamos a vivir. La pandemia nos trajo una etapa de nuestras vidas al que denominamos “confinamiento” en la que muchas personas, sobre todo las que no estaban acostumbradas a estar en su casa por largos periodos de tiempo comenzaran a desarrollar transtornos de ansiedad. . Se midieron indicadores de frecuencia y sentimientos, y se agruparon términos para identificar tópicos y determinar el interés de los usuarios sobre estos, mediante métodos digitales y de lenguaje computacional en R.
Imagen representativa
Negatividad en la pandemia
Vivir una pandemia no es para nada facil y menos si es la primera vez que te toca presenciar este acontecimiento. Para muchos, esto fue algo tan inesperado y desconocido que les tomó por sorpresa. Esto hizo que muchas personas se sintieran angustiadas al inicio. Pero el verdadero problema no fue la pandemia sino el confinamiento. La cantidad de tiempo que las personas pasaban encerradas aumentó el número de enfermedades de la salud mental en las personas y se puede reflejar en los tweets negativos.
Imagen representativa
Datos
Los datos fueron tomados del Inegi proporcionados en la siguiente página: https://www.inegi.org.mx/app/animotuitero/#/app/collect, en los cuales podemos encontrar el número de twitts positivos y negativos ya sea diarios, semanales, mensuales o anuales. Para este caso utilizaremos los datos diarios.
Importación de datos
tweets <- read_csv("twitter_diaria.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.
datosTwitter <- data.frame(tweets)
datatable(datosTwitter)
En esta tabla se muestran los tweets positivos y negativos agrupados por mes.
tuitsAntesNegativos= ts(tweets[2], start = c(2016), end = c(2020), frequency = 12)
tuitsAntesNegativos
## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2016 34401 34689 39431 46229 44575 43144 42547 46027 38919 40552 48545 43537
## 2017 47347 47837 39033 38003 40682 43126 41019 41634 39618 38079 34354 40478
## 2018 42117 41156 41919 40741 37697 35741 36328 41179 39212 40859 34781 27802
## 2019 35124 42267 38856 39781 39921 39653 38781 37918 39535 41594 40646 40679
## 2020 40914
tuitsAntesPositivos= ts(tweets[7], start = c(2016), end = c(2020), frequency = 12)
tuitsAntesPositivos
## Jan Feb Mar Apr May Jun Jul Aug Sep Oct
## 2016 102401 87432 94997 109772 100176 99458 96080 101565 100065 96689
## 2017 96110 100735 96099 95216 99796 92845 91236 92049 91049 92008
## 2018 92564 91793 94864 95124 97175 93764 95785 98240 92347 95664
## 2019 92330 106284 95356 96370 102481 101153 106535 103034 107637 97946
## 2020 94602
## Nov Dec
## 2016 97004 91623
## 2017 87731 96211
## 2018 83783 75733
## 2019 92341 94491
## 2020
tuitsDespuesNegativos= ts(tweets[2], start = c(2020), end = c(2022), frequency = 12)
tuitsDespuesNegativos
## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2020 34401 34689 39431 46229 44575 43144 42547 46027 38919 40552 48545 43537
## 2021 47347 47837 39033 38003 40682 43126 41019 41634 39618 38079 34354 40478
## 2022 42117
tuitsDespuesPositivos= ts(tweets[7], start = c(2020), end = c(2022), frequency = 12)
tuitsDespuesPositivos
## Jan Feb Mar Apr May Jun Jul Aug Sep Oct
## 2020 102401 87432 94997 109772 100176 99458 96080 101565 100065 96689
## 2021 96110 100735 96099 95216 99796 92845 91236 92049 91049 92008
## 2022 92564
## Nov Dec
## 2020 97004 91623
## 2021 87731 96211
## 2022
twittsST <- ts(datosTwitter[ ,c(2,7)],start = c(2016,1),end = c(2022,1),frequency = 12)
twittsST
## tuits_negativos tuits_positivos
## Jan 2016 34401 102401
## Feb 2016 34689 87432
## Mar 2016 39431 94997
## Apr 2016 46229 109772
## May 2016 44575 100176
## Jun 2016 43144 99458
## Jul 2016 42547 96080
## Aug 2016 46027 101565
## Sep 2016 38919 100065
## Oct 2016 40552 96689
## Nov 2016 48545 97004
## Dec 2016 43537 91623
## Jan 2017 47347 96110
## Feb 2017 47837 100735
## Mar 2017 39033 96099
## Apr 2017 38003 95216
## May 2017 40682 99796
## Jun 2017 43126 92845
## Jul 2017 41019 91236
## Aug 2017 41634 92049
## Sep 2017 39618 91049
## Oct 2017 38079 92008
## Nov 2017 34354 87731
## Dec 2017 40478 96211
## Jan 2018 42117 92564
## Feb 2018 41156 91793
## Mar 2018 41919 94864
## Apr 2018 40741 95124
## May 2018 37697 97175
## Jun 2018 35741 93764
## Jul 2018 36328 95785
## Aug 2018 41179 98240
## Sep 2018 39212 92347
## Oct 2018 40859 95664
## Nov 2018 34781 83783
## Dec 2018 27802 75733
## Jan 2019 35124 92330
## Feb 2019 42267 106284
## Mar 2019 38856 95356
## Apr 2019 39781 96370
## May 2019 39921 102481
## Jun 2019 39653 101153
## Jul 2019 38781 106535
## Aug 2019 37918 103034
## Sep 2019 39535 107637
## Oct 2019 41594 97946
## Nov 2019 40646 92341
## Dec 2019 40679 94491
## Jan 2020 40914 94602
## Feb 2020 37659 93483
## Mar 2020 39047 101287
## Apr 2020 39771 96473
## May 2020 40344 92336
## Jun 2020 25731 60898
## Jul 2020 32683 77274
## Aug 2020 24428 58417
## Sep 2020 29111 80843
## Oct 2020 38719 98482
## Nov 2020 50372 129741
## Dec 2020 41075 98033
## Jan 2021 40870 103955
## Feb 2021 40547 94638
## Mar 2021 39683 98942
## Apr 2021 38156 97899
## May 2021 38114 103154
## Jun 2021 37973 99533
## Jul 2021 41352 96870
## Aug 2021 42023 99510
## Sep 2021 48202 96191
## Oct 2021 43881 95608
## Nov 2021 36746 93498
## Dec 2021 37097 98650
## Jan 2022 44881 111260
Podemos observar lo que es una variable orientada al tiempo, tiempo en el cual se nos indica la cantidad de tweets positivos y negativos por mes, empezando en enero de 2016 y terminando en enero de 2022, esto se puede analizar por la frecuencia de tweets negativos y positivos en este transcurso de tiempo, ya que representa el periodo de un año.
Serie de tiempo de tweets positivos y negativos
autoplot(twittsST, ts.colour = "red",ts.linetype = "dotted")
Este gráfico representa una serie de tiempo, la cual indica el comportamiento de los tweets positivos y negativos a lo largo de estos años. se observa el contraste mencionado de tweets de forma más visual, asi dandonos cuenta de que desde el año 2016, hasta el presente se intensificaron los twits negativos en la pandemia, especificamente cuando las olas de contagios estaban muy presentes en cada conversación del día a día, ya que las personas tenían (y tienen) miedo de enfermarse y empezaron a padecer transtornos psicológicos por el encierro de esta misma.
plot(tuitsAntesPositivos, main ="Tweets positivos antes de iniciar la pandemia", xlab="Año", ylab="Tweets positivos")
En esta gráfica podemos observar como los tweets positivos antes de iniciar la pandemia del COVID-19 tenian caídas y subidas pero al final siempre se mantenían regulares con su tendencia.
plot(tuitsDespuesPositivos, main ="Tweets positivos después de iniciar la pandemia", xlab="Año", ylab="Tweets positivos")
En esta gráfica podemos observar como los tweets positivos despues de iniciar la pandemia talvez ya no eran tan irregulares como antes pero su tendencia era una tendencia bajista ya que íban en decadencia.
Conclusiónes
Conclusión
Como conclusión sabemos que la pandemia ha influído mucho en las personas y mucho más en la salud mental, especialmente de una manera negativa. Las personas al no poder salir de sus casas comenzaron a utilizar mas las redes sociales para poder comunicarse entre ellas y saber que estaba pasando en el mundo. También compartían opiniones y gracias a estos datos podemos saber la manera en la que se sentían en ese momento. Twitter es la red social que más influyó en este caso para saber el estado de animo de las personas. Gracias a saber identificar los tweets positivos y negativos podemos rectificar que las personas se sentían con menos ánimo al iniciar la pandemia.
Relacion de las variables: Decesos, movilidad y twits negativos
En esta parte buscamos evaluar si las variables de decesos, movilidad y el positivismo tienen una relación entre si, y comprobar la hipotesis de que a medida que los decesos aumentan la movilidad decrese y el positivismo tambien baja
p_load("base64enc", "htmltools", "mime", "prettydoc", "knitr","plotly", "gganimate","gifski","scales")
Importar datos
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)
datos_movilidad <- read.csv("2020_MX_Region_Mobility_Report.csv")
datos_twitter <- read.csv("twitter_diaria.csv")
# Definir variables
dec_mex <- t(datos_decesos[datos_decesos$Country.Region=="Mexico" ,])
mov_mex <- datos_movilidad
twit_mex <- datos_twitter
Formatear campos
Eliminar campos no utilizables Formatear las fechas Crear un marco de datos (data frame)
#vector de fecha
#vector de fecha
Fecha <- seq(from = as.Date("2020-02-15"), to = as.Date("2020-12-31"), by = "day" )
#casos twits
vec1 <- as.vector(twit_mex$indice)
vec2 <- vec1[1505:1825]
num1 <- as.numeric(vec2)
Twits <- as.vector(num1)
#decesos
vec1 <- as.vector(dec_mex)
vec2 <- vec1[29:349]
num1 <- as.numeric(vec2)
Decesos <- as.vector(num1)
#movilidad
vec1 <- as.vector(mov_mex$residential_percent_change_from_baseline)
vec2 <- vec1[1:321]
num1 <- as.numeric(vec2)
Movilidad <- as.vector(num1)
#generación de un marco de datos (data frame)
datos1 <- data.frame(Fecha, Twits, Decesos, Movilidad)
Graficacion de los datos
Graficamos los datos para compararlos entre si
gcov <- ggplot(data = datos1) +
geom_line(aes(Fecha, Twits, colour="Positivismo")) +
geom_line(aes(Fecha, Decesos/1000, colour="Decesos")) +
geom_line(aes(Fecha, Movilidad, colour="Residencia")) +
xlab("Fecha") +
ylab("Cantidad") +
labs(colour="casos")+
ggtitle("Decesos, Residencia y positivismo") +
scale_y_continuous(labels = comma)
gcov
Grafica interactiva
ggplotly(gcov)
Grafica animada
ggplot(data = datos1) +
geom_line(aes(Fecha, Twits, colour="Positivismo")) +
geom_line(aes(Fecha, Decesos/1000, colour="Decesos")) +
geom_line(aes(Fecha, Movilidad, colour="Residencia")) +
xlab("Fecha") +
ylab("Cantidad") +
labs(colour="casos")+
ggtitle("Decesos, Residencia e indice") +
scale_y_continuous(labels = comma) +
transition_reveal(Fecha)
Análisis de correlación: ¿las variables están correlacionadas?
datos2 <- data.frame(Twits, Decesos, Movilidad)
round(cor(x = datos2, method="pearson"), 3)
## Twits Decesos Movilidad
## Twits 1.000 0.774 -0.186
## Decesos 0.774 1.000 -0.160
## Movilidad -0.186 -0.160 1.000
Conclusion
En conclusion podemos notar que no existe una relacion clara entre decesos y el positivismo aunque estos tengan una buena relacion positiva, podemos notar que la movilidad es un dato muy disperso y tiene una relacion muy baja con las demas variables, notando todo esto, podemos decir que a medida que las muertes aumentan, la movilidad sigue su ritmo por x factor y el positivismo en twitter se mantiene estable.