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
。它仍然计算整个列的权重,不改变任何东西。
我在试用和阅读文档时无法理解以下 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
。它仍然计算整个列的权重,不改变任何东西。