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ł?
Odpowiedzi:
Wygląda na to, że szukasz „metody wykrywania punktów wymiany online”. (To przydatna fraza dla Googlinga.) Niektóre przydatne najnowsze (i dostępne) artykuły to Adams i MacKay (podejście bayesowskie) oraz Keogh i in. Być może będziesz w stanie nacisnąć pakiet nadzoru dla R. Izolowane duże liczby trafień można znaleźć za pomocą statystycznych metod kontroli procesu .
źródło
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ł:
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ć:
(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żdegoW
wWn
) 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.
źródło
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.
źródło