Translate

sábado, 21 de enero de 2017

Errores que pueden darse al analizar datos de forma visual

En el curso sobre Data Visualization and Communication with Tableau ya vamos por la semana tres y cada vez se pone más interesante sobre todo en lo que aplicación práctica se refiere. Sin duda, uno de los mejores cursos que me he encontrado últimamente ya que va más allá de Tableau y explica todo un framework a tener en cuenta para explicar los resultados obtenidos.

Esta semana además aparecen en los vídeos personal de AirBnB dando ejemplos reales de los problemas que pueden darse al analizar los datos.

Errores que se pueden dar al analizar datos de forma visual 

La generalizacion y el sesgo muestral (Overgeneralization ands sample bias)


Este error se refiere al problema que genera elegir un dataset que está demasiado lejos de la realizad por ser una muestra demasiada o pequeña y dar por real algo que no lo es. Igualmente podemos tener un dataset enorme pero que no se ajuste a la realidad. Por ejemplo The Guardian intentó analizar donde eran peores las consecuencias de los efectos del Huracán Sandy según el ruido que se formaba en twitter. En realidad como la población no está igualmente distribuida, habia más tweets desde las ciudades más pobladas. Así que si se hubieran quedado con ese dataset no hubiera servido para nada y los resultados no hubieran servido para nada.

Así que deberíamos tener más cuidado con la calidad de los datos.

Mala interpretación debido a la falta de controles


Cada vez que analizamos algo puede ser debido a diversas causas, no sólo a lo que nosotros pensamos que puede ser. Como ejemplo se da un análisis de una acción de email marketing que supuestamente hacer que aumente la compra de una bebida en una determinada fecha. Más allá de ello nos encontramos que en realidad el aumento de la compra de la bebida se dá, no sólo en nuestra empresa sino también en los mayores competidores. ¿Qué ha podido pasar? Justamente por esa fecha un actor sale en las revistas bebiendo ese tipo de bebida y todos los vendedores salen fortalecidos.

Por ello siempre debe hacerse un grupo de control para ver si el resultado de la acción se debe a alho intrínseco.


Correlación no implica causalidad


Esto siempre es debatido en el análisis. Dos variable que parecen que tienen correlación (por ejemplo cuando una aumenta la otra también) en realidad  pueden no tener relación. Por ejemplo google estuvo haciendo un estudio y dando los resultados sobre la gripe. Así podía predecir los brotes que se daban por zona geográfica. Aunque en un principio parecía correcto, llegó un momento en que dejo de serlo. Quizás había alguna variable que no se haya tenido en cuenta o que entra en juego a lo largo del tiempo, por ejemplo un cambio en Google suggest
A ese tipo de relación que gráficamente parece existir pero que no tiene lógica se le llama relación espurea. Y se pueden a modo de friki-chiste relaciones espureas en esta página web.

Recomendación para evitar estos errores en el análisis

¿Y qué podemos hacer para intentar cometer el mínimo de errores posible y que se vaya todo el trabajo al garete?

1. Podemos crear un grupo de control, al modo A/B testing.

2. Si no es posible, podemos estudiar otras variables relacionadas que podrían esta interfiriendo en el análisis.

3. Hay que tener en cuenta que cuanto más grande es un dataset, más probabilidad hay de que aparezca una variable durante un periodo de tiempo  que haga que la nuestra correlación no sea cierta.(por ejemplo para el caso de Google flu, un cambio en su algoritmo con Google suggest donde sugería a los usuarios términos a buscar ) Así que si queremos basarnos en las correlaciones primero debemos saber que estamos haciendo e investir tiempo y esfuerzo en ello.

Más allá de todo esto aquí dejo un artículo de Wired sobre lo que podemos aprender del fallo de Google Flu Trends (muy muy interesante)

domingo, 24 de julio de 2016

England,UK,Great Britain or United Kingdom?

Después de leer un artículo de broma sobre la dificultad de "ser británico" en 2014 con el típico humor britanico, he caído en la cuenta de que yo también me enfrento a algunas de las situaciones que describen.
Una de ella es cuándo hay que buscar por país en una empresa de aerolineas o cualquier tipo de transporte. Estará por UK, England, Reino Unido,...? Siempre me lleva unos segundos de más. Parecido a cuándo no sabes si buscar por Spain o por Espana.

Para ver cómo buscan los mismo británicos por su país y cómo lo buscan en otros países de habla ingresa me he ido a Google trends a ver si ha ido cambiando.

Google Trends

Cómo se escribe Reino Unido en el mundo inglés

Los resultados han sido los siguientes:
  Al final he decidido annadir London para ver si es más importante que el propio país. Y bueno, parece que tanto en USA como en Canadá, Londres como concepto de busqueda es tan importante como el país en sí. La verdad es que si una empresa decide hacer una página web internacional le puedes servir muy bien investigar en Google Trends sobre este aspecto, sobre todo y mmientras Google Hummingbird, el algoritmo de Google, sigue aprendiendo cómo buscan los usuarios en Internet. Yo aún me enfrento a ello cuando voy a Espanna de vacaciones y me preguntan "qué tal por Londres "(a 3-4 horas de Leeds, dónde me encuentro). Igualmente a un amigo le pasa lo mismo cuándo le preguntan por Inglaterra y él está viviendo en Gales. Y es que no sólo en Espanna existe esa diferencianción por la "comunidad" dónde vivimos o hemos nacido y el país en sí...

Keywords para SEO y SEM

Asi que si decides hacer una keyword research para otros países (tanto en SEO cómo en SEM), deberíás tener todas estas cosas en cuenta, pero todos estos detalles pueden que te permitan crear una entrada de tráfico para long keywords por ejemplo que tu competencia aún no haya minado. Así que todavía queda mucho trabajo por hacer :)

martes, 17 de mayo de 2016

Principios básicos para realizar test a/b

Jelo People,hacía que no escribía una barbaridad (pero una barbaridad de verdad).

Unfortunatelly he terminado la temporada 3 de House of Cards  y la 4 aún no está en Netflix (la vida es así de dura, pero hay que convivir con ello) Pero bueno,he cogido mi lista de cosas por hacer y me he encontrado el curso de A/B testing  que dejé a medias hace unos meses. Os hago aquí un resumen por si os interesa.

Así que he estado mirando unos videos de la friki-pandi de CRO de Google y os resumo en estos vídeos de ejemplos y de un minuto aproximadamente. El tipo de preguntas que se puede hacer y que no se puede hacer en a/b testing. Cuando hacemos a/b testing nos interesa poder medir algo básico, mutuamente excluyente y que podamos saber que es aleatorio porque si no, nosotros estamos influenciando los resultados y claro, eso no vale  porque es una técnica cuantitativa y los números sólo dicen sí o no.

When can you use a/b testing
https://www.youtube.com/watch?v=EwV5Vs2m33w


Otro ejemplo
https://www.youtube.com/watch?v=tlSe7H9BDy8


Información sobre a/b testing en castellano

Y si pasáis del inglés. Este hombre con gorro lo explica bastante y en castellano (da el pego con el titulo en inglés pero está en castellano)
http://www.slideshare.net/joanby/how-to-properly-analyze-an-ab-test?ref=http://juangabrielgomila.com/como-analizar-correctamente-un-test-ab/

Seguiremos informando

miércoles, 2 de marzo de 2016

Jugando con Tableau y los datos del banco Mundial

He estado jugando con Tableau y echándole un ojo a los datos de Banco Mundial.Total, que me he acordado del marido de una amiga que conocí en Leeds que es de Pakistan. Bueno, de él no, es que durante una cena nos contó que Pakistan era uno de los países más poblados del Mundo. Fijate tú, que en España, o al menos por las zonas que yo he vivido nunca había oído hablar de este país. Qué  si, que intuía que estaba por dónde todos los países que terminan en nosequéTAN y cerca del país de Borat. Y dicho sea de paso a mi me sirvió este conocimiento  para ganar un quesito en el trivial...

Total, que una cosa llevó a la otra y me he puesto a juguetear con los datos. Estaba interesada principalmente en los países más poblados,pero como la cabra siempre tira al monte he acabado creando un dashboard con datos de acceso a Internet y de mortalidad infantil.

La verdad es que ha quedado muy bonito y muy fácil de revisar el treemap más el mapa y el diagrama de cajas y bigotes que es cómo lo llamaba una profe mía en la Universidad (boxplot para los amigos), Yo siempre me imaginaba una caja llena de bigotes de los de Movember y eso que se puede decir que es mi gráfico favoito,.. En fin, mejor me acuesto





Lo he puesto para que filtre por el treemap y eso, muy chulo y útil.Desde luego Tableau nos das los gráficos mascaicos y sólo hay que ocuparse de encontrarle sentido a los datos Otra cosa son las métrica que he cogido...jeje Estaba pensando en intentar hacer una correlación de número de hijos y países más poblados. ¿Eso tiene que ser significativo no? ¿Y mortalidad infantil con estas dos? Pues eso, que más para otro día. Pero si andas interesado en saber como crear un Dashboard con Tableau este video lo explica rápidico rapidico.


miércoles, 3 de febrero de 2016

Segmentando con el modelo RFM con SQL : Recency, Frequency & Monetary value

Si contamos con una base de datos de clientes podemos aplicar un modelo bastante fácil y que ya lleva bastante rodaje en el Marketing Directo:el modelo RFM.

¿Qué es RFM?

El fin de este modelo es poder segmentar a nuestros clientes para saber cuales son los que mayor beneficio nos puede aportar. Así a esos clientes podemos mandarles códigos promocionales, por poner un ejemplo.

Descuartizando el modelo RFM

¿Qué significan cada una de esas letras?
  • Recency: que podríamos describir como recencia.
  • ¿Hace cuánto que compró el cliente? Si el cliente hace mucho que no ha comprado puede ser que se haya ido a la competencia.
  • Frecuency: Frecuencia
  • ¿Con qué frecuencia suele comprar?
  • Monetary Value: valor monetario
Cantidad de dinero que ha gastado de media. Si un cliente suele gastar más será más valioso que otro que suele hacer una compra pequeña.

Cómo definimos RFM en una sentencia de SQL

  • La recencia ("recency") viene definida por el día de la última compra: MIN(dias_desde_la_ultima_compra).
  • La frecuencia ("frequency") viene definida por el total de veces que el cliente ha comprado.
  • El valor monetario ("monetary value"), en este caso, lo vamos a definir como la media de la cantidad comprada de cada uno de los clientes.
Imaginando un CRM con un id por cliente podríamos definir la query como: SELECT cliente_id,
MIN(dias_desde_ultima_compra) AS 'recencia',
COUNT(*) AS 'frecuencia',
AVG(cantidad_comprada) AS 'valor monetario'
FROM data GROUP BY 1")
Al ser en SQL la podríamos usar tanto R como en Python, o cualquier otro lenguaje de programación.

domingo, 24 de enero de 2016

Shiny: Crear mini aplicaciones con R -Studio

Mirando ofertas de trabajo he visto que pedían para un par de ellas saber usar Shiny. Así que tras una búsqueda en Internet me he puesto manos a la obra para ver de que se trataba.Y me he llevado una grata sorpresa.

RStudio sigue pensando en como hacer la vida más fácil a los no programadores y ahora nos permite crear aplicaciones al más puro estilo servlet de java con, con su interfaz gráfica para poder jugar con ella sin tener que programar. De esta forma cualquier programa que hagamos en R lo podemos subir a Internet y hacer que un usuario pueda jugar con él. Este post explica muy bien de que va en un lenguaje muy llano y en castellano.

Así como un poco de magía.

via GIPHY

Disclaimer: Este artículo fue escrito en 2016! He actualizado (Abril 2020) el post con información ya que había links rotos. Espero que sirva de ayuda.

Cómo se ve un programa en Shiny


Para poder ponernos con Shiny, lo primero que tenemos que hacer es instalarlo, aunque si tenemos una de las últimas versiones de Rstudio ya nos vendrá integrado.

Instalar shiny en R

Para los anticuados:
> install.packages("shiny")


 Para los más modernos
Directamente pasamos a Rstudio
 

Cómo funciona un programa en Shiny

Cualquier proyecto shiny lo vamos a ver como un directorio formado por varios archivos.Debido a que el programa va a correr en un servidor (aunque sea en localhost)  y que tiene interfaz gráfica vamos a necesitar al menos un script para el servidor y otro script para nuestro GUI.

Archivo ui.R

Este archivo va a tener todo lo que necesitamos para la interfaz gráfica.La ventanita, los títulos, etc etc. Para hacer todavía más fácil la creación de la aplicación si decidimos publicarla en una web por defecto Shiny la creadará con el framework Bootstrap que es ampliamente utilizado hoy en día y usa HTML5. ¿Qué más se puede pedir?

Código ui.R

 This is the user-interface definition of a Shiny web application.
# You can find out more about building applications with Shiny here:
#
# http://shiny.rstudio.com
#

library(shiny)

shinyUI(fluidPage(

  # Application title
  titlePanel("Old Faithful Geyser Data"),

  # Sidebar with a slider input for number of bins
  sidebarLayout(
    sidebarPanel(
      sliderInput("bins",
                  "Number of bins:",
                  min = 1,
                  max = 50,
                  value = 30)
    ),

    # Show a plot of the generated distribution
    mainPanel(
      plotOutput("distPlot")
    )
  )
))

Archivo server.R 


Este archivo es el del servidor.

Código server.R


# This is the server logic for a Shiny web application.
# You can find out more about building applications with Shiny here:
#
# http://shiny.rstudio.com
#

library(shiny)

shinyServer(function(input, output) {

  output$distPlot <- renderPlot({

    # generate bins based on input$bins from ui.R
    x    <- faithful[, 2]
    bins <- seq(min(x), max(x), length.out = input$bins + 1)

    # draw the histogram with the specified number of bins
    hist(x, breaks = bins, col = 'darkgray', border = 'white')

  })

})

Crear un proyecto en Shiny



Esto va a hacer que tengamos un directorio con estos dos archivos en RStudio tal que así en nuestro nuevo directorio/proyecto


Una vez creado el nuevo proyecto podemos ver aplicaciones preinstaladas para empezar a toquetearlas. Para ello sólo hace falta llamarlas desde la línea de comandos y correr la aplicación de esta forma
> library(shiny)
> runApp("my_app")
Shiny nos los pone fácil y nos tiene preparadas algunas aplicaciones preinstaladas. Así que podemos llamarlas y ver lo que es capaz de hacer. Aquí los ejemplos que podemos encontrar:

runExample("01_hello") # a histogram
runExample("02_text") # tables and data frames
runExample("03_reactivity") # a reactive expression
runExample("04_mpg") # global variables
runExample("05_sliders") # slider bars
runExample("06_tabsets") # tabbed panels
runExample("07_widgets") # help text and submit buttons
runExample("08_html") # Shiny app built from HTML
runExample("09_upload") # file upload wizard
runExample("10_download") # file download wizard
runExample("11_timer") # an automated timer
También puedes ver diferentes ejemplos para estudiar y trabajar sobre el código.
En mi caso he re-creado una app que lee archivos en txt y los muestra en una nube de palabras (wordcloud). Quiero que me ayude a entender de una forma fácil y visual cuales son los términos que más se repiten en los artículos de mi web. La app todavía necesita varias vueltas como por ejemplo crear stop-word o cambiar el tipo de codificación de caracteres. Pero bueno, se vería así.

Ejemplos de R con código

La página principal donde encontré los ejemplos ha desaparecido pero aún queda en pie los enlaces a los ejemplos.

Los 108 ejemplos con código puedes encontrarlos en el siguiente fork en github. En mi caso usé código del ejemplo de 002-text y wordcloud ( http://gallery.shinyapps.io/082-word-cloud )

 He puesto el código y el enlace a su página en el siguiente documento para que sea más fácil de encontrar
https://docs.google.com/spreadsheets/d/1dJMZkdVHxk-mjta5eAfavCeQGLjEk6gACEZ_GkLaWAo/edit?usp=sharing

En github puedes encontrar el código de cuando cree el post (gracias Maria del pasado por hacer un fork).

*Yo actualizando los enlaces a este post que escribí en 2016, tras pasarme a Python.


Referencia de la imagen- 9gag.com/

Documentación e información sobre Rstudio Shiny


domingo, 13 de diciembre de 2015

Año nuevo - cursos nuevos

Hola gente anónima que pulula por Internet

He decidido retomar el blog con la idea de automotivarme (ese era el fin de este blog...)  con los nuevos cursos que me he apuntado y aunque en principio iban a ser un par, bueno, creo que me he pasado un poco. El saber no ocupa lugar, pero si mucho tiempo.

Por ello me he tomado mes y medio para ponerme al día en todo lo nuevo relativo al análisis digital antes de seguir con mi carrera profesional con la ideas de equiparme con nuevas herramientas que poder aplicar a mi trabajo.

Objetivo principal:

Aprender nuevas herramientas, buenas prácticas y métodos data-driven que aplicar al Digital Marketing/Business hasta el 15 de Febrero.

Objetivos específicos:

1.Conseguir certificados que sean reconocibles a nivel internacional
2.Aprender metodología (frameworks) para poder aplicar al análisis de datos en Marketing/Ecommerce.
3Realizar análisis estadísticos con lenguajes de programación específicos del análisis de datos.
4.Aprender nuevas formas de poder comunicar los insights que encuentro a personas que no saben sobre datos/estadísticas.


1. Conseguir certificados que sean reconocible a nivel Internacional

Motivación: Uno de los problemas que supongo que como yo tienen las personas que llevan tiempo trabajando en todo lo relacionado con lo digital ,es que ningún plan de estudios de posgrado realmente satisface los intereses y el coste (económico/de tiempo)-beneficio. Muchos de estos programas no cumple las expectativas a nivel de formación- contenido práctico y casos de usos. Ello, unido a que  la información que se da en estos,se va quedando anticuada de un año para otro y que luego en según que empresa trabajan con unos programas u otros hace muy difícil que me decida por ninguno de ellos.


- Conseguir la Google Adwords Individual Certification
Llevo trabajando con Adwords al menos dos años, no debería ser muy dificil
DONE -> https://www.google.com/partners/?q=google%20partners#i_profile;idtf=102341943869267004654;
- Renovar Google Analytics Individual Certification
Me caducó en Agosto, pero no se lo digáis a nadie.

- Conseguir al menos un certificado de Market Motive.
Market Motive es una plataforma de aprendizaje cuyo cofundador es Avisnash Kaushik, uno de los cerebro de la analítica web en el mundo. Junto a otras cabezas pensantes de otras disciplinas ha creado esta plataforma. Sin duda, aprobar alguno de exámenes de sus materias va a tener mérito.


Métricas:
Certificado Adwords: APROBADO (Hurrah!)
Certificado Analytics
Certificado Market Motive


2.Aprender metodología (frameworks) para poder aplicar al análisis de datos cuantitativo en Marketing/Ecommerce.

Para ello estoy inscrita en varios de Marketing Analítico. Los que están en verde son los que cumplen con este fin
CURSOSPRIORIZATIONSTARTINGDEADLINEPLATFORMUNI
Customer Analytics104/01/201615/02/2016CourseraWharton
Using Databases with Python311/01/201622/02/2016CourseraMichigan
Data Visualization and Communication with Tableau211/01/201622/02/2016CourseraDuke
Data Analysis Tools611/01/201615/02/2016CourseraWesleyana
Econometrics425/01/201624/03/2016CourseraRotterdam
Marketing analysis525/01/201625/03/2016CourseraESSES
A/B testing7 17/01/2016UdacityGoogle
Métricas:
Obtener certificado

3. Realizar análisis estadísticos con lenguajes de programación específicos

Esta pregunta está relacionado con lo anterior, pero los cursos que más focalizan en el uso de programas son los que están en naranja.

Hace ya un tiempo que empecé a usar R para algunas tareas muy específicas, pero a la hora de usarlo con todo su potencial aplicado a  tengo siempre que depender de que alguien haya hecho un repositorio. Muchas empresas hacen mucho más fácil utilizar la API por medio de Python. Por otra parte tengo que repasar SQL, que es un lenguaje que estudié en DAI

Luego tenemos SAS y SPSS, ambos software propietario.SAS no se puede utilizar sin licencia. He sido usuaria de SPSS durante toda la carrera y posteriromente analizando encuestas de satisfacción y no tengo problemas en usar los estadísticos mas básicos y la matriz.

Así que como mucho otr@s me pregunto ¿R o Python? Si tú también te lo preguntasAquí una infografía muy apañada
Bueno, parece que en principio los dos, ya que los cursos marcan que lenguajes habría que usar.
Métricas:
Obtener certificados

4.Aprender nuevas formas de poder comunicar los insights que encuentro a personas que no saben sobre datos/estadísticas.

Cuando trabajaba haciendo reporting, una de las preguntas que nos hacíamos a primero de mes, tras ir a contra reloj actualizando los reports era: ¿miran realmente los clientes los datos o solamente se dedican a mirar los rankings en SEO y el dinero gastado? Más tarde yo misma he sufrido por parte de la directiva de la empresa el sentimiento de"¿De verdad nadie ve la tendencia? Sí está ahí en la tabla!"Y me costó ir de tablas muy específicas, a menos específicas; de ahí a gráficos completos; más tarde a gráficos de barras... Bueno, hay que comunicarse con todos los stakeholder así que un curso de tableau, que ya había usado anteriormente, me viene al pelo.
Métricas:
Obtener certificado


Así que una vez todo sumarizado: 
HERE WE GO.