Déterminer si un site Web est actif à l'aide de visites quotidiennes

15

Le contexte:

J'ai un groupe de sites Web où j'enregistre quotidiennement le nombre de visites:

W0 = { 30, 34, 28, 30, 16, 13, 8, 4, 0, 5, 2, 2, 1, 2, .. } 
W1 = { 1, 3, 21, 12, 10, 20, 15, 43, 22, 25, .. }
W2 = { 0, 0, 4, 2, 2, 5, 3, 30, 50, 30, 30, 25, 40, .. } 
...
Wn 

Question générale:

  • Comment déterminer quels sites sont les plus actifs?

J'entends par là recevoir plus de visites ou avoir une augmentation soudaine des visites au cours des derniers jours. À des fins d'illustration, dans le petit exemple ci-dessus, W0 serait initialement populaire mais commence à montrer un abandon, W1 affiche une popularité constante (avec un pic isolé), et W3 une augmentation importante après un démarrage silencieux).

Pensées initiales:

J'ai trouvé ce fil sur SO où une formule simple est décrite:

// pageviews for most recent day
y2 = pageviews[-1]
// pageviews for previous day
y1 = pageviews[-2]
// Simple baseline trend algorithm
slope = y2 - y1
trend = slope * log(1.0 +int(total_pageviews))
error = 1.0/sqrt(int(total_pageviews))
return trend, error

Cela semble assez bon et facile, mais j'ai un problème avec ça.

Le calcul est basé sur les pentes. C'est très bien et c'est l'une des fonctionnalités qui m'intéresse, mais à mon humble avis, il a des problèmes pour les séries non monotones. Imaginez que pendant quelques jours nous ayons un nombre constant de visites (donc la pente = 0), alors la tendance ci-dessus serait nulle.

Des questions:

  • Comment gérer les deux cas (augmentation / diminution monotone) et un grand nombre de hits?
  • Dois-je utiliser des formules distinctes?
Dan
la source
1
Je suis surpris que vous n'ayez pas encore reçu de réponse (bien que ce soit une question évidemment populaire). Étant donné que chacune de vos quatre balles vaut une question en soi, pourquoi ne pas limiter cette question à l'une d'entre elles et publier les autres dans des questions distinctes. Ce sont toutes des questions vraiment excellentes qui adoptent des approches distinctes, et toutes les quatre valent la peine en soi.
Andy W
Salut Andy, merci beaucoup pour ta réponse. Je vais essayer de la reformuler et de me concentrer sur un seul problème à la fois. Ma pensée initiale était de la rendre aussi large que possible (et d'éviter de répéter la même question par la suite) mais étant donné le manque de réponses, il semble que ce soit trop général pour que quelqu'un y réponde.
Dan
J'ai édité la question pour exposer les deux principaux problèmes qui m'intéressent le plus. J'ai choisi de les poser dans la même question étant donné leur relation étroite.
Dan
1
Je n'arrive toujours pas à comprendre pourquoi avoir une estimation avec une petite erreur rend une approche «inutilisable».
onestop
Merci pour le commentaire. Je ne dis pas que l'approche (calcul de tendance) était inutilisable, mais son calcul d'erreur pourrait avoir un problème potentiel. Étant donné que je n'ai reçu aucune réponse jusqu'à présent, je vais supprimer cet élément de la question en espérant qu'il soit plus facile de répondre.
Dan

Réponses:

2

Il existe certainement des moyens de plus en moins complexes de résoudre ce type de problème. Au départ, vous avez commencé avec une solution assez simple (la formule que vous avez trouvée sur SO). Avec ce genre de simplicité à l'esprit, j'ai pensé que je reviendrais sur quelques points clés que vous faites dans (la version actuelle de) votre message.

Jusqu'à présent, vous avez dit vouloir que votre mesure de "l'activité du site" capture:

  • Changement de pente des visites / jour sur "ces derniers jours"
  • Changements d'amplitude des visites / jour au cours des "derniers jours"

Comme le souligne @ jan-galkowski, vous semblez également (au moins tacitement) intéressé par le classement des sites les uns par rapport aux autres selon ces dimensions.

Si cette description est exacte, je proposerais d'explorer la solution la plus simple possible qui incorpore ces trois mesures (changement, amplitude, rang) en tant que composants séparés. Par exemple, vous pouvez saisir:

  • Les résultats de votre solution SO pour capturer la variation de pente (même si j'incorporerais 3 ou 4 jours de données)
  • Ampleur des visites / jour les plus récentes de chaque site (y2)divisée par la moyenne des visites / jour pour ce site ( Y):

y2 / mean(Y)

Pour W0, W1 et W2 respectivement, cela donne 0,16, 1,45 et 2,35. (Par souci d'interprétation, considérons qu'un site dont la valeur de visites par jour la plus récente était égale à sa moyenne de visites par jour générerait un résultat de 1). Notez que vous pouvez également ajuster cette mesure pour capturer les 2 derniers jours (ou plus):

y2 + y1 / 2 * mean(Y)

Cela donne: 0,12, 1,33, 1,91 pour vos trois sites d'échantillonnage.

Si vous utilisez en fait la moyenne de la distribution de visites / jour de chaque site pour ce type de mesure, je regarderais également l'écart-type de la distribution pour avoir une idée de sa volatilité relative. L'écart type pour la distribution de visites / jour de chaque site est: 12,69, 12,12 et 17,62. La réflexion sur la y2/mean(Y)mesure par rapport à l'écart type est utile car elle permet de garder en perspective l'ampleur récente de l'activité sur le site W2 (écart type plus important = globalement moins stable / cohérent).

Enfin, si vous êtes intéressé par les rangs, vous pouvez également étendre ces approches dans cette direction. Par exemple, je pense qu'il serait utile de connaître le classement d'un site en termes de visites par jour les plus récentes ainsi que le classement des visites moyennes par site de chaque site (le classement de mean (Y)pour chaque Wentrée Wn). Encore une fois, vous pouvez adapter à vos besoins.

Vous pouvez présenter les résultats de tous ces calculs sous forme de tableau, ou créer une visualisation régulièrement mise à jour pour les suivre quotidiennement.

ashaw
la source
1

Attention, les taux d'arrivée des utilisateurs sur les sites Web sont des séries désagréables, ont tendance à être trop dispersés (du point de vue de Poisson), alors considérez les distributions binominales négatives pour examiner les arrivées et leur ajustement. En outre, vous souhaiterez peut-être examiner les statistiques de commande des sites chaque jour plutôt que leur nombre.

Jan Galkowski
la source