Continuando con la discusión del artículo anterior se realizó un nuevo análisis, considerando ahora seis hashtags populares durante el paro nacional de octubre pasado en Ecuador. Los tweets fueron obtenidos utilizando un programa java con menos capacidad que la API oficial y gratuita de Twitter, pero que permite recuperar publicaciones de cualquier época.

library(dplyr)

HashTags = c("DialogoPorLaPaz", "EcuadorPaisDePaz", "ElParoNoPara",
             "ElParoSigue", "ParoNacionalEC", "ParoNacionalEcuador")

df_all = purrr::map(HashTags, readHashTag) %>% # la función readHashTag()
   purrr::reduce(bind_rows) %>%                # fue definida al final
   mutate_at("ht", forcats::fct_infreq)        # del artículo anterior

Con este código se ha importado y unido los archivos de valores separados por comas -uno por cada hashtag- generados por el programa java. Un paso importante fue renombrar (en este caso, según el formato “output_HashTag.csv”) cada archivo generado por el programa; caso contrario, el archivo sería reescrito. Se obtuvieron 1399 tweets de 618 usuarios diferentes, con las siguientes frecuencias:

library(ggplot2)

my_plot = ggplot() + coord_flip() + theme_minimal() +
   theme(axis.title = element_blank(), legend.position = "none")

my_plot + geom_bar(aes(ht, fill = ht), df_all)
Frecuencia de *tweets* por *hashtag*

Figure 1: Frecuencia de tweets por hashtag

En concordancia con lo expuesto en el artículo anterior, #EcuadorPaisDePaz se utilizó con mayor frecuencia comparado con otros hashtags que, en cambio, demostraban aprobación del paro. Solo #ParoNacionalEC fue utilizado en más tweets; no obstante, la popularidad de cada hashtag es tal vez un aspecto más revelador que la frecuencia de uso. En este sentido, los favoritos y los retweets (RTs) constituyen medidas de la popularidad. La distribución de ambas variables -diferenciando según hashtag- se visualizaría bien en boxplots, pero para esta representación primero se debe “alargar” los datos vía tidyr::pivot_longer().

library(tidyr)

df_long = pivot_longer(df_all, c(favorites, retweets))

my_plot + geom_boxplot(aes(ht, value, fill = ht), df_long) +
   facet_wrap(~name) + scale_y_log10()
*Boxplots* de *favorites* y *retweets* por *hashtag*

Figure 2: Boxplots de favorites y retweets por hashtag

Parece ser que la distribución de favoritos no varía considerablemente entre diferentes hashtags, mientras que en RTs la mayor diferencia existe entre #DialogoPorLaPaz y #ParoNacionalEC; este último sería el hashtag más popular. Hay que notar, sin embargo, los valores atípicos de favoritos y RTs para #EcuadorPaisDePaz, los cuales representarían unas pocas publicaciones que recibieron mucha atención. Si este es el caso, es algo lamentable pues significa que el discurso gubernamental tuvo cierto impacto. Para observar los datos con más detenimiento, la siguiente tabla presenta la razón de contribución (promedio de tweets por usuario) y un resumen de la distribución de RTs.

Table 1: Razón de contribución y distribución de retweets
Hashtag Tweets Usuarios Razón RTsMedio RTsMáximo RTsTotal
#ParoNacionalEC 429 223 1.92 306.0 3627 131275
#EcuadorPaisDePaz 367 158 2.32 259.2 8592 95129
#ParoNacionalEcuador 244 149 1.64 283.5 5426 69183
#ElParoSigue 186 106 1.75 278.7 2133 51830
#ElParoNoPara 132 91 1.45 263.2 2473 34743
#DialogoPorLaPaz 86 61 1.41 102.9 627 8848

Nuevamente se halló que el uso de #EcuadorPaisDePaz fue el más parecido al spam, con más tweets y menos usuarios. Mientras que #DialogoPorLaPaz tuvo la razón de contribución más baja, es decir que fue publicado por más usuarios diferentes; aunque también es el hashtag menos utilizado, así que resulta ambiguo discernir con quiénes se relacionó mayoritariamente. Por otra parte, según el promedio y el total de RTs, es claro que #ParoNacionalEC tuvo el mayor alcance; se observó que los tweets con este hashtag servían para reportar acciones de los sectores movilizados, y la represión en contra de ellos. Este es el tweet con #ParoNacionalEC que recibió más RTs:

El discurso gubernamental, pretendiendo minimizar una protesta cuyas demandas fueron justas, recibió más RTs en este tweet del presidente:

A continuación se presta atención al hecho de que, unas pocas veces, los hashtags estudiados fueron utilizados en combinación. Esto solo sucedió en 44 tweets, de manera que no se aporta información adicional al análisis; con todo, la combinación #ParoNacionalEcuador y #ElParoSigue ocurrió once veces y fue la más frecuente. La manera de averiguar esto es “ensanchar” los datos, esta vez a través de tidyr::pivot_wider(), y calcular todas las combinaciones de hashtags posibles.

df_wide = mutate(select(df_all, id, user, name = ht), value = "x") %>%
   pivot_wider(values_fill = " ") %>%
   rename_with(stringr::str_remove_all, -c(id, user), "[[:lower:]]") %>%
   group_by(across(-c(id, user))) %>%
   summarise(Tweets = n_distinct(id), Usuarios = n_distinct(user))

En la siguiente tabla los hashtags son representados con sus iniciales; se contó el número de tweets y de usuarios para cada combinación.

Table 2: Resumen de tweets con hashtags combinados
#DPLP #EPDP #EPNP #EPS #PNEC #PNE Tweets Usuarios
x x 6 6
x x 14 11
x x 4 4
x x x 1 1
x x 6 6
x x 6 6
x x 4 2
x x 1 1
x x 2 1

Con los datos obtenidos también es posible visualizar el tiempo de publicación de los tweets. El siguiente gráfico fue generado de manera que cada columna encierre seis horas. Los tiempos son congruentes con la aparición, posterior al inicio del paro, de la propaganda #EcuadorPaísDePaz; también son congruentes con la expectativa del #DialogoPorLaPaz, refiriéndose a la reunión del 13 de octubre donde se acordó derogar las medidas económicas, terminando efectivamente el paro.

df_time = mutate(df_all, across(time, lubridate::round_date, "6 hours"))

my_plot + geom_bar(aes(time, fill = ht), df_time) +
   scale_y_continuous(breaks = 20*0:5) + coord_cartesian() +
   theme(legend.title = element_blank(), legend.position = "bottom")
Tiempo de publicación de los *tweets* por *hashtag*

Figure 3: Tiempo de publicación de los tweets por hashtag

Finalmente, es posible averiguar quiénes utilizaron en mayor cantidad cada hashtag. En este gráfico se recogen los usuarios que publicaron diez o más tweets con cada hashtag; como era de esperar, fue en las cuentas del ejército, la policía y el presidente donde abundaron los mensajes de paz, al mismo tiempo que ellos se convertían en los responsables de reprimir violentamente a los manifestantes. En contraposición, se evidenciaron los mensajes de respaldo a las movilizaciones desde CONAIE y KolectiVOZ, y de reportaje desde Pichincha Comunicaciones y Wambra.

Usuarios que publicaron diez o más *tweets* por *hashtag*

Figure 4: Usuarios que publicaron diez o más tweets por hashtag