Kontext:
Ich habe eine Gruppe von Websites, auf denen ich die Anzahl der Besuche täglich aufzeichne:
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
Allgemeine Frage:
- Wie bestimme ich, welche Websites am aktivsten sind?
Damit meine ich, dass in den letzten Tagen mehr oder plötzlich mehr Besuche zu verzeichnen waren. Zum Zwecke der Veranschaulichung wäre W0 in dem kleinen obigen Beispiel zunächst beliebt, zeigt jedoch allmählich Abbruch, W1 zeigt eine stetige Beliebtheit (mit einigen isolierten Spitzenwerten) und W3 eine wichtige Erhöhung nach einem ruhigen Start.
Erste Gedanken:
Ich habe diesen Thread auf SO gefunden, wo eine einfache Formel beschrieben wird:
// 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
Das sieht gut und einfach aus, aber ich habe ein Problem damit.
Die Berechnung basiert auf Steigungen. Dies ist in Ordnung und eine der Funktionen, die mich interessieren, aber meiner Meinung nach hat es Probleme mit nicht-monotonen Serien. Stellen Sie sich vor, dass wir während einiger Tage eine konstante Anzahl von Besuchen haben (also die Steigung = 0), dann wäre der obige Trend Null.
Fragen:
- Wie gehe ich mit beiden Fällen (monotone Zunahme / Abnahme) und einer großen Anzahl von Treffern um?
- Soll ich separate Formeln verwenden?
Antworten:
Es hört sich so an, als ob Sie nach einer "Online-Methode zur Erkennung von Änderungspunkten" suchen. (Dies ist ein nützlicher Ausdruck für Googeln.) Einige nützliche neuere (und leicht zugängliche) Veröffentlichungen sind Adams & MacKay (ein Bayes'scher Ansatz) und Keogh et al. Möglicherweise können Sie das Überwachungspaket für R in Betrieb nehmen. Mit statistischen Prozesskontrollmethoden kann eine vereinzelte große Anzahl von Treffern ermittelt werden .
quelle
Es gibt definitiv mehr und weniger komplexe Wege, um diese Art von Problem anzugehen. Vom Klang der Dinge aus haben Sie mit einer ziemlich einfachen Lösung begonnen (der Formel, die Sie auf SO gefunden haben). In Anbetracht dieser Einfachheit dachte ich, ich würde ein paar wichtige Punkte, die Sie in Ihrem Beitrag (der aktuellen Version von) ansprechen, noch einmal wiederholen.
Bisher haben Sie gesagt, dass Sie die Messung der "Site-Aktivität" erfassen möchten:
@ Jan-galkowski weist darauf hin, dass Sie auch (zumindest stillschweigend) am Rang der Standorte in Bezug zueinander entlang dieser Dimensionen interessiert zu sein scheinen.
Wenn diese Beschreibung korrekt ist, würde ich vorschlagen, die einfachste mögliche Lösung zu untersuchen, die diese drei Maße (Änderung, Größe, Rang) als separate Komponenten einbezieht. Zum Beispiel könnten Sie Folgendes aufnehmen:
(y2)
geteilt durch die durchschnittlichen Besuche / Tage für diese Website (Y
):y2 / mean(Y)
Für W0, W1 und W2 ergibt dies 0,16, 1,45 und 2,35. (Aus Gründen der Interpretation wird davon ausgegangen, dass eine Website, deren letzter Wert für Besuche pro Tag dem durchschnittlichen Wert für Besuche pro Tag entspricht, ein Ergebnis von 1 generiert.) Beachten Sie, dass Sie diese Kennzahl auch anpassen können, um die letzten 2 (oder mehr) Tage zu erfassen:
y2 + y1 / 2 * mean(Y)
Das ergibt: 0,12, 1,33, 1,91 für Ihre drei Probenstellen.
Wenn Sie tatsächlich den Mittelwert der Besuchs- / Tagesverteilung der einzelnen Standorte für diese Art von Kennzahl verwenden, würde ich auch die Standardabweichung der Verteilung untersuchen, um ein Gefühl für die relative Volatilität zu erhalten. Die Standardabweichung für die Besuchs- / Tagesverteilung jeder Site beträgt: 12.69, 12.12 und 17.62. Das Nachdenken über das
y2/mean(Y)
Maß in Bezug auf die Standardabweichung ist hilfreich, da Sie so die aktuelle Größe der Aktivität an Standort W2 im Blick behalten können (größere Standardabweichung = insgesamt weniger stabil / konsistent).Wenn Sie an Rängen interessiert sind, können Sie diese Ansätze auch in diese Richtung erweitern. Zum Beispiel würde ich denken, dass es nützlich sein könnte, den Rang einer Site in Bezug auf die letzten Besuche pro Tag sowie den Rang der durchschnittlichen Besuche jeder Site pro Tag (den Rang von
mean (Y)
für jedesW
InWn
) zu kennen. Auch hier können Sie ganz auf Ihre Bedürfnisse zuschneiden.Sie können die Ergebnisse all dieser Berechnungen als Tabelle darstellen oder eine regelmäßig aktualisierte Visualisierung erstellen, um sie täglich zu verfolgen.
quelle
Achtung: Die Ankunftsraten von Benutzern auf Websites sind unangenehme Serien, die (aus Poisson-Sicht) häufig überstreut sind. Berücksichtigen Sie daher negative Binominalverteilungen, um die Zugänge und ihre Anpassung zu untersuchen. Möglicherweise möchten Sie auch die Bestellstatistik der Websites an jedem Tag und nicht ihre Nummern überprüfen.
quelle