Détection du trafic Web significatif avec Python

Evénements significatifs depuis 2011

Précédemment, nous avions vu comment détecter les jours de trafic significatif sur son site Web avec R.

Pour ne pas faire de jaloux nous allons maintenant déterminer cela avec Python.

De quoi aurons-nous besoin ?

Python Anaconda

Comme précédemment, nous vous invitons à utiliser la version de Python Anaconda qui contient toutes les bibliothèques statistiques nécessaires et les outils suivants :

  • Anaconda Navigator qui permet d’accéder à de nombreux autres outils.
  • L’invite de commande Anaconda Prompt qui permet notamment d’utiliser le gestionnaire de paquets « Conda » afin d’ajouter des bibliothèques à votre environnement Python.
  • Spyder : l’environnement de développement intégré fourni par défaut.

Anaconda est compatible Windows, Mac et Linux. Rendez vous sur la page de téléchargement d’Anaconda Distribution pour télécharger la version qui vous convient.

Test Tau de Thompson modifié

Nous n’avons pas trouvé de bibliothèque équivalente à AnomalyDetection de R en Python. Si vous en connaissez…

C’est pourquoi nous allons calculer à la main ces anomalies en utilisant la méthode du Test Tau de Thompson modifié. Ce test est présenté sur la page « Donnée aberrante » de Wikipedia.

Nous reviendrons en détail sur cette méthode plus bas.

Jeu de données

Comme avec R, et 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 dont on a ensuite nettoyé le Spam : voir ici pour cette opération en Python.

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

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/DetectSignificantWebTrafficPython.

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.

Données nettoyées.
Données nettoyées.

Utilisation du test Tau de Thompson modifié

Le test Tau de Thompson modifié est une méthode utilisée pour déterminer s’il existe des données aberrantes dans une série de valeurs.

Cette méthode prend en compte l’écart-type et la moyenne de la série et fournit un seuil de rejet déterminée statistiquement. 

Déroulement du test :

Etape 1 : On détermine un seuil de rejet en utilisant la formule suivante :

Seuil test Tau de Thompson modifié

où :

{\displaystyle {t_{\alpha /2}}}

ou tau est la valeur critique provenant de la table de la Loi de Student et n est la taille de l’échantillon.

Remarque : ici pour un intervalle bilatéral à 95 %, on prendra le quantile à 97,5 % dans la table de Student. Pour un échantillon très grand, pour nous n=2658, tau = 1,96.

Le seuil trouvé est égal à 1.9585842166773806

Etape 2 : On calcule ensuite le z-score de chaque valeur. le z-score est l’écart de la valeur à la moyenne divisé par l’écart-type. Le z-score est comparé ensuite au seuil :

  • Si le z-score > seuil, la valeur est une donnée aberrante.
  • Si le z-score <= seuil, la valeur n’est pas une donnée aberrante.

Le calcul donne 136 valeurs aberrantes. On pourrait utiliser cette valeur, toutefois, pour être cohérent avec R et avoir un nombre de valeurs aberrantes équivalent, nous allons prendre un seuil plus restrictif :

Pour un seuil à 2,29 on obtient 97 valeurs aberrantes.

Affichage des anomalies sur la courbe des pages vues.

Evénements significatifs
Evénements significatifs

Affichage des anomalies en moyenne mobile sur 30 jours.

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

Merci pour votre attention.

Dans un prochain article nous verrons si les actions marketing que nous avons menées sont en rapport avec ces augmentations de trafic.

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.