Отфильтровать часть временного ряда без использования порога - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть следующие временные ряды: enter image description here

Что я хочу сделать, это отфильтровать точки (возможно, давая им значение нан), которые я обведу оранжевым.Предположим, что основная причина их фильтрации заключается в том, что они не следуют общей схеме остальных временных рядов, и они имеют очень разные значения.Есть ли какой-нибудь фильтр, такой как фильтр нижних частот или любая другая идея, которая может быть применена для их фильтрации?

В этом случае вместо этого все будет нормально, поэтому я не буду фильтровать какую-либо часть временного ряда:

enter image description here

Поскольку меня интересует только часть временного ряда с красными точками, поэтому ту, которая показывает этот конкретный образец, яне волнует, если в процессе фильтрации частей, обведенных оранжевым, также будут отфильтрованы начало и конец временного ряда.

Причина, по которой я не хочу использовать порог, заключается в том, что диапазон значений различен для каждого временного ряда.

1 Ответ

0 голосов
/ 21 февраля 2019

Таким образом, поскольку ваши данные являются периодическими, вы можете попытаться согласовать комбинацию нескольких синусов с вашими данными .

Как показано здесь любая осциллирующая функция можетбыть аппроксимированными через комбинацию синусоидальных функций.

Итак, что вам в основном нужно сделать, это анализ Фурье .


Кроме того:

Что я могу придумать, так это рассчитать среднее значение для относительно длительного периода.Чем вы можете указать интервал вокруг этого значения.Все, что находится за пределами этого интервала, определяется как выброс.

Вы также можете использовать фильтр Калмана.При условии, что ваши данные постоянны + некоторый гауссов шум.Это всегда адаптировалось бы к новому уровню и оставалось постоянным в течение некоторого времени.

Учебник по фильтру Калмана

...