Nous collectons l'analyse de cohorte / analyse des flux sur l'exemple d'Excel

Dans un article précédent, j'ai décrit l'utilisation de l'analyse de cohorte pour déterminer les raisons de la dynamique de la clientèle. Aujourd'hui, il est temps de parler des astuces de préparation des données pour l'analyse de cohorte.


Il est facile de dessiner des images, mais pour qu’elles soient lues et affichées correctement «sous le capot», beaucoup de travail doit être fait. Dans cet article, nous parlerons de la façon de mettre en œuvre l'analyse de cohorte. Je parlerai de l'implémentation à l'aide d'Excel, et dans un autre article à l'aide de R.


Que cela nous plaise ou non, mais en fait, Excel est un outil d'analyse de données. Des analystes plus «arrogants» penseront qu'il s'agit d'un outil faible et peu pratique. D'un autre côté, en fait, des centaines de milliers de personnes effectuent une analyse de données dans Excel et à cet égard, il battra facilement R / python. Bien sûr, lorsque nous parlerons des avancées analytiques et du machine learning, nous travaillerons sur R / python. Et j'aimerais que la plupart des analyses soient effectuées avec uniquement ces outils. Mais cela vaut la peine de reconnaître les faits, la grande majorité des entreprises traitent et présentent les données dans Excel, et c'est l'outil que les analystes, les gestionnaires et les propriétaires de produits ordinaires utilisent. En outre, Excel est difficile à vaincre en termes de simplicité et de clarté du processus, car vous maîtrisez vos calculs et modèles littéralement avec vos mains.


Et alors, comment faisons-nous l'analyse de cohorte dans Excel? Afin de résoudre de tels problèmes, vous devez déterminer 2 choses:


  1. Quelles données avons-nous au début du processus


  2. À quoi devraient ressembler nos données à la fin du processus.


    Pour collecter une analyse de cohorte, nous n'aurons pas seulement besoin de données rétrospectives sur les dates et les divisions. Nous avons besoin de données au niveau du client individuel. Au début du processus, nous avons besoin de:


  3. Date du calendrier


  4. Identifiant client


  5. Date d'enregistrement du client


  6. Volume des ventes de ce client à cette date calendaire



La première difficulté à surmonter est d'obtenir ces données. Si vous avez le bon stockage, vous devriez déjà les avoir. D'un autre côté, si jusqu'à présent vous n'avez mis en œuvre que l'enregistrement des données sur les ventes totales par jour, alors vous ne disposez que des données clients sur «prod». Pour l'analyse de cohorte, vous devrez implémenter ETL et placer les données dans le contexte des clients dans votre stockage, sinon vous ne réussirez pas. Et surtout, si vous séparez «prod» et analytics dans différentes bases de données, car Les tâches analytiques et les tâches de fonctionnement de votre produit ont des objectifs différents: la concurrence pour les ressources. Les analystes ont besoin d'agrégats et de calculs rapides pour de nombreux utilisateurs, le produit doit servir rapidement un utilisateur spécifique. J'écrirai un article séparé sur l'organisation du stockage.


Vous avez donc des données de démarrage:



La première chose que nous devons faire est de les transformer en «échelles». Pour ce faire, vous devez créer un tableau croisé dynamique au-dessus de ce tableau, en lignes - la date d'enregistrement, en colonnes - la date du calendrier, en tant que valeurs - le nombre d'ID de clients. Si vous avez correctement extrait les données, vous devriez obtenir un tel triangle / échelle:



En général, une échelle est notre graphique de cohorte, dans lequel chaque ligne affiche la dynamique d'une cohorte distincte. Les clients à temps dans cet affichage se déplacent uniquement sur une ligne. Ainsi, la dynamique de la cohorte reflète le développement des relations avec un groupe de clients venus au cours d'une même période. Souvent, pour plus de commodité et sans perte de qualité, vous pouvez combiner des cohortes en «blocs» de rangées. Par exemple, vous pouvez les regrouper par semaine et par mois. De la même manière, vous pouvez également regrouper une colonne. Peut-être que votre rythme de développement de produits ne nécessite pas de détails jusqu'à plusieurs jours.


Sur la base de cette échelle, vous pouvez construire un graphique à partir de mon article (j'ai vraiment souligné que j'avais regroupé plusieurs lignes en une seule pour que la cohorte soit plus petite):



Il s'agit d'un graphique avec des zones cumulatives où chaque ligne est une ligne, horizontalement d'une date.


Une logique un peu plus compliquée pour mettre en œuvre le calendrier des "flux". Pour les threads, nous devons faire des calculs supplémentaires. En logique de thread, chaque client arrive dans des états différents:


  1. Nouveau - tout client qui a une différence entre la date d'inscription et la date du calendrier <7 jours
  2. Réactivé - tout client qui n'est plus nouveau, mais qui n'a pas généré de revenus au cours du dernier mois civil
  3. Valide - tout client qui n'est pas nouveau mais a généré des revenus au cours du mois civil
  4. Décédé - tout client qui n'a pas généré de revenus pendant 2 mois consécutifs

Tout d'abord, vous devez corriger ces définitions dans l'entreprise afin de pouvoir implémenter correctement cette logique et calculer automatiquement les états. Ces 4 définitions ont des implications importantes pour le marketing en général. Vos stratégies pour attirer, retenir et retourner seront basées sur l'état dans lequel vous pensez que le client est. Et si vous commencez à implémenter des modèles d'apprentissage automatique pour prédire les sorties de clients, les définitions deviendront votre pierre angulaire du succès de ces modèles. En général, j'écrirai un article séparé sur l'organisation du travail et l'importance de la méthodologie analytique. Ci-dessus, j'ai donné juste un exemple de ce que peuvent être ces définitions.


Dans Excel, vous devez créer une colonne supplémentaire où entrer la logique décrite ci-dessus. Dans notre cas, nous devons «transpirer». Nous avons 2 types de critères:


  • La différence entre la date d'enregistrement et la date du calendrier - chaque ligne contient ces données et il vous suffit ensuite de les calculer (la soustraction des dates dans Excel donne simplement la différence en jours)
  • Données sur les revenus du mois en cours et du mois dernier. Ces données ne sont pas disponibles pour nous dans la ligne. De plus, compte tenu du fait que la commande n'est pas garantie dans notre tableau, vous ne pouvez pas dire exactement où vous avez des données les autres jours du mois pour ce client.

Il existe 2 façons de résoudre le problème de 2 types de critères:


  1. Demandez à le faire dans la base de données. SQL permet d'utiliser la fonction analytique pour calculer pour chaque client le montant des revenus pour le mois en cours et le dernier (pour le mois en cours SUM (revenue) OVER (PARTITION BY client_id, calendar_month, puis LAG pour obtenir le décalage pour le dernier mois):
  2. Dans Excel, vous devez l'implémenter comme ceci:
    • Pour le mois en cours: SUMMES (), les critères seront l'ID client et le mois de la cellule du jour calendaire
    • Pour le dernier mois: SUMMES (), les critères seront l'ID client et le mois de la cellule du jour calendaire moins exactement 1 mois calendaire. Dans ce cas, j'attire l'attention sur le fait que vous devez soustraire le mois civil et non 30 jours. Sinon, vous risquez d'obtenir une image floue en raison du nombre inégal de jours dans les mois. Utilisez également la fonction IF ERROR pour remplacer les valeurs erronées pour les clients qui n'ont pas eu le mois dernier.

En ajoutant les colonnes de revenus du mois en cours du dernier mois, vous pouvez créer une condition intégrée IF en tenant compte de tous les facteurs (la différence de dates et le montant des revenus du mois en cours / du dernier mois):
SI (différence de date <7; «nouveau»;
SI (ET (revenus du mois dernier = 0; revenus du mois en cours> 0); "réactivation";
SI (ET (revenus du mois dernier> 0; revenus du mois en cours> 0); "courants"
SI (ET (revenus du mois dernier = 0; revenus du mois en cours = 0); "parti"; "erreur")))))


«Erreur» est nécessaire ici uniquement pour contrôler que vous ne vous êtes pas trompé dans l'enregistrement. La logique des critères d'état MECE ( https://en.wikipedia.org/wiki/MECE_principle ), c'est-à-dire Si tout est fait correctement, alors chacun d'eux sera apposé un état sur 4


Vous devriez l'obtenir comme ceci:



Maintenant, ce tableau peut être reconstruit à l'aide d'un tableau croisé dynamique dans un tableau pour le traçage. Vous devez le transformer en table:


Date du calendrier (colonnes)
État (lignes)
Nombre de clients id (valeurs dans les cellules)


Ensuite, il nous suffit de construire un diagramme à barres sur la base des données, avec des accumulations, sur l'axe X la date du calendrier, les lignes sont les états, le nombre de clients est la hauteur des colonnes. Vous pouvez changer l'ordre des états sur le graphique en changeant l'ordre des lignes dans le menu «sélectionner les données». En conséquence, nous obtenons l'image suivante:



Nous pouvons maintenant commencer à interpréter et à analyser.

Source: https://habr.com/ru/post/fr416017/


All Articles