Ustalanie, czy strona internetowa jest aktywna za pomocą codziennych wizyt


15

Kontekst:

Mam grupę witryn, na których codziennie rejestruję liczbę odwiedzin:

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 

Pytanie ogólne:

  • Jak ustalić, które witryny są najbardziej aktywne?

Rozumiem przez to otrzymywanie większej liczby wizyt lub nagły wzrost liczby wizyt w ciągu ostatnich kilku dni. Dla celów ilustracyjnych, w powyższym małym przykładzie W0 byłby początkowo popularny, ale zaczyna wykazywać rezygnację, W1 wykazuje stałą popularność (z pewnym izolowanym szczytem), a W3 ważne podwyższenie po spokojnym starcie).

Wstępne przemyślenia:

Znalazłem ten wątek na SO, gdzie opisano prostą formułę:

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

Wygląda to dobrze i łatwo, ale mam z tym problem.

Obliczenia oparte są na zboczach. Jest w porządku i jest to jedna z funkcji, które mnie interesują, ale IMHO ma problemy z seriami niemonotonicznymi. Wyobraź sobie, że w ciągu kilku dni mamy stałą liczbę odwiedzin (więc nachylenie = 0), to powyższy trend wynosiłby zero.

Pytania:

  • Jak radzić sobie z obydwoma przypadkami (monotoniczny wzrost / spadek) i dużą liczbą trafień?
  • Czy powinienem używać oddzielnych formuł?

1
Dziwię się, że nie otrzymałeś jeszcze żadnych odpowiedzi (choć jest to oczywiście popularne pytanie). Ponieważ każdy z czterech pocisków jest wart sam w sobie pytania, możesz ograniczyć to pytanie do jednego z nich, a pozostałe zamieścić w osobnych pytaniach. Wszystkie są naprawdę doskonałymi pytaniami, które mają odmienne podejście i wszystkie cztery są warte zachodu.
Andy W

Cześć Andy, wielkie dzięki za odpowiedź. Spróbuję to sformułować i skupiać się na jednym problemie na raz. Moja pierwotna myśl polegała na tym, aby uczynić to możliwie najszerszym (i unikać powtarzania tego samego pytania później), ale biorąc pod uwagę brak odpowiedzi, wydaje się, że jest to zbyt ogólne, aby ktoś mógł na nie odpowiedzieć.
Dan

Zredagowałem pytanie, aby pokazać dwie główne kwestie, którymi najbardziej się interesuję. Zdecydowałem się postawić je w tym samym pytaniu, biorąc pod uwagę ich ścisły związek.
Dan

1
Nadal nie rozumiem, dlaczego posiadanie jednego oszacowania z małym błędem sprawia, że ​​podejście jest „bezużyteczne”.
onestop

Dziękuję za komentarz. Nie twierdzę, że podejście (obliczanie trendu) było bezużyteczne, ale jego obliczenie błędu może mieć potencjalny problem. Ponieważ do tej pory nie otrzymałem odpowiedzi, usunę ten element z pytania, mając nadzieję, że odpowiedź będzie łatwiejsza.
Dan

Odpowiedzi:



2

Istnieją zdecydowanie bardziej i mniej złożone sposoby rozwiązania tego rodzaju problemu. Od samego początku zacząłeś od dość prostego rozwiązania (formuły znalezionej w SO). Mając na uwadze taką prostotę, pomyślałem, że wrócę do kilku kluczowych punktów, które przedstawiłeś (w bieżącej wersji) swojego postu.

Jak dotąd powiedziałeś, że chcesz, aby twój pomiar „aktywności w witrynie” obejmował:

  • Zmiany nachylenia w wizytach / dzień w ciągu „ostatnich kilku dni”
  • Zmiany wielkości odwiedzin / dzień w ciągu „ostatnich kilku dni”

Jak zauważa @ jan-galkowski, wydajesz się również (przynajmniej milcząco) zainteresowany rangą witryn względem siebie w tych wymiarach.

Jeśli ten opis jest dokładny, proponuję zbadanie najprostszego możliwego rozwiązania, które obejmuje te trzy miary (zmiana, wielkość, ranga) jako osobne elementy. Na przykład możesz pobrać:

  • Wyniki twojego rozwiązania SO do przechwytywania zmian nachylenia (chociaż uwzględniałbym dane z 3 lub 4 dni)
  • Wielkość ostatniej wizyty / dzień każdej witryny (y2)podzielona przez średnią liczbę odwiedzin / dzień dla tej witryny ( Y):

y2 / mean(Y)

Dla W0, W1 i W2 daje to odpowiednio 0,16, 1,45 i 2,35. (Ze względu na interpretację należy wziąć pod uwagę, że witryna, której ostatnia liczba odwiedzin dziennie była równa średniej liczbie odwiedzin dziennie, wygenerowałaby wynik 1). Pamiętaj, że możesz również dostosować tę miarę, aby uwzględnić ostatnie 2 (lub więcej) dni:

y2 + y1 / 2 * mean(Y)

Daje to: 0,12, 1,33, 1,91 dla trzech przykładowych witryn.

Jeśli w rzeczywistości użyjesz średniej z rozkładu odwiedzin / dni dla każdego miejsca dla tego rodzaju miary, przyjrzałbym się również standardowemu odchyleniu rozkładu, aby uzyskać poczucie jego względnej zmienności. Standardowe odchylenie dla każdej wizyty / dnia dystrybucji w witrynie wynosi: 12,69, 12,12 i 17,62. Myślenie o y2/mean(Y)pomiarze w stosunku do odchylenia standardowego jest pomocne, ponieważ pozwala zachować perspektywę ostatniej aktywności na stronie W2 (większe odchylenie standardowe = ogólnie mniej stabilna / spójna).

Wreszcie, jeśli jesteś zainteresowany szeregami, możesz rozszerzyć te podejścia również w tym kierunku. Na przykład, sądzę, że znajomość rankingu witryny pod względem wartości ostatnich odwiedzin dziennie, jak również ranga średniej liczby odwiedzin każdej witryny (ranga mean (Y)dla każdego Ww Wn) może być przydatna. Ponownie możesz dostosować do swoich potrzeb.

Możesz przedstawić wyniki wszystkich tych obliczeń w formie tabeli lub utworzyć regularnie aktualizowaną wizualizację, aby śledzić je codziennie.


1

Uwaga: wskaźniki odwiedzin użytkowników w witrynach sieci Web to nieprzyjemne serie, zwykle są rozproszone (z punktu widzenia Poissona), więc weź pod uwagę ujemne rozkłady dwumianowe, aby spojrzeć na przyjazdy i ich dopasowanie. Możesz także sprawdzić statystyki zamówień witryn każdego dnia, a nie ich liczby.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.