Introducción

Actualmente la tecnología dio lugar a que surgieran aplicaciones interactivas como Whatsapp, Twitter y otras aplicaciones de las cuales son más conocidas como redes sociales, en los cuales el usuario puede crear sus contenidos, compartir mensajes de textos, fotos, videos y notas de voz. Por lo cual, se han convertido en un factor importante para la comunicación e interacción entre los usuarios.

El análisis de datos de interacciones en redes sociales se trata de recopilar datos de las personas para después darle seguimiento y conocer las interacciones que hay entre los usuarios.

Las redes sociales han crecido en la última decada para llegar a ser un importante medio para adquirir y difundir informacion en diferentes dominios, como negocios, entretenimiento, política, entre otras (Zeng, 2010).

El crecimiento de las redes sociales han abierto una nueva oprtunidad para analizar varios aspectos. Por ejemplo, los datos de las redes sociales pueden ser analizados para obtener información sobre los problemas, tendencias, influncers y otro tipo de información (Cárdenas, 2020).

El análisis de redes sociales se utiliza para observar e interpretar las interacciones que hay entre los usuarios en las diferentes aplicaciones pero en este caso se estarán analizando dos aplicaciones las cuales son Whatsapp y Twitter.

Whatsapp es la tercer aplicación más usada en el mundo con una cantidad de 1.5 mil millones de ususarios y Twitter se encuentra en la posición doce con 365 millones de usuarios (Reasons why, 2019). En la primer aplicación analizaremos una conversación de un grupo de Whatsapp que cuenta con 100 participantes con la cual obtendremos la cantidad de mensajes que se envian en un día durante un años (junio 2019 - junio 2020), entre otros datos y en la segunda aplicación obtendremos información para analizar lo que las personas dicen sobre la pandemia actual de COVID-19.

Antecedentes

El Análisis de redes sociales se desarrolló con los estudios de parentesco de Elizabeth Bott en Inglaterra entre los años 1950, y con los estudios de urbanización del grupo de antropólogos de la Universidad de Mánchester (acompañando a Max Gluckman y después a J. Clyde Mitchell) entre los años 1950 y 1960, investigando redes comunitarias en el sur de África, India y el Reino Unido. Al mismo tiempo, el antropólogo británico Nadel SF Nadel codificó una teoría de la estructura social que influyó posteriormente en el análisis de redes (Google site, s.f).

Entre los 60’s y 70’s, grupos de grandes académicos trabajaron en la combinación de diferentes temas y tradiciones. Uno de ellos fue el de Harrison White y estudiantes en el Departamento de Relaciones Sociales de la Universidad de Harvard, como lo fueron: Ivan Chase, Bonnie Erickson, Harriet Friedmann, Mark Granovetter, Nancy Howell, Joel Levine, Nicholas Mullins, John Padgett, Michael Schwartz y Barry Wellman. También Charles Tilly, quien se enfocó en redes en sociología política y movimientos sociales, y Stanley Milgram, el cual desarrolló la tesis de los “seis grados de separación”. Entre los antiguos estuiantes de White se encuentran: Mark Granovetter y Barry Wellman, quienes han elaborado y ampliado el análisis de redes sociales.

En la actualidad, los seres humanos utilizan de manera frecuente aparatos electrónicos, en donde el internet interviene con mayor frecuencia en nuestra vida diaria, ya que las personas se encuentran cada vez más conectadas entre sí, lo que podemos llamar globalización.

La ARS (Analisis de las Redes Sociales) o en ingles ASN (Analysis of Social Networks), también llamado análisis de datos reticulares o estructurales es una parte fundamental para entender rápidamente todas las publicaciones y las preferencias de las redes. En el cual se centra en descubrir los patrones de interacción entre las personas (Cárdenas, 2020).

“La aplicación del ARS ha crecido enormemente durante la última década y sigue en constante crecimiento. Si estudiamos el uso del análisis de redes en investigación científica, podemos comprobar que cada año se publican más artículos o libros donde se menciona “análisis de redes” (AR) o “análisis de redes sociales” (ARS)” –Julian Cardenas. Doctor en Sociología.

Objetivos

Los objetivos del proyecto son:

  1. Analizar la frecuencia de mensajes que se envian en un grupo de 100 personas en WhatsApp. Para responder las preguntas:
  1. Identificar cuales son las palabras y emojis más utilizados en dicho grupo. Y responder lo siguiente:
  1. Analizar tweets de los usuarios de Twitter respecto a la actual pandemia de COVID-19.

Teoría

Ciencia de datos

“La ciencia de datos es la disciplina de hacer que los datos sean útiles” (Kozyrkov, 2019).

La ciencia de datos se trata de emplear técnicas de programación para analizar datos. Pero no es sólo eso; la ciencia de datos aplicada requiere el desarrollo de habilidades en cuatro áreas (Brust, 2019):

  • Programación: Los data scientis o “cientifico de datos” utiliza la programación para explicar a las computadoras lo que necesita de ellas. Estó emplea un pensamiento computacional lo cual ayuda a hacer menos compleja una tarea con una serie de pasos que se puede resolver con un código interpretado por una computadora (Brust, 2019).

  • Estadística: Es fundamental para extraer conocimiento de datos.

La estadística es la ciencia de cambiar tu mente (cuando hay incertidumbre) (Kozyrkov, 2019).

  • Comunicación: Parte de hacer ciencia de datos es saber cómo discutir los datos usados y los resultados obtenidos con interlocutores muy diversos (Brust, 2019).

  • Conocimiento de dominios: Es la experiencia acumulada en un campo particular de actividad humana. No sólo ayuda a discernir si las respuestas obtenidas mediante un sofisticado análisis estadístico tienen sentido. También es necesario para saber cuáles son las preguntas que deberíamos estar haciendo (Brust, 2019).

La siguiente imagen complementa la toma de decisiones, con las tres formas principales de hacer que los datos sea útiles (Kozyrkov, 2019).

Regla de oro de la analítica: solo saca conclusiones de lo que puedes ver (Kozyrkov, 2019).

Análisis de redes sociales

El análisis de redes sociales es una aproximación metodológica y teórica que enfatiza el estudio de las relaciones entre actores, tanto relaciones entre personas, organizaciones, países o cosas (Cárdenas, 2020).

El análisis de redes sociales se preocupa por desarrollar y evaluar herramientas informaticas y marcos para recopilar, monitorear, analizar, resumir y visualizar datos de redes sociales, usualmente impulsado por requisitos específicos desde una aplicación de destino. Sirve para varios propósitos (Zeng, 2010):

  • Facilitar conversaciones e interrelaciones entre comunidades en línea.
  • Extracción de parones útiles e inteligentes para servir a entidades que incluyen, pero no se limitan a activos contribuyentes en diálogos en curso.

¿Para qué sirven?

Si queremos estudiar las relaciones de varias personas entre sí, necesitamos de herramientas matemáticas e informáticas que nos permitan procesar y analizar toda esa información. Por ello, se han desarrollado software de análisis de redes para procesar y analizar los datos (Cárdenas, 2020).

Método

Establecer folder de trabajo y bibliotecas a utilizar

setwd("~/verano")
library(pacman)
p_load("base64enc", "htmltools", "mime", "xfun", "prettydoc", "readr", "knitr", "DT", "dplyr", "rwhatsapp", "lubridate", "tidyverse", "kableExtra", "RColorBrewer", "tidytext", "tidyr", "stopwords", "ggimage", "rtweet", "stringr", "wordcloud", "RCurl", "tm", "xml2", "ggmap", "maps") 
## Installing package into 'C:/Users/lopez/OneDrive/Documentos/R/win-library/3.6'
## (as 'lib' is unspecified)
## Warning: unable to access index for repository http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/3.6:
##   no fue posible abrir la URL 'http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/3.6/PACKAGES'
## package 'tidyverse' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\lopez\AppData\Local\Temp\Rtmp4Qg4hO\downloaded_packages
## 
## tidyverse installed
## Warning in p_load("base64enc", "htmltools", "mime", "xfun", "prettydoc", : Failed to install/load:
## tidyverse

Análisis de WhatsApp

Leemos el chat

michat <- rwa_read("michat.txt")

Separación de datos por meses (enero a junio 2020)

# PREPARACIÓN DE DATOS PARA ANÁLISIS POR DATE/TIME
michat <- michat %>% 
 mutate(day = date(time)) %>% 
 mutate(
 # SEGMENTACIÓN POR MES
 mes = case_when(
 day >= dmy(01012020) & day <= dmy(31012020) ~ "Enero 2020",
 day >= dmy(01022020) & day <= dmy(29022020) ~ "Febrero 2020",
 day >= dmy(01032020) & day <= dmy(31032020) ~ "Marzo 2020",
 day >= dmy(01042020) & day <= dmy(30042020) ~ "Abril 2020",
 day >= dmy(01052020) & day <= dmy(31052020) ~ "Mayo 2020",
 day >= dmy(01062020) & day <= dmy(30062020) ~ "Junio 2020",
 T ~ "Fuera de rango")
 ) %>% 
 mutate( mes = factor(mes) ) %>% 
 filter(!is.na(author))

Análisis de las palabras más utilizadas

# REMOVEMOS PALABRAS SIN SIGNIFICADO RELEVANTE, COMO ARTÍCULOS, PRONOMBRES, ETC.
remover_palabras <- c(stopwords(),
"y", "la", "el","en", "es", "si", "lo", "ya", "pero", "esa", "los","yo","mi", "un", "con", "las", "omitido", "más","eso", "al", "una", "del", "qué", "así", "le", "su", "va", "porque", "todos", "hay", "les", "pues", "ese", "son", "está", "pues", "ahí", "sí","ver", "estás", "algo", "vas", "ir","voy", "creo","fue","solo", "ni","sólo","nada", "aqui", "q", "tú", "cruz", "rebeca", "mendivil", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "644", "multimedia","19","20","52","12","11","16","29","199","1818","24","141","14","25","3079","26","31","27","30","22","28","21","15","17","23","244","18","13","41","51","0026","50","40","42","58","42","2463","103","54","57","45","43","02","53","59","m","p","44","01","00","46","48","yami","morales","velarde","jennifer","encinas","chacara","paloma","efren","zazueta","muñoz","dennis","cynthia","hector","andrea","jonathan","velazquez","higuera","cristina","valdez","areli","arguelles","salazar","deemi","sergio","héctor","35","32","05","56","carlos","55","36","9776","37","49","espinoza","06","47","34","07","3286","163","38","mariana","08","pompa","lares","33","04","39","rene","03","137","09","6349","serna","javier","xd","alv","https","segovia","647","275","118","0813","aguirre","6965", "jajaja", "pa", "we", "jajajaja" ,"127", "jaja", "5424", "david", "156", "1440", "alguien", "tu", "que", "de", "se", "te", "o", "como", "este", "bien", "nos", "para", "por")

Análisis de Twitter

Se oculta el código de la obtención de datos por medidad de seguridad y privacidad

  1. Gráfico de seguidores de cuentas elegidas al azar
tweets <- search_tweets(q = "coronavirus+covid-19+covid", n = 100)
users_data(tweets) %>% head()
## # A tibble: 6 x 20
##   user_id screen_name name  location description url   protected followers_count
##   <chr>   <chr>       <chr> <chr>    <chr>       <chr> <lgl>               <int>
## 1 729389~ CCM1956     "CCM~ "Maryla~ "#MAGA\U00~ <NA>  FALSE               93964
## 2 954230~ Plainoldwo~ "Abi~ "Texas,~ "Mother of~ <NA>  FALSE                 531
## 3 793043~ ErinByrneG~ "Eri~ ""       ""          <NA>  FALSE                  19
## 4 855465~ jsgjames    "Jus~ ""       "“Happines~ <NA>  FALSE                 383
## 5 127418~ YHkpc       "Yel~ ""       "Love HK. ~ <NA>  FALSE                  30
## 6 214966~ sypie1      "Syb~ "South-~ "I is a fa~ <NA>  FALSE                  99
## # ... with 12 more variables: friends_count <int>, listed_count <int>,
## #   statuses_count <int>, favourites_count <int>, account_created_at <dttm>,
## #   verified <lgl>, profile_url <chr>, profile_expanded_url <chr>,
## #   account_lang <lgl>, profile_banner_url <chr>, profile_background_url <chr>,
## #   profile_image_url <chr>
  1. Gráfico de las horas de los tweets
names(tweets)
##  [1] "user_id"                 "status_id"              
##  [3] "created_at"              "screen_name"            
##  [5] "text"                    "source"                 
##  [7] "display_text_width"      "reply_to_status_id"     
##  [9] "reply_to_user_id"        "reply_to_screen_name"   
## [11] "is_quote"                "is_retweet"             
## [13] "favorite_count"          "retweet_count"          
## [15] "quote_count"             "reply_count"            
## [17] "hashtags"                "symbols"                
## [19] "urls_url"                "urls_t.co"              
## [21] "urls_expanded_url"       "media_url"              
## [23] "media_t.co"              "media_expanded_url"     
## [25] "media_type"              "ext_media_url"          
## [27] "ext_media_t.co"          "ext_media_expanded_url" 
## [29] "ext_media_type"          "mentions_user_id"       
## [31] "mentions_screen_name"    "lang"                   
## [33] "quoted_status_id"        "quoted_text"            
## [35] "quoted_created_at"       "quoted_source"          
## [37] "quoted_favorite_count"   "quoted_retweet_count"   
## [39] "quoted_user_id"          "quoted_screen_name"     
## [41] "quoted_name"             "quoted_followers_count" 
## [43] "quoted_friends_count"    "quoted_statuses_count"  
## [45] "quoted_location"         "quoted_description"     
## [47] "quoted_verified"         "retweet_status_id"      
## [49] "retweet_text"            "retweet_created_at"     
## [51] "retweet_source"          "retweet_favorite_count" 
## [53] "retweet_retweet_count"   "retweet_user_id"        
## [55] "retweet_screen_name"     "retweet_name"           
## [57] "retweet_followers_count" "retweet_friends_count"  
## [59] "retweet_statuses_count"  "retweet_location"       
## [61] "retweet_description"     "retweet_verified"       
## [63] "place_url"               "place_name"             
## [65] "place_full_name"         "place_type"             
## [67] "country"                 "country_code"           
## [69] "geo_coords"              "coords_coords"          
## [71] "bbox_coords"             "status_url"             
## [73] "name"                    "location"               
## [75] "description"             "url"                    
## [77] "protected"               "followers_count"        
## [79] "friends_count"           "listed_count"           
## [81] "statuses_count"          "favourites_count"       
## [83] "account_created_at"      "verified"               
## [85] "profile_url"             "profile_expanded_url"   
## [87] "account_lang"            "profile_banner_url"     
## [89] "profile_background_url"  "profile_image_url"
  1. Lugar de los usuarios elegidos al azar
api_key <- "rVq4ZHVs28KgmvXQLXPR9UiJDW3QLcVPL90PZnfbd0dDxun0Gp"
register_google(key = api_key)

Resultados y discusión

Análisis de Whatsapp

  1. Gráfico con la frecuencia de mensajes enviados
# PALETA DE COLORES
paleta.mes <- brewer.pal(7,"Set1")[c(1,2,3,4,5,6,7)]
# VERIFICANDO CUÁNTOS MENSAJES SE ENVIARON DURANTE EL PERIODO DE TIEMPO
michat %>% 
  group_by(mes) %>% 
  count(day) %>%
  ggplot(aes(x = day, y = n, fill=mes)) +
  geom_bar(stat = "identity") +
  scale_fill_manual(values=paleta.mes) +
  ylab("Número de mensajes") + xlab("Fecha") +
  ggtitle("Mensajes por día", "Frecuencia de enero a junio del 2020") +
  theme_minimal() +
  theme( legend.title = element_blank(), 
         legend.position = "bottom")

En está gráfica se puede observar que el mes con mayor frecuencia es en Marzo que se encuentra en el color amarillo, en cambio en el mes de enero que se encuentra en color azul tiene menor de frecuencia debido a las vacaciones de invierno. Además en el mes de marzo y mayo se pueden notar unos picos los cuales indican que hubó más actividad en estos meses, ya que por ejemplo, en marzo, hablando de este año (2020), comenzaron las clases virtuales, por lo que existió mayor comunicación entre los integrantes del grupo y en el caso de mayo, que es cuando da fin el semestre, exite un pico de mayor actividad ya que son finales.

  1. Análisis de los emojis más utilizados
michat %>%
  unnest(emoji) %>%                                         
  count(emoji, sort = TRUE) %>%  
  top_n(n = 10, n) %>%           
  ggplot(aes(x = reorder(emoji, n), y = n)) + 
  geom_col(fill="green", alpha=0.5) + 
  ylab("Cantidad") + xlab( "Emoji") +
  coord_flip() +
  ggtitle("Cantidad de veces que se usa un emoji")

En este caso, se analizó la conversación tomando en cuenta lo emojis más utilizados. Se puede observar que los dos primeros son los emojis de quimicos, ya que la conversación analizada es de un grupo de Ingeniería Química. También de los emojis más utlizados podemos observar corazones y caritas riendo, con esto podemos conlcuir que los integrantes del grupo tienen una muy buena relación y no solo tienen conversaciones respecto a lo escolar, si no también respecto a su vida personal.

  1. Gráfico de palabras más utilizadas
# CONTEO DE PALABRAS
michat %>%
 unnest_tokens(input = text, output = word) %>%
 filter(!word %in% remover_palabras) %>% 
 count(word) %>% 
  # PLOT DEL TOP 30 DE PALABRAS MÁS USADAS EN CONVERSACIÓN
 top_n(30,n) %>% 
 arrange(desc(n)) %>% 
 ggplot(aes(x=reorder(word,n), y=n, fill=n, color=n)) +
 geom_col(show.legend = FALSE, width = .1) +
 geom_point(show.legend = FALSE, size = 3) +
 scale_fill_gradient(low="#2b83ba",high="#d7191c") +
 scale_color_gradient(low="#2b83ba",high="#d7191c") +
 ggtitle("Palabras más usadas en la conversación de manera general") +
 xlab("Palabras") +
 ylab("Número de veces que se usó la palabra") +
 coord_flip() +
 theme_minimal()

Por último, este gráfico representa las plabras más usadas en la convesación, por lo cual las que tienen mayor frecuencia son:

  • mensaje

  • x2

  • bien

Y las de menor frecuencia:

  • hora

  • grupo

  • jajajajajaja

Sin embargo, podemos observar que se encuentran palabras con bastante frecuencua como “profe”, “clase”, “gracias”, “mañana”, etc. incluso la palabra “fisico” que esta atribuye a una clase de la carrera llamada “Fisicoquimica”; esto quiere decir, que efectivamente la conversación tiene mucho que ver con la universidad, más sin embargo, las 100 personas que integran al grupo también son buenos compañeros o amigos.

Análisis de Twitter

  1. Gráfico de seguidores de cuentas elegidas al azar
options(scipen = 100)
ggplot(tweets, col = "aquamarine3") +
    geom_histogram(aes(x = followers_count), col = "aquamarine3")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

El gráfico representa una distribución de “power law”, que es muy común en los rankings de trending. Muchos de los usuarios elegidos tienen poca popularidad y un muy pocos de los elegidos alcanzan cientos o miles de seguidores arriba de la mayoría.

  1. Top 5 de los usuarios más populares (con más seguidores), su procedencia, y el contenido del tweet:
tweets %>% 
    top_n(5, followers_count) %>% 
    arrange(desc(followers_count)) %>% 
    select(screen_name, followers_count, location, text)
## # A tibble: 5 x 4
##   screen_name followers_count location           text                           
##   <chr>                 <int> <chr>              <chr>                          
## 1 sumariumcom          194319 "Venezuela / Espa~ "\U0001f4cc Los pasajeros que ~
## 2 YvesMulkers           96858 "Belgium"          "#AI 50 Founders Predict What ~
## 3 CCM1956               93964 "Maryland, USA"    "Hi @GovAbbott !  Since you ar~
## 4 gbroh10               66393 "Republic of Texa~ "\U0001f923 WE SHOULD ALL BE I~
## 5 IamNomad              63503 ""                 "NBC spent weeks documenting i~

Los tweet arrojados en la tabla anterior las columnas que muestra en una de ellas contiene los seguidores de los usuarios, su username, además del contenido breve del tweet. Esta tabla nos sirve para ver más gráfica y brevemente los datos y así poder entenderlos de una mejor manera.

  1. Lugar de los usuarios elegidos al azar
tweets %>%
    filter(location != "", !is.na(location)) %>% 
    count(location) %>% 
    top_n(5, n) %>% 
    ggplot() +
      geom_col(aes(x = reorder(location, n), y = n)) + 
      coord_flip() +
      labs(title = "Procedencia de los usuarios",
           x = "ubicación",
           y = "cantidad")

Y por último en está nos muestra la procedencia de los 100 usuarios elegidos al azar, la mayoría de estos tiene ubicación en Estados Unidos, ya que es una de la tendencias más habladas actualmente, desde aproximadamente mediados de Marzo, ya casi 4 meses. Por lo cual, al ser Twitter una de las plataformas en las que las personas se sienten libres de expresar su punto de vista, existen una cantidad inmensa alrededor del mundo de personas que estan hablando de este tema, desde personas comunes, hasta políticos u organizaciones.

Código del documento

xfun::embed_file("ProyectoFinal-Final.rmd")
Download ProyectoFinal-Final.rmd

Conclusión

En el caso de Whatsapp, al generar los gráficos sobre las palabras con más frecuencia, los emojis y hasta la frecuencia de mensajes por día desde enero 2020 hasta junio 2020, de un grupo de generación de 100 estudiantes de ingeniería química, además de poder graficarlo y enfocarse en el lado estadistico, si no también concluir de un lado más lógico y analitico según las palabras o datos obtenidos. Por lo cual, de una manera más superficial o bien, psicologica, podemos concluir que los integrantes del grupo tienen una buena relación, además de que estan en contacto frecuentemente en temporadas de examenes. Todos estos datos obtenidos cumplen con los objetivos y las preguntas planteadas, como en que mes hay más frecuencia de mensajes que es el mes de Mayo y la de como es el flujo de mensajes en vacaciones, que es casi nulo, ya que no hay mucha comunicación entre los participantes de la convesación análizada.

Por otro lado, el análisis de Twitter se enfoca en obtener los últimos 100 tweets al azar que hablen sobre coronavirus, así como también los 5 usuarios más populares, el tweet redactado y el origen de estos. Con esto podemos darnos cuenta que bastante gente está hablando de esto, ya que, actualmente es uno de los temas más mencionados por el impacto que ha generado en el mundo. En base a esto podemos decir que el tercer objetivo de este proyecto se cumple satisfactoriamente.

En conclusión, el desarollo de este proyecto y el análisis de estas redes sociales, cumplió con los objetivos requeridos, ya que de manera exitosa se pudieron examinar las aplicaciones mencionadas al inicio. Además de los conocimientos que este análisis ha enriquecido los conceptos principales que eran data science y social media analythics.

Bibliografía