El análisis de datos nos proporciona grandes ventajas competitivas, desde el apoyo en la toma de decisiones o la segmentación de partners y clientes hasta mejoras en la gestión interna. Pero, ¿cómo extraer todos estos beneficios de los datos?

No basta con recopilar y almacenar de forma masiva tantos datos como sea posible y enriquecer tu base de datos sin ton ni son. Para sacar valor de dichos datos, tenemos que analizarlos y, para ello, debemos tener claros los objetivos de dicho análisis y qué tipo de información es valiosa para nosotros.

EL BIG DATA EN LA ANALÍTICA DE DATOS

TIPOS DE ANALÍTICA BIG DATA. La analítica tradicional está limitada a un pequeño número de datos estructurados, por lo que los resultados de los análisis pueden resultar un poco pobres. Con Big Data, podemos analizar grandes cantidades de datos, aunque no estén estructurados, y construir modelos a partir de patrones que no siempre se aprecian a simple vista.

ANALÍTICA DESCRIPTIVA

TIPOS DE ANALÍTICA BIG DATA. Responde a la pregunta “¿qué sucedió?” analizando el pasado y el desempeño de las actividades de nuestra empresa, para lo que utiliza datos históricos.

Básicamente, simplifica y resume los datos para darnos una visión y contexto con los que entenderlos. Para ello, usa herramientas como inteligencia de negocio, análisis estadísticominería de datos, aunque es relativamente sencilla de hacer, por lo que es el tipo de analítica más extendido.

ANALÍTICA DIAGNÓSTICA

TIPOS DE ANALÍTICA BIG DATA. Responde a la pregunta “¿por qué sucedió?”. Al igual que la descriptiva, tiene en cuenta el desempeño pasado del comercio pero suma al análisis datos del contexto. Gracias a eso, da un paso más allá de la anterior y permite descubrir tendencias o relaciones causales.

ANALÍTICA PREDICTIVA

TIPOS DE ANALÍTICA BIG DATA. Responde a la pregunta “¿qué podría pasar?” contrastando datos recientes e históricos con técnicas como la minería de datos, modelos de machine learning y estadísticas, para ofrecer escenarios y comportamientos de clientes futuros posibles basados en probabilidades.

ANALÍTICA PRESCRIPTIVA

Esta va mucho más allá y nos responde a la pregunta “¿qué deberíamos hacer?”. No sólo permite vislumbrar escenarios futuros probables, también sugiere decisiones a tomar frente a estos escenarios y el impacto de cada posible curso de acción que se tome.

Para llevarla a cabo se utilizan herramientas de machine learning como la optimización, Análisis de Decisión Multicriterio o la simulación.

CONCLUSIÓN

Por supuesto, los cuatro tipos de analítica Big Data son fácilmente combinables entre sí, no son excluyentes. No obstante, el uso de unas u otras depende de la cantidad de datos disponible y de nuestras capacidades técnicas. Para conseguir dichas capacidades técnicas necesitamos un conocimiento avanzado de herramientas de Big Data que nos permitan elaborar modelos de machine learning capaces de llevar el análisis de nuestros datos al máximo nivel.

MÁSTER EXPERTO BIG DATA ANALYTICS

Gracias al Master en Big Data Analytics 100% Online tendrás amplios conocimientos sobre las herramientas y técnicas analíticas necesarias para la modelización de los principales retos de negocio, con el fin de mejorar la toma de decisiones a través de los datos y el conocimiento.

Tras ver qué podemos hacer conectando twitter y R y cómo hacerlo, además de algunas de las funciones más importantes, y cómo segmentamos seguidores, toca mostrar algunas de las funciones que nos permiten analizar publicaciones y hashtags.

ANÁLISIS DE PALABRAS MÁS REPETIDAS JUNTO A UN HASHTAG

Ver qué palabras tienen asociadas ciertos hashtags relevantes nos permiten no solo encontrar más hashtags para añadir a nuestra publicación, sino a detectar nuevas temáticas relacionadas y afinar las palabras que usamos en nuestras publicaciones. Lo primero que debemos hacer es instalar y llamar todas las librerías que vimos anteriormente, conectar con la API de twitter, usar la función para sacar la información del hashtag que nos interesa y convertirlo en un dataframe. Luego, lo convertimos en un string y hacemos todas las operaciones que mencioné en el artículo anterior para limpiar el texto al máximo y sacar una tabla de frecuencias con las palabras más repetidas ordenadas. Todas las instrucciones para hacer esto están en los artículos anteriores, por eso pasamos rápido por este punto.

QUÉ USUARIOS SON LOS QUE MÁS USAN ESE HASHTAG

Detectar los usuarios más activos en un tema nos ayuda no solo a detectar seguidores potenciales, sino también a influencers en el tema y a personas que pueden generar contenidos que nos interesa compartir con nuestra audiencia. Hacerlo es muy sencillo: sobre el dataframe que creamos inicialmente para sacar las publicaciones de un determinado hashtag, hacemos lo siguiente:

#qué usuarios son los que más han empleado el hashtag:
#eliminamos los retweet y nos quedamos sólo con los nombres de los usuarios que han escrito el tweet
usuarios <-subset(dataframehashtag,isRetweet==FALSE)$screenName
#Opción 1: los tabulamos y ordenamos.
usuarios<-sort(table(usuarios),decreasing=T)
#Opción 2: ver directamente los x iniciales
usuarios[1:x]

QUÉ CONTENIDOS DE UN HASHTAG SON MÁS POPULARES

En twitter, la medida de popularidad de una publicación está en la interacción que tiene (respuestas, favoritos y retweets, en especial estos dos últimos) así que sacar las publicaciones más populares de un hashtag es tan sencillo como crear un filtro en el dataframe para sacar las publicaciones en las que haya al menos x interacciones

#contenido más retuiteado
#retuiteado + fav
contenido_popular<-filter(dataframehashtag, dataframehashtag[["favoriteCount"]]>x, dataframehashtag[["retweetCount"]]>x)
#solo retuiteado
contenido_popular2<-filter(dataframehashtag, dataframehashtag[["retweetCount"]]>x)

Hay que tener presente que, según el sector, a veces la gente no hace retweet pero sí fav, o al revés, o no hace ninguna de las dos pero sí responde a las publicaciones. También, según el tipo de hashtag, x deberá ser mayor o menor. Así pues, es tan fácil como ajustar el código a las circunstancias. Luego, sobre eso, podemos hacer un nuevo filtro para sacar las palabras más populares del contenido más popular, lo que nos indicará qué no debe faltar en nuestras publicaciones para tener potencial de éxito.

ANÁLISIS DE SENTIMIENTOS DE UN HASHTAG

El análisis de sentimientos nos permite monitorizar opiniones sobre determinados temas, saber hasta qué punto en un sector se utilizan un tipo de mensajes u otros (aprovechando miedos de los consumidores para vender determinados productos frente a ventas atrayendo a los seguidores con los beneficios, por ejemplo)... Para hacerlo, además de las anteriores, necesitamos instalar y ejecutar las librerías SnowballC, tm y syuzhet. Con ellas hay que tener un poco de paciencia, a veces fallan y hay que ejecutarlas varias veces, aunque suelen funcionar de forma correcta. Hecho esto, creamos un dataframe con los datos del hashtag que nos interesa y, quedándonos solo con la columna text, eliminamos hashtags, @, url y toda la información que no es relevante para el análisis mediante la función gsub, que mostré en el artículo anterior. Luego comenzamos a trabajar con definiciones de sentimientos. Por ejemplo, podemos crear una tabla en la que nos muestre si las publicaciones contienen palabras asociadas a los sentimientos principales y cuántas hay.

#Insertando palabras de definición de sentimientos
word.df <- as.vector(dataframehashtag)
emotion.df <- get_nrc_sentiment(word.df)
emotion.df2 <- cbind(bigdata.df2, emotion.df)

Saldrá algo parecido a esto:

análisis datos twitter

También podemos sacar publicaciones donde predomine un sentimiento mediante este código:

#extrayendo puntuación de sentimientos
sent.value <- get_sentiment(word.df)
#más positivos (si queremos los más negativos, cambiamos max por min
most.positive <- word.df[sent.value == max(sent.value)]
#simplemente positivos (si queremos negativos o neutros, poner < o == respectivamente)
positive.tweets <- word.df[sent.value > 0]
#tabla resumen
category_senti <- ifelse(sent.value < 0, "Negative", ifelse(sent.value > 0, "Positive", "Neutral"))
table(category_senti)

Y este es el resumen del código utilizado en la charla de Analizando datos de twitter con R, impartida por Déborah Fernández el pasado día 27. Si queréis ver la charla completa con explicaciones más detalladas y ejecución de parte del código en directo, podéis visitar nuestro canal de youtube.

¿QUIERES APLICAR TODO ESTE CONOCIMIENTO? COMIENZA A A PROGRAMAR EN R

En nuestro curso de Análisis de datos con R aprenderás de forma rápida a utilizar este lenguaje.

Ya hemos hablado en otra entrada de qué es R y de su potencial. Hoy, nos centraremos en cómo puede esta herramienta ayudarnos a sacar el máximo partido de nuestros datos de twitter. Cada vez hay más librerías relacionadas con twitter que podemos utilizar para extraer y analizar estos datos, pero para este caso utilizaremos Twitter. ANÁLISIS DE DATOS DE TWITTER CON R

DATOS DE LOS TEXTOS GENERADOS

Cada tweet creado nos da mucha información relevante: desde su origen en según qué plataformas hasta cuántas interacciones posee, aparte del propio texto. En esta imagen, podemos ver qué información nos dan algunos de los tweets de datahack. ANÁLISIS DE DATOS DE TWITTER CON R

datos que podemos sacar de un tweet para análisis

DATOS DE LOS USUARIOS

Entre los datos más relevantes de cada usuario, podemos sacar desde su propia autodescripción, su nivel de influencia (seguidores-seguidos), cómo de activo es, procedencia… En esta imagen podemos ver la información de nuestro usuario @datahack_

datos que podemos sacar de un usuario para análisis

ANÁLISIS RELEVANTES

Con todo lo recogido, podemos sacar información bastante útil para optimizar nuestro posicionamiento y el tipo de mensajes que mandamos en las redes sociales y podemos realizar:

CÓMO EMPEZAR EL ANÁLISIS DE DATOS DE TWITTER CON R

Para conectar twitter con el programa en el que estemos ejecutando el lenguaje R, lo primero que necesitamos es una cuenta en la API de twitter. Una vez que la tengamos, podremos conectarnos gracias a las claves que nos proporcione.

La API de twitter tiene algunas limitaciones, como un número máximo de tweets recuperados por consulta y una limitación de tiempo mínimo entre consulta y consulta. Si nos pasamos podemos ser bloqueados, así que tenemos que tener cuidado y poner siempre un tamaño de muestra inferior a 200, sin hacer varias consultas en la misma ejecución. Si necesitamos muestras más grandes, podemos hacer varias consultas periódicamente en las que vayamos descargando datos (son en orden cronológico) y uniéndolos, por ejemplo. ANÁLISIS DE DATOS DE TWITTER CON R

En cualquier caso, lo más interesante del análisis de datos en twitter es la inmediatez, para ver las tendencias de cada momento, ya que los hashtags populares y las palabras asociadas a los mismos, por ejemplo, pueden cambiar de un día para otro, por lo que con una muestra de 100 es más que suficiente.

Conectaremos la API de twitter con R mediante el siguiente código:

# Cargar las credenciales
consumer_key <- "xxx"
consumer_secret <-"xxx"
access_token <-"xxx"
access_secret <-"xxx"
setup_twitter_oauth(consumer_key, consumer_secret, access_token=access_token, access_secret=access_secret)

FUNCIONES BÁSICAS

Una vez hecho esto, podemos ponernos a trabajar. Algunas de las funciones más básicas que debemos aprender son las llamadas para recuperar información y cómo convertirlas en dataframes   con los que trabajar. No olvidemos que, para trabajar con los datos de twitter, tendremos que instalar y llamar las librerías twitteR, base64enc y tidyverse

Si quieres profundizar en la herramienta R, ¡en datahack te ayudamos! Con nuestro Master en Data Science y Big Data aprenderás todo lo que necesitas para dar un paso al mundo de los datos.

SACAR TODA LA INFORMACIÓN DEL TIMELINE Y CARACTERÍSTICAS DE UN USUARIO

#sacar tweets de un usuario:
usuario<- userTimeline('usuario',n=100)

Para conseguir solo algunos de los datos más importantes, como seguidores y seguidos, podemos usar este código (sin olvidar convertirlo después en un dataframe):

#Sacar información de un usuario:
usuario<- getUser('usuario')
#conseguir sus seguidores
usuario_seguidores <- usuario$getFollowers(retryOnRateLimit=120)
#conseguir sus seguidos
usuario_seguidores <- usuario$getFriends(retryOnRateLimit=120)

SACAR TODA LA INFORMACIÓN DE UN HASHTAG

#buscamos el hashtag, limitamos la búsqueda a 100 tweets desde el 01 de junio de 2018.
hashtag<-searchTwitter("#hashtag", n=100, since='2018-06-01')

HACER LOS DATAFRAMES

No hay que olvidar que toda esta información que saquemos, para trabajar con ella, hay que convertirla en un dataframe con la función do.call o twListToDF. Esta es la estructura de ambas:

do.call("rbind", lapply(xxx, as.data.frame))
twListToDF(xxx)

ANÁLISIS DE DATOS DE TWITTER CON R. Una vez que tenemos todo esto, podemos comenzar a trabajar en el análisis de toda esa información, que es lo que mostraremos en los próximos artículos:

 

MÁSTER EN DATA SCIENCE Y BIG DATA

¿Quieres convertirte en un profesional de la herramienta R? En datahack encontrarás a tu mejor aliado. Consulta nuestra oferta de Máster en Data Science y Big Data , práctica y adaptada a las necesidades del mercado. ¿Tienes dudas? Pregúntanos directamente todo lo que se te ocurra. ¡Empieza ya a abrirte camino como especialista en Inteligencia de Negocio!

No cabe duda de que el mundo de la analítica avanzada de datos requiere de técnicas complejas, donde se puede tardar bastante tiempo en llegar a conclusiones interesantes para el negocio. A veces se olvida que las herramientas informáticas, así como la estadística, son un medio de obtener valor, y no un fin en sí mismas. El valor para el negocio se obtiene cuando, a partir de conclusiones basadas en datos, se toman decisiones consecuentes.  Normalmente también hay que trazar un plan de acción (cambios a introducir) para llevarlas a cabo y, posteriormente, medir si se obtiene el valor esperado. Cuando hablamos de valor, habitualmente nos referimos a un concepto que se puede expresar en cifras económicas. No obstante es extensible a otro tipo de valor, como el aumento de la esperanza de vida o la reducción de la delincuencia.

Una de las claves para obtener valor medible es partir de las preguntas adecuadas, y dedicar un cierto tiempo a formularlas y reflexionar, antes de ponerse manos a la obra con la implementación. En este artículo presento ciertas características de dichas preguntas, para que se pueda completar todo el ciclo de retorno del valor, y ejemplos pensando en contextos de actividad comercial.

Preguntas que debemos hacernos para obtener valor y sus características:

¿Son relevantes para cierta audiencia?

Debemos estudiar si las preguntas están orientadas a unos destinatarios determinados. También quiénes tienen potestad para tomar decisiones y esponsorizar los cambios posteriores. No es lo mismo orientarse a los inversores de una startup, al equipo de ventas, o al de tecnología. Por ejemplo, un responsable de ventas puede estar interesado en esta pregunta: ¿Cómo afectará a nuestras ventas el aumento de un 5% de precios de unos determinados productos? Mientras, el inversor quiere saber: ¿Cuál es el retorno de la inversión previsto si el ciclo económico sigue expansivo?

¿Para qué preguntas actualmente no hay respuesta establecida?

Esto resulta muy claro en los estudios científicos. Si nos preguntamos por la correlación entre los niveles de CO2 en la atmósfera y la incidencia de ciertas enfermedades respiratorias, vamos a poder encontrar muchos estudios rigurosos con evidencias al respecto. Y si es necesario podemos seguir profundizando sin partir de cero, por ejemplo, restringir el estudio a una ciudad específica donde todavía no haya estadísticas fiables.

Llevado al mundo de los negocios, una pregunta del tipo "¿Cuáles son nuestros 10 mejor clientes?" seguramente es una lista que alguien ya ha elaborado en el pasado. Se trata de saber bajo qué hipótesis se realizó, e incluso si existe ya un procedimiento automatizado para disponer de la información. Además, es una pregunta que quizás se pueda contestar sin recurrir  a técnicas analíticas avanzadas y, partiendo de ella, calcular el valor del ciclo de vida completo del cliente, que sí que requiere realizar estimaciones de futuro.

Nota: No saquemos la conclusión de que listar los 10 principales clientes es siempre algo sencillo. Poner de acuerdo a varios departamentos sobre qué se considera un mejor cliente, y de una manera medible para que sea automatizable, puede ser una tarea de semanas. Recopilar datos con la suficiente calidad para medirlo de manera efectiva también supondrá semanas o meses. E incluso un cálculo básico puede hacer conveniente el uso de Big Data, para ganar velocidad de proceso y alta disponibilidad. No se trata de no entregar información durante meses, podremos tener resultados antes. Pero que se admita cómo válida, corporativa  y estable requiere mucho esfuerzo y gestión.

¿Son preguntas plausibles?

Aquí se trata de entender cómo funciona el negocio. Por ejemplo, plantear hipótesis sobre relaciones causa-efecto que se puedan justificar. Por poner algún caso extremo, en internet se encuentran correlaciones absurdas, como los datos de importación de crudo noruego vs los accidentes de tren. En el fondo esto tiene que ver con poner el foco correcto en qué datos son relevantes a priori para tomar decisiones basadas en los mismos.

Aunque tiene sentido implementar un “data lake” en ciertos contextos, no debemos caer en el llamado “síndrome de Diógenes de los datos”. Si empezamos a hacer cálculos estadísticos al azar con todos los datos disponibles, acabaremos por encontrar correlaciones irrelevantes para el negocio. Recordemos aquí una máxima fundamental, correlación no implica causalidad. Por esto es importante que los perfiles científicos de datos tengan un cierto conocimiento del negocio, o bien trabajen de manera muy cercana con otros perfiles mixtos.

¿Qué preguntas pueden ser respondidas?

Esto parece una obviedad, pero lo cierto es que los proyectos tienen como mínimo restricciones de coste y tiempo. Una vez excedidos, lo normal es que se consideren fracasados. También es posible que no contemos con datos relevantes para responder esas preguntas, y que recopilarlos no sea factible.

De nuevo un caso extremo puede ser el buscar un método para viajar hacia atrás en el tiempo. Si bien es una pregunta interesante, y donde tengo entendido que las leyes de la relatividad podrían permitirlo, es algo que con casi total seguridad no se va a implementar a 50 años vista, empezando por la falta de materiales adecuados. Podría ser algo peor, y que al final se demuestre inviable. Volviendo a ejemplos más cotidianos, una pregunta del tipo "¿cuál es la probabilidad de fuga de cada uno de mis clientes a un mes vista?" no es algo que vayamos a responder en dos semanas contratando a un Científico de Datos y a un Ingeniero de Big Data, si es la primera vez que abordamos un proyecto de este tipo. Quizás podamos establecer una prueba de concepto ayudándonos de tecnologías en la nube, pero no esperemos una precisión récord.

¿Son preguntas concretas y específicas?:

Es muy diferente preguntar "¿Cómo es el sentimiento de cliente acerca de nuestra marca?" a preguntar "¿Qué porcentaje de opiniones de twitter son negativas respecto a nuestro nuevo modelo de producto?" Ambas preguntas son legítimas en el contexto de negocio. Pero, en el segundo caso, es algo que vamos a poder empezar a implementar antes, ya que acota mejor las tecnologías a utilizar y los datos relevantes. Es decir, hemos acotado el alcance. Y cabe esperar que en el segundo caso podamos tomar también decisiones más rápidas, en el supuesto de que haya excesivas opiniones negativas, detectando si las mismas se asocian a aspectos de precio, calidad, soporte, incluso si existen o no intereses particulares, etc.

¿Qué preguntas permiten respuestas accionables?

Imaginemos que nos interesa conocer los segmentos “clusters” de nuestros clientes, para dirigir una campaña comercial específica a algunos de ellos. Mediante aprendizaje no supervisado descubrimos que hay un segmento que principalmente nos compra cuando hay descuentos disponibles, y raramente lo hace a precios normales. Sin embargo, a la empresa no le es posible técnicamente enviar un cupón de descuento solo a estos clientes, porque no dispone de los correos electrónicos actualizados de los mismos, sino que publicita cupones de descuento mediante banners de publicidad en sitios de terceros.

Aunque el conocer los segmentos tiene interés, y quizás se puede intentar un envío parcial o que el banner se muestre solo en ciertas circunstancias, al final se pierde gran parte del valor potencial al no poder contactar con muchos de los clientes de manera directa. En esta ocasión queremos utilizar técnicas avanzadas pero todavía no hemos resuelto otros aspectos más básicos como disponer de datos de calidad.


 José Julio López, Business Intelligence, Data Science, IT Project Manager. SCRUM Master, PMP y exalumno del máster de Big Data & Analytics de datahack

Nota: Este artículo es de mi autoría original, si bien las propias características de las preguntas han sido obtenidas de un vídeo de la Universidad Johns Hopkins en Coursera.

MÁSTER EXPERTO BIG DATA ANALYTICS

Gracias al Master en Big Data Analytics 100% Online tendrás amplios conocimientos sobre las herramientas y técnicas analíticas necesarias para la modelización de los principales retos de negocio, con el fin de mejorar la toma de decisiones a través de los datos y el conocimiento.

chevron-down