dilluns, 12 d’agost de 2013

Retention Visualization

L'indicador 'Retention' ens explica la quantitat de persones que repeteixen un servei. Per calcular l'indicador 'retention' cal anar als logs d'accés i 'cuinar' les dades. En aquesta pregunta de l'stackoverflow precissament demanen com fer aquest càlcul amb una consulta de mySql:

MySQL user retention and day to day

El principal problema per a cuinar aquestes dades és que el MySQL té una sèrie de limitacions respecte els seus competidors:

  • No disposa de taules de pivotació ( per transposar les dates a columnes tal com es veu a la imatge)
  • No disposa de funcions analítiques.
  • No disposa de generadors de dates ( ni tans sols generadors d'enters )
  • No disposa de CTE per poder trencar la consulta en consultes més fàcils.
Amb tot això aquesta és la solució proposada i les dades resultants:



Per a escriure la select he hagut de sacrificar qualsevol rastre d'elegancia en una consulta sql:

  • Subqueries de subqueries.
  • Passar format datetime a date com string.
  • Generador d'enters fet a mà
el cas és que la select funciona i obté els resultats desitjats. 

Però la gràcia de l'indicador és que serveixi per ajudar a prendre millors decissions. Això no és senzill de fer sense una bona visualització dels resultats. Mitjançant un petit programet python he generat resultats aleatòris per disposar d'una mostra més àmplia que serveixi d'exemple de visualització, i aquí la tenim:


Assenyalat en vermell els diumenges. Cada dada deixa una estela que va decrementant-se. El punt més elevat representa el número de persónes que ha utlitzat el suposat servei i, l'estela, serien les persones que han repetit l'experiència el dia posterior, dos dies més tart i així fins a 7 dies, tal com demanava l'autor de la pregunta.

Una altre visualització de les mateixes dades, intercanviant fileres per columnes, seria aquesta:


Veiem per exemple que el dia 21 de juliol s'hi van connectar 486 persones, d'aquestes, el dia 22, es van tornar a connectar la majoria, no totes, i així seguiriem l'estela fins arribar a 7 dies més tart on veiem que van fer 'retention' unes 75.

Aquí el codi del programa pyton que genera les dades aleatòries:

from datetime import date, timedelta
import random

dia = date.today()

for n in range(50):
   dia = dia - timedelta( days = 1 )
   inicial = random.randint( 300, 500 )
   print ( dia, dia, 0, inicial, sep=",")
   for r in range( 1, 8 ):
        resta = random.randint( 20, 100 )
        inicial -= resta
        if inicial > 0:
            print ( dia, dia - timedelta( days = r ),  r, inicial, sep="," )








dimecres, 7 d’agost de 2013

Google Trends: Recerques sobre estudis superiors.

Indicador


Quantitat de recerques a Google ( territori 'spain' ) dels termes


'Grado Superior' v.s 'Universidad'

He assenyalat en taronja els mesos de maig i juny que són els mesos en que els alumnes busquen informació per a la matrícula. També el setembre en verd





Interpretació:

La meva pregunta sobre el gràfic és per què al setembre hi ha més recerques que al juny (o maig) sent aquestes dates quan els alumnes decideixen els estudis que faran. D'altre banda, no sembla que el gràfic tingui relació amb l'interés o matriculacions dels alumnes a la Universitat (no he buscat dades comparatives) però seria interessant saber per què hi ha aquest descens de les cerques sobre el terme 'Universitat'. D'altre banda, queda clar que el pitjor moment per invertir en una campanya publicitària online seria el Nadal.

Gràfic al google trends:



Actualització de l'article

He descarregat de l'INE les dades de presentats i aprovats de les PAU. Sembla un bon indicador per a comparar-ho amb les recerques a google de la paraula 'Universitat'. Observem que no hi ha una correlació entre les recerques entre el mot 'Universitat' i la gent que es prepara per als estudis universitatis:




Nota: L'any 2013 no és comparable doncs hi ha dades només fins agost.