«Как это» субъективно. Вот два подхода, которые могут работать для вас.
Первый - использовать интерполяцию, чтобы превратить ваши данные с переменными временными шагами в данные с фиксированными временными шагами, а затем использовать скользящее среднее. Если переменные временные шаги точно совпадают с фиксированными временными шагами, то это становится экспоненциально демпфированным скользящим средним.
Во-вторых, r
будет логарифмом желаемой скорости затухания. (Это будет отрицательное число.) Тогда, если ваше следующее наблюдение будет в момент t
после вашего предыдущего, тогда:
average_next = average_old * e^(r*t) + (1 - e^(r*t))*observation
Предполагая, что r*t
мало, вы можете просто использовать пару членов известного ряда Тейлора e^x = 1 + x + x^2/2 + x^3/6 + ...
.
Это вычисление является более сложным, но, опять же, если переменные шаги фиксированы, то это превращается в скользящее среднее. (И вам не нужно точное соответствие, чтобы оно заработало!)