Как находить временнЫе паттерны в данных?

Есть лог, состоящий из событий всего трёх типов: А и Б и Й. Запись – две колонки: timestamp и тип ("А", "Б" или "Й").

Есть гипотеза, что определённая разнесённость во времени событий А и Б вызывает событие Й.

Как найти на основе данных наиболее вероятный паттерн событий А и Б, вызывающий Й?

Например, выяснится, что чаще всего событию Й среди прочего "шума" предшествовали события в такой маске:
-50 секунд: А
-35 секунд: Б
-05 секунд: снова А
 00 секунд: происходит событие Й


В обозреваемом окне времени 0..–50 с. встретятся и другие события А/Б, но они от раза к разу не попадают в устойчивый паттерн, и поэтому считаются шумом и исключаются из рассмотрения. Отношение сигнал/шум может быть очень в пользу шума. Величина рассматриваемого "окна" неизвестна. Лишь примерно можно с потолка взять, что оно "от 1 до 1000 секунд".

Временное попадание тоже не из мира целых чисел, а «приблизительно» с некой точностью. Т.е. паттерн можно считать одинаковым, если в первый раз первое событие А было в -50.01 секунду, а во втором случае в -49.52 Относительно размера окна в 50 сек, +–1 секунда точности – допустимое приближение.
  • Вопрос задан
  • 202 просмотра
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Автор вопроса
♬♬
Похоже, нашёл: Kernel Density Estimation (KDE) – оценка плотности ядра (ядерное сглаживание). Подробнее. Для моей задачи, нужно выровнять отрезки данных по событию Й и взять наибольшие пики в KDE событий А и Б. Подбора ширины окна и ядра – отдельный вопрос.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы