Припустимо, у вас є журнали веб-сервера. У цих журналах є кортежі такого роду:
user1, timestamp1
user1, timestamp2
user1, timestamp3
user2, timestamp4
user1, timestamp5
...
Ці часові позначки відображають, наприклад, кліки користувачів. Тепер user1
ви відвідуватимете сайт кілька разів (сеанси) протягом місяця, і ви будете мати ряди кліків кожного користувача під час кожного сеансу (припустимо, що коли користувач відвідує ваш сайт, він буде натискати на декілька сторінок).
Припустимо, ви хочете розділити ці сплески кліків у сесіях, які їх генерували, але у вас немає додаткового джерела інформації, лише список часових позначок. Якщо обчислити розподіл інтервалів між двома послідовними клацаннями від одного і того ж користувача, ви отримаєте розподіл з довгими хвостами. Інтуїтивно ви шукаєте "параметр вирізання", наприклад, N секунд, де якщо timestamp_{i+1} - timestamp{i} > N
, тоді ваш timestamp_{i+1}
- початок нового сеансу.
Проблема полягає в тому, що цей розподіл насправді є сумішшю двох змінних: X = "інтервал між двома послідовними клацаннями в одному сеансі" та Y = "інтервал між останнім клацанням попереднього сеансу та першим з нового".
Питання полягає в тому, як оцінити цей N, який ділить два розподіли (можливо, трохи перекриваючись), просто дивлячись на сплеск кліків?