Windows разницы между двумя временными рядами - PullRequest
1 голос
/ 23 апреля 2020

Я пытаюсь найти 3 области различия между двумя временными рядами. Я могу видеть разницу между двумя, но я хочу, чтобы в конечном итоге автоматически определить наибольшую разницу и меньшую между двумя кривыми. Используя следующий код, я могу увидеть разницу между 2 кривыми, но хочу найти 3 области (в хронологическом порядке), определив количество точек или период времени, как на изображении. Так, например, найдите 3 windows недели каждую, где разница мала, затем велика, а затем снова мала. Любая идея, если есть встроенная функция для этого? Спасибо

ax.fill_between(
    x=feature.reset_index().index, 
    y1=feature.1, 
    y2=feature.2, 
    alpha=0.3
)

2 временных ряда и 3 области поиска, которые я хотел бы найти

1 Ответ

0 голосов
/ 24 апреля 2020

В качестве концепции: определите большое временное окно от t_0 до T, найдите начальный минимум в разности двух серий (т.е. найдите минимум спреда) и запишите местоположение этого времени. Если у вас есть выровненный data.frame временного ряда, это должно быть элементарно при поиске минимума разницы и поиске lo c этого элемента, чтобы определить время в окне.

Затем ограничьте свой поиск от t_min_1 до T и найдите максимум, снова получив lo c для этого максимального значения в спреде. Наконец, выполните поиск по t_max до T для локального минимума в пределах спреда и найдите lo c для этого значения.

Это вернет вам в заданном окне время вашего первого минимума (t_min_1) второй максимум (t_max) и третий минимум (t_min_2), следующие за каждым событием.

...