ewm() 是在滚动 windows 中还是在 pandas 中的整个列中加权?

Does ewm() weight within rolling windows or the entire column in pandas?

我在试用和阅读文档时无法理解以下 ewm() 函数的工作原理,谁能帮忙解释一下?

我正在尝试使用以下行在每次滚动中以指数方式加权相关性 window。

df['col'].ewm(alpha=0.02, min_periods=10).corr(df['col2'])

我的问题是: 这是否在滚动的基础上在 10 行的 windows 内呈指数加权?如果没有,怎么办?

min_periods 在进行计算之前,只需确保至少有 10 个数据点(行)。它不会更改满足 min_periods 的输出。这是一个例子:

s = pd.Series(np.random.rand(20))

# with min_periods
s1 = s.ewm(alpha=0.5, min_periods=5).corr(s)

# without min_periods
s2 = s.ewm(alpha=0.5).corr(s)

# compare the results
(s1 == s2)

输出:

0     False
1     False
2     False
3     False
4      True
5      True
6      True
7      True
8      True
9      True
10     True
11     True
12     True
13     True
14     True
15     True
16     True
17     True
18     True
19     True
dtype: bool

如您所见,前 4 行是 False 因为 s1 由于 min_periods.

还有第一个项目是 NaN

TLDR:不,它只将前几项屏蔽为 NaN。它仍然计算整个列的权重,不改变任何东西。