У меня есть длинный временной ряд панд, как этот:
2017-11-27 16:19:00 120.0
2017-11-30 02:40:35 373.4
2017-11-30 02:40:42 624.5
2017-12-01 14:15:31 871.8
2017-12-01 14:15:33 1120.0
2017-12-07 21:07:04 1372.2
2017-12-08 06:11:50 1660.0
2017-12-08 06:11:53 1946.7
2017-12-08 06:11:57 2235.3
2017-12-08 06:12:00 2521.3
....
dtype: float64
, и я хочу построить его вместе с его производной.По определению я вычисляю производную следующим образом:
numer=myTimeSeries.diff()
denominat=myTimeSeries.index.to_series().diff().dt.total_seconds()/3600
derivative=numer/denominat
Поскольку некоторые значения дельта-времени (то есть в деноминате) очень близки (или иногда равны) нулю, я получил некоторые значения inf в моей производной.Практически я получил это: [
Временной ряд синий (левая шкала), производная зеленый (правая шкала)
Теперь я хотел бы сгладить производную досделать его более читабельным.Я пробовал разные операции, такие как:
- вычисление различий по старшим периодам:
установка периодов = 5 для обоих чисели denominat
- использовать скользящее среднее с:
smotDeriv=derivative.rolling(window=10,min_periods=3,center=True,win_type='boxcar').mean()
получая:
Я также использовал разные типы окон без каких-либо полезных изменений
- Я думал также обрезать значения, но я не знаю, какие эффективные значения использовать как минимальные и максимальные.Я попробовал квантиль на 25% и 75% без какого-либо большого преимущества
чтобы получить это:
![enter image description here](https://i.stack.imgur.com/7RBeB.png)
Практически я не могу найти каких-либо полезных улучшений.Что вы можете предложить мне для улучшения читабельности производного графика на графике, если это возможно.Очевидно, я бы вырезал некоторый пик производной, чтобы получить сглаженную кривую, которая приближается к истинным значениям.Я пробовал разные комбинации типов окон, периодов и т. Д. Безрезультатно.Что касается фильтра Калмана, я не эксперт, скажем, новичок, поэтому я просто использовал значения по умолчанию, следующие за this .Я также нашел библиотеку filterpy, которая реализует фильтр Калмана, но я не нашел, как использовать без установки начальных параметров.