Menentukan apakah situs web aktif menggunakan kunjungan harian

15

Konteks:

Saya memiliki sekelompok situs web tempat saya mencatat jumlah kunjungan setiap hari:

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 

Pertanyaan Umum:

  • Bagaimana cara menentukan situs mana yang paling aktif?

Maksud saya menerima lebih banyak kunjungan atau mengalami peningkatan kunjungan mendadak selama beberapa hari terakhir. Untuk tujuan ilustrasi, pada contoh kecil di atas W0 awalnya akan populer tetapi mulai menunjukkan pengabaian, W1 menunjukkan popularitas yang stabil (dengan beberapa puncak yang terisolasi), dan W3 kenaikan penting setelah awal yang tenang).

Pikiran awal:

Saya menemukan utas ini di SO tempat rumus sederhana dijelaskan:

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

Ini terlihat bagus dan cukup mudah, tetapi saya memiliki masalah dengannya.

Perhitungan didasarkan pada kemiringan. Ini bagus dan merupakan salah satu fitur yang saya minati, tetapi IMHO memiliki masalah untuk seri non-monotonik. Bayangkan bahwa selama beberapa hari kita memiliki jumlah kunjungan yang konstan (jadi kemiringan = 0), maka tren di atas akan menjadi nol.

Pertanyaan:

  • Bagaimana cara saya menangani kedua kasus (kenaikan / penurunan monoton) dan jumlah hit yang besar?
  • Haruskah saya menggunakan formula terpisah?
Dan
sumber
1
Saya terkejut Anda belum menerima jawaban apa pun (meskipun ini pertanyaan yang jelas populer). Karena masing-masing dari empat peluru Anda layak untuk ditanyakan, bagaimana dengan membatasi pertanyaan ini pada salah satu dari mereka dan memposting yang lain dalam pertanyaan yang terpisah. Mereka semua adalah pertanyaan yang sangat bagus yang mengambil pendekatan berbeda, dan keempatnya berharga sendiri.
Andy W
Hai Andy, terima kasih banyak atas jawaban Anda. Saya akan mencoba untuk mengulanginya dan fokus pada satu masalah pada satu waktu. Pikiran awal saya membuatnya seluas mungkin (dan menghindari pengulangan pertanyaan yang sama sesudahnya) tetapi mengingat kurangnya jawaban, sepertinya terlalu umum bagi seseorang untuk menjawab.
Dan
Saya mengedit pertanyaan untuk mengungkap dua masalah utama yang paling saya minati. Saya memilih untuk memasukkannya ke dalam pertanyaan yang sama mengingat hubungan mereka yang erat.
Dan
1
Saya masih gagal memahami mengapa memiliki satu perkiraan dengan kesalahan kecil membuat pendekatan 'tidak dapat digunakan'.
onestop
Terima kasih atas komentarnya. Saya tidak mengatakan bahwa aproach (perhitungan tren) tidak dapat digunakan, tetapi perhitungan kesalahannya dapat memiliki masalah potensial. Mengingat bahwa saya tidak mendapat jawaban sejauh ini, saya akan menghapus item itu dari pertanyaan berharap lebih mudah untuk menjawab.
Dan

Jawaban:

4

Sepertinya Anda sedang mencari "metode deteksi changepoint online." (Itu ungkapan yang berguna untuk Googling.) Beberapa makalah yang bermanfaat saat ini (dan dapat diakses) adalah Adams & MacKay (pendekatan Bayesian) dan Keogh et al. Anda mungkin dapat menekan paket pengawasan untuk R ke dalam layanan. Sejumlah besar hit yang terisolasi dapat ditemukan menggunakan metode kontrol proses statistik .

whuber
sumber
2

Pasti ada semakin banyak cara kompleks untuk mengatasi masalah semacam ini. Dari sisi suara, Anda mulai dengan solusi yang cukup sederhana (rumus yang Anda temukan di SO). Dengan kesederhanaan semacam itu dalam pikiran, saya pikir saya akan mengunjungi kembali beberapa poin penting yang Anda buat (versi saat ini) dari posting Anda.

Sejauh ini, Anda telah mengatakan bahwa Anda ingin pengukuran "aktivitas situs" Anda ditangkap:

  • Perubahan kemiringan dalam kunjungan / hari selama "beberapa hari terakhir"
  • Besarnya perubahan dalam kunjungan / hari selama "beberapa hari terakhir"

Seperti yang ditunjukkan oleh @ jan-galkowski, Anda juga tampaknya (setidaknya secara diam-diam) tertarik pada peringkat situs relatif terhadap satu sama lain di sepanjang dimensi ini.

Jika deskripsi itu akurat, saya akan mengusulkan untuk mengeksplorasi solusi paling sederhana yang menggabungkan ketiga ukuran (perubahan, besarnya, peringkat) sebagai komponen yang terpisah. Misalnya, Anda dapat mengambil:

  • Hasil solusi SO Anda untuk menangkap variasi kemiringan (walaupun saya akan memasukkan 3 atau 4 hari data)
  • Besarnya nilai kunjungan / hari terbaru dari setiap situs (y2) dibagi dengan rata-rata kunjungan / hari untuk situs tersebut ( Y):

y2 / mean(Y)

Untuk W0, W1, dan W2 masing-masing, yang menghasilkan 0,16, 1,45, dan 2,35. (Demi interpretasi, pertimbangkan bahwa situs yang nilai kunjungan-per-hari terbaru-nya sama dengan itu berarti kunjungan-per-hari akan menghasilkan hasil 1). Perhatikan bahwa Anda juga dapat menyesuaikan ukuran ini untuk menangkap 2 hari terakhir (atau lebih):

y2 + y1 / 2 * mean(Y)

Itu menghasilkan: 0,12, 1,33, 1,91 untuk tiga situs sampel Anda.

Jika Anda melakukannya, pada kenyataannya, menggunakan rata-rata dari setiap kunjungan kunjungan / hari untuk ukuran seperti ini, saya juga akan melihat deviasi standar distribusi untuk mendapatkan rasa volatilitas relatifnya. Deviasi standar untuk distribusi kunjungan / hari masing-masing situs adalah: 12,69, 12.12, dan 17,62. Memikirkan y2/mean(Y)ukuran relatif terhadap deviasi standar sangat membantu karena memungkinkan Anda untuk menjaga besarnya kegiatan di situs W2 dalam perspektif (penyimpangan standar yang lebih besar = kurang stabil / konsisten secara keseluruhan).

Akhirnya, jika Anda tertarik pada peringkat, Anda dapat memperluas pendekatan ini ke arah itu juga. Sebagai contoh, saya akan berpikir bahwa mengetahui peringkat situs dalam hal nilai kunjungan terbaru per hari serta peringkat rata-rata setiap kunjungan situs per hari (peringkat mean (Y)untuk masing-masing WdalamWn ) dapat berguna. Sekali lagi, Anda dapat menyesuaikan dengan kebutuhan Anda.

Anda dapat menyajikan hasil dari semua perhitungan ini sebagai tabel, atau membuat visualisasi yang diperbarui secara berkala untuk melacaknya setiap hari.

ashaw
sumber
1

Perhatian bahwa tingkat kedatangan pengguna di situs Web adalah seri yang buruk, cenderung terlalu banyak tersebar (dari sudut pandang Poisson), jadi pertimbangkan distribusi binominal negatif untuk melihat kedatangan, dan pemasangannya. Juga, Anda mungkin ingin memeriksa statistik urutan situs pada setiap hari daripada jumlahnya.

Jan Galkowski
sumber