Günlük ziyaretleri kullanarak bir web sitesinin etkin olup olmadığını belirleme


15

Bağlam:

Ziyaret sayısını günlük olarak kaydettiğim bir grup web sitem var:

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 

Genel Soru:

  • Hangi sitelerin en aktif olduğunu nasıl belirlerim?

Bununla, son birkaç gün içinde daha fazla ziyaret almak veya ziyaretlerde ani bir artış demek. Örnekleme amacıyla, yukarıdaki küçük örnekte W0 başlangıçta popüler olacaktır, ancak terk etmeyi göstermeye başlamaktadır, W1 sabit bir popülerlik göstermektedir (bazı izole tepe noktaları ile) ve W3 sessiz bir başlangıçtan sonra önemli bir artıştır.

İlk düşünceler:

Basit bir formül açıklandığı gibi SO bu iş parçacığı bulundu :

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

Bu yeterince iyi ve kolay görünüyor, ama onunla bir sorunum var.

Hesaplama eğimlere dayanmaktadır. Bu iyi ve ilgilendiğim özelliklerden biri, ancak IMHO monotonik olmayan seriler için sorunları var. Bazı günlerde sürekli ziyaretlerimiz olduğunu (eğim = 0), yukarıdaki eğilimin sıfır olacağını düşünün.

Sorular:

  • Her iki vakayı (monotonik artış / azalma) ve çok sayıda isabetle nasıl başa çıkarım?
  • Ayrı formüller kullanmalı mıyım?

1
Henüz herhangi bir yanıt almadığınıza şaşırdım (açıkça popüler bir soru olmasına rağmen). Dört merminizin her biri kendi başına bir soruya değdiğinden, bu soruyu bunlardan biriyle sınırlamaya ve diğerlerini ayrı sorularda yayınlamaya ne dersiniz. Hepsi farklı yaklaşımlar gerektiren gerçekten mükemmel sorulardır ve dördü de kendi başlarına değerlidir.
Andy W

Merhaba Andy, cevabınız için çok teşekkürler. Onu yeniden anlatmaya ve bir kerede tek bir konuya odaklanmaya çalışacağım. İlk düşüncem onu ​​olabildiğince genişletmekti (ve daha sonra aynı soruyu tekrarlamaktan kaçındı) ama cevapların eksikliği göz önüne alındığında, birisinin cevaplaması çok genel görünüyor.
Dan

Soruyu çoğunlukla ilgilendiğim iki ana konuyu açığa çıkarmak için düzenledim. Sıkı ilişkileri göz önüne alındığında bunları aynı soruya koymayı seçtim.
Dan

1
Hala küçük bir hatayla bir tahmin yapmanın bir yaklaşımı 'kullanılamaz' hale getirdiğini hala anlamıyorum.
onestop

Yorum için teşekkürler. Yaklaşımın (trend hesaplama) kullanılamaz olduğunu söylemiyorum, ancak hata hesaplamasının potansiyel bir sorunu olabilir. Şimdiye kadar hiçbir cevabım olmadığı göz önüne alındığında, cevaplamanın daha kolay olacağını umarak bu öğeyi sorudan kaldıracağım.
Dan

Yanıtlar:



2

Bu tür bir sorunu ele almanın kesinlikle daha az karmaşık yolları vardır. İşlerin sesinden, oldukça basit bir çözümle (SO'da bulduğunuz formül) başladınız. Bu tür bir basitlik göz önünde bulundurulduğunda, yayınınızda (güncel sürümü) yaptığınız birkaç önemli noktayı tekrar gözden geçireceğimi düşündüm.

Şimdiye kadar, "site etkinliği" ölçümünüzün yakalanmasını istediğinizi söylediniz:

  • "Son birkaç gündür" ziyaret / gün eğim değişiklikleri
  • "Son birkaç gün" içinde ziyaret / günlük büyüklük değişiklikleri

@ Jan-galkowski'nin işaret ettiği gibi, bu boyutlar boyunca sitelerin birbirine göre sıralamasına da (en azından zımnen) ilgi duyuyorsunuz.

Bu tanım doğruysa, bu üç ölçüyü (değişim, büyüklük, sıralama) ayrı bileşenler olarak içeren mümkün olan en basit çözümü keşfetmeyi öneriyorum. Örneğin, şunları yakalayabilirsiniz:

  • Eğim varyasyonunu yakalamak için SO çözümünüzün sonuçları (3 veya 4 günlük verileri dahil etsem de)
  • Her sitenin en son ziyaretlerinin / gün değerinin büyüklüğünün, (y2)o sitenin ortalama ziyaret / gün sayısına bölümü ( Y):

y2 / mean(Y)

W0, W1 ve W2 için sırasıyla 0.16, 1.45 ve 2.35 verir. (Yorumlama açısından, en son günlük ziyaret sayısı, günlük ortalama ziyaret sayısına eşit olan bir sitenin 1 sonucunu oluşturacağını düşünün). Bu hesaplamayı en son 2 (veya daha fazla) günü yakalamak için de ayarlayabileceğinizi unutmayın:

y2 + y1 / 2 * mean(Y)

Bu, üç örnek alanınız için 0,12, 1,33, 1,91 sağlar.

Aslında, bu tür bir ölçüm için her bir sitenin ziyaret / gün dağılımının ortalamasını kullanırsanız, göreceli oynaklığını anlamak için dağıtımın standart sapmasına da bakarım. Her bir sitenin ziyaret / gün dağılımı için standart sapma: 12.69, 12.12 ve 17.62. Ölçümü y2/mean(Y)standart sapmaya göre düşünmek yararlıdır çünkü W2 sahasındaki son etkinlik büyüklüğünü perspektif içinde tutmanıza izin verir (daha büyük standart sapma = daha az kararlı / tutarlı genel).

Son olarak, saflarla ilgileniyorsanız, bu yaklaşımları da bu yönde genişletebilirsiniz. Örneğin, ben de günde her sitenin ortalama ziyaret (rütbesinde rütbesine kadar gün değerlerine göre en son ziyaretler açısından bir sitenin sıralamasını bilerek düşünürdüm mean (Y)her biri için Wde Wnyararlı olabilir). Yine, ihtiyaçlarınıza uyacak şekilde uyarlayabilirsiniz.

Tüm bu hesaplamaların sonuçlarını bir tablo olarak sunabilir veya günlük olarak izlemek için düzenli olarak güncellenen bir görselleştirme oluşturabilirsiniz.


1

Web sitelerindeki kullanıcıların varış oranlarının kötü seriler olduğuna dikkat edin, (Poisson açısından) aşırı dağılma eğilimi gösterirler, bu nedenle varışlara bakmak için negatif binom dağılımlarını ve bağlantılarını düşünün. Ayrıca, sitelerin sipariş istatistiklerini sayıları yerine her gün incelemek isteyebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.