Я рассчитываю основанную на времени EWMA, как определено:
![\mu_{n+1} = c_{n+1} \cdot \mu_n + (1-c_{n+1})\cdot x_{n+1} image](https://latex.codecogs.com/gif.latex?%5Cinline&space;%5Cmu_%7Bn+1%7D&space;=&space;c_%7Bn+1%7D&space;%5Ccdot&space;%5Cmu_n&space;+&space;(1-c_%7Bn+1%7D)%5Ccdot&space;x_%7Bn+1%7D)
where:
![c_{n+1} = e^{-\lambda(t_{n+1}-t_n)} image](https://latex.codecogs.com/gif.latex?%5Cinline&space;c_%7Bn+1%7D&space;=&space;e%5E%7B-%5Clambda(t_%7Bn+1%7D-t_n)%7D)
On the following example data frame df:
index time x
0 1 5
1 1.3 4
2 1.4 8
3 2.8 3
Например, во время 3:
Я знаю, что в python мы можем использовать df['ewma'] = df['x'].ewm(alpha = c)
для вычисления простого ewma, но здесь c
может быть только фиксированным числом с плавающей запятой.
Мой вопрос: как мне справиться с изменением параметра c?Я мог бы рекурсивно перебирать весь df, чтобы получить ответы, но это кажется действительно простым.
Любой совет, как я мог бы подойти к этой проблеме?Заранее спасибо!