Détection du trafic Web significatif avec R et AnomalyDetection

Evénements significatifs depuis 2011

Dans cet article nous allons voir comment détecter les jours ou l’on a un trafic significativement plus important que les autres jours sur son site Web avec R et la bibliothèque AnomalyDetection de Twitter.

De quoi aurons nous besoin ?

Logiciel R

Comme précédemment, afin de pouvoir tester le code source de cette démonstration nous vous invitons à télécharger Le Logiciel R sur ce site https://cran.r-project.org/, ainsi que l’environnement de développement RStudio ici : https://www.rstudio.com/products/rstudio/download/.

Bibliothèque AnomalyDetection de Twitter

Afin de pouvoir détecter des événements significatifs, nous allons utiliser le package R « AnomalyDetection » développé par Twitter et disponible sur Github https://github.com/twitter/AnomalyDetection

Ce package est basé sur un algorithme « Seasonal Hybrid
Extreme Studentized Deviate » qui permet de détecter des résultats
particuliers ou valeurs aberrantes dans des séries temporelles ou des vecteurs.

Dans notre cas, on considèrera qu’une « valeur aberrante » par rapport au trafic « normal » du site correspond à un événement particulier ayant permis de générer un trafic supplémentaire important.

Jeu de données

Afin d’illustrer notre propos, nous partirons du jeu de données de l’association Networking Morbihan que nous avons déjà utilisé précédemment.

Ce jeu de données a été récupéré via l’API Google Analytics puis ensuite nettoyé du spam comme nous l’avons expliqué dans cet article précédent.

L’avantage de ce jeu de données est que nous avons un historique de 7 ans 1/2.

Vous pouvez télécharger ce jeu de données sur notre Github à partir du fichier d’archive à l’adresse : https://github.com/Anakeyn/DetectSignificantWebTrafficR/raw/master/dfPageViews.zip. Dézippez-le et sauvegardez-le dans le même répertoire que votre code R.

Code Source

Vous pouvez copier/coller les bouts de code dans les zones de code ou sinon tout télécharger depuis notre Github : https://github.com/Anakeyn/DetectSignificantWebTrafficR.

Récupération des données :

Les données sont récupérées à partir du fichier dfPageViews.csv et mises en forme pour avoir un enregistrement par jour.

Graphique du TRAFIC PAR ANNEES

trafic par années
trafic par années

Détection des anomalies.

Ici nous utilisons la version AnomalyDetectionVec qui permet de détecter des anomalies dans une séries d’observations.

Vous devez renseigner l’algorithme avec différents paramètres notamment :

  • max_anoms : le nombre max d’anomalies en % du total d’observations.
  • direction : détermine si l’algorithme tient compte des valeurs passées, futures ou dans les deux sens. nous avons choisi dans les 2 sens ‘both’.
  • alpha : niveau de significativité, nous avons pris un classique 5%.
  • period : le nombre d’observations dans une période ; pour nous 30 car nous supposons que nous faisons des actions marketing tous les 30 jours. Toutefois ce paramètre n’a pas beaucoup d’effet sur nos données.

Voilà c’est super simple, le système a détecté 98 « anomalies ». A vous de faire varier les paramètres selon vos besoins et vos données.

Affichage des anomalies sur la courbe des pages vues.

Voyons l’effet sur la courbe des pages vues sur toute la période.

Evénements significatifs depuis 2011
Evénements significatifs depuis 2011

Affichage des anomalies en moyenne mobile sur 30 jours.

Evénements significatifs courbe en  moyenne mobile.
Evénements significatifs courbe en moyenne mobile.

Comme le calcul est basé sur toute la période et sur plusieurs années et comme le trafic a baissé, on voit moins d’événements significatifs en 2017 et 2018.

Affichage pour les années 2012 et 2013

Par curiosité et pour y voir plus clair affichons les graphiques pour 2012 et 2013 par exemple.

Pour 2012

Evénements significatifs en 2012
Evénements significatifs en 2012

POUR 2013

Evénements significatifs en 2013
Evénements significatifs en 2013

A ce stade, on pourrait penser que les événements significatifs (que l’on peut regrouper parfois lorsqu’ils sont proches) correspondent plus ou moins à une régularité mensuelle.

Ceci pourrait correspondre aux actions marketing mensuelles que nous avons réalisées pour ce site. Toutefois, nous vérifierons cela dans un prochain article.

Et vous ? Qu’obtenez vous avec vos données ?

A Bientôt,

Pierre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.