У меня есть данные временных рядов, и я хотел бы взвесить свои данные, чтобы недавние наблюдения были взвешены выше, чем более старые наблюдения.Поэтому я ищу параметрическую весовую функцию, которая удовлетворяет нескольким свойствам.Это должно выглядеть следующим образом:
взвешивание (время, minTime, maxTime, minWeight, наклон) =?
, при этом
- время , очевидно, является временем наблюдения веса и должно быть между minTime и maxTime (время> = minTime, время <= maxTime), </li>
- minTime - самое старое время наблюдения,
- maxTime - самое новое время наблюдения,
- minWeight - минимальный вес для возврата (а такжеперехват с осью веса; интервал: [0,1]),
- Наклон регулирует форму кривой.
Выход: Выходные данные должны быть в интервале [minWeight, 1.0].
">
У кого-нибудь есть идея, как может выглядеть эта весовая функция,или какие-то подсказки или примеры кода / псевдокод?
Некоторые функции, на которые я смотрел:
- Функции root или power, такие как
f (x) = x ^ (н / м) , если n
f (x) = x ^ (н / м) , если n = m - линейная функция
f (x) = x ^ (n / m) , если n> m - степенная функция
![enter image description here](https://i.stack.imgur.com/kppcZ.png)
изменение масштаба (время, minTime, maxTime) = (время - minTime) / (maxTime - minTime)
Эта весовая функция обеспечивает вес в интервале [0, 1].Но форма кривой всегда линейна (и не может быть скорректирована), а минимальное значение всегда равно 0 (я также хотел бы отрегулировать это).
Я думаю, что я слишком глуп, чтобы собрать все части вместе.Может кто-нибудь помочь?