Визначення активності веб-сайту за допомогою щоденних відвідувань


15

Контекст:

У мене є група веб-сайтів, де щодня фіксую кількість відвідувань:

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 

Загальне питання:

  • Як визначити, які сайти найбільш активні?

Під цим я маю на увазі отримання більше відвідувань або різке збільшення відвідувань протягом останніх кількох днів. Для ілюстрації, у невеликому прикладі вище W0 був би спочатку популярним, але починає демонструвати відмову, W1 демонструє стійку популярність (з деяким ізольованим піком), а W3 - важливим підвищенням після тихого початку.

Початкові думки:

Я знайшов цю тему на SO, де описана проста формула:

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

Це виглядає добре і досить просто, але у мене з цим проблеми.

Розрахунок проводиться на основі схилів. Це добре і є однією з особливостей, які мене цікавлять, але в ІМХО це проблеми для немонотонних серій. Уявіть, що протягом декількох днів ми маємо постійну кількість відвідувань (тому нахил = 0), то зазначена вище тенденція була б нульовою.

Запитання:

  • Як вирішувати як випадки (монотонне збільшення / зменшення), так і велику кількість звернень?
  • Чи варто використовувати окремі формули?

1
Я здивований, що ви ще не отримали жодної відповіді (хоча це, очевидно, популярне питання). Оскільки кожна з ваших чотирьох куль коштує запитання саме по собі, як щодо обмеження цього питання однією з них та розміщення інших в окремих питаннях. Всі вони справді відмінні запитання, що вирізняють чіткі підходи, і всі чотири варті самостійно.
Енді Ш

Привіт Енді, велике спасибі за вашу відповідь. Я спробую перефразувати його і зосередитись на одному питанні за раз. Моя початкова думка робила його якомога ширшим (і уникати повторення того ж запитання після цього), але враховуючи відсутність відповідей, здається, занадто загальним, щоб хтось відповів.
День

Я відредагував питання, щоб викрити два основні питання, які мене найбільше цікавлять. Я вирішив поставити їх в одне і те ж питання, враховуючи їх тісні стосунки.
День

1
Я все ще не розумію, чому наявність однієї оцінки з невеликою помилкою робить підхід "непридатним".
onestop

Дякуємо за коментар Я не кажу, що підхід (розрахунок тренда) був непридатним, але його обчислення помилок може мати потенційну проблему. Зважаючи на те, що досі я не отримав відповіді, я видалю цей елемент із запитання, сподіваючись, що він стане легшим відповісти.
День

Відповіді:


4

Здається, ви шукаєте "онлайн-метод виявлення змінних змін". (Це корисна фраза для Googling.) Деякі корисні недавні (та доступні) документи - це Адамс і Маккей (байєсівський підхід) та Keogh та ін. Можливо, ви зможете натиснути пакет спостереження для R на початок роботи. Ізольована велика кількість звернень можна знайти, використовуючи методи статистичного контролю процесів .


2

Однозначно існують більш і менш складні способи вирішення подібної проблеми. Зі звуку речей ви почали з досить простого рішення (формула, яку ви знайшли на SO). Маючи на увазі таку простоту, я думав, що я перегляну кілька ключових моментів, які ви вказуєте (у поточній версії) своєї публікації.

Поки ви сказали, що хочете, щоб ваш показник "активності на сайті" охоплював:

  • Зміни нахилів у відвідуваннях / день за "останні кілька днів"
  • Зміни величини відвідувань / день за "останні кілька днів"

Як зазначає @ jan-galkowski, ви також, здається, вас (принаймні мовчазно) цікавлять ранг сайтів відносно один одного за цими вимірами.

Якщо цей опис є точним, я б запропонував вивчити найпростіше можливе рішення, яке включає ці три заходи (зміна, величина, ранг) як окремі компоненти. Наприклад, ви можете схопити:

  • Результати вашого рішення SO для зйомки варіації нахилу (хоча я б включив 3 або 4 дні даних)
  • Величина останніх відвідувань кожного дня / значення, (y2)поділене на середнє відвідування / день для цього сайту ( Y):

y2 / mean(Y)

Для W0, W1 і W2 відповідно, це дає 0,16, 1,45 і 2,35. (Для тлумачення врахуйте, що веб-сайт, чий показник останніх відвідувань на день був рівним середньому відвідуванню на день, призведе до результату 1). Зауважте, що ви також можете скоригувати цей захід, щоб зафіксувати останні 2 (або більше) дні:

y2 + y1 / 2 * mean(Y)

Це дасть: 0,12, 1,33, 1,91 для ваших трьох зразкових сайтів.

Якщо ви справді використовуєте середній показник відвідування кожного дня на кожен день для такого виду заходів, я також роздивився б стандартне відхилення дистрибуції, щоб зрозуміти його відносну мінливість. Стандартне відхилення для розподілу відвідувань / днів кожного сайту становить: 12,69, 12,12 та 17,62. Думка про y2/mean(Y)міру відносно стандартного відхилення корисна, оскільки дозволяє зберегти недавню величину активності на майданчику W2 в перспективі (більше стандартне відхилення = менш стабільне / загальне узгодження).

Нарешті, якщо вас цікавлять ранги, ви можете розширити ці підходи і в цьому напрямку. Наприклад, я вважаю, що знання рейтингу сайту за значеннями останніх відвідувань на день, а також рангом середніх відвідувань кожного сайту на день (ранг mean (Y)для кожного Wв Wn) може бути корисним. Знову ж таки, ви можете налаштувати під свої потреби.

Ви можете представити результати всіх цих обчислень у вигляді таблиці або створити регулярно оновлювану візуалізацію, щоб відстежувати їх щодня.


1

Обережно, що кількість відвідувачів на веб-сайтах - це неприємні серії, як правило, переоцінені (з точки зору Пуассона), тому враховуйте негативні біномінальні розподіли для перегляду прибутків та їх відповідності. Крім того, ви можете вивчити статистику замовлень сайтів щодня, а не їх кількість.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.