我对熊猫图书馆的ewm
纪录片有疑问。
纪录片读取参数com
:
alpha = 1/(1+com)
和
weighted_average[0] = arg[0]
weighted_average[i] = (1-alpha)*weighted_average[i-1] + alpha*arg[i]
但是官方数字示例显示为:
df = [0 , 1 , 2 , NaN , 4]
df.ewm(com=.5).mean() = [0 , .75 , 1.615385 , 1.615385 , 3.67213]
出于怀疑,我进行了一些测试:
df.ewm(com=1).mean() = [0 , 2/3 , 1.428571 , 1.428571 , 3.217391]
df.ewm(com=2).mean() = [0 , 3/5 , 1.263158 , 1.263158 , 2.675159]
df.ewm(com=4).mean() = [0 , 5/9 , 1.147541 , 1.147541 , 2.261087]
考虑到第一次迭代([0 , 1]
的结果),alpha的公式更像是:
alpha = (1+com)/(1+2*com)
但这仍然会导致第三个值的结果不同。
有人可以在这里帮助我吗?我在这里怎么了?
谢谢!
编辑:链接到文档:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ewm.html