【问题标题】:Does ewm() weight within rolling windows or the entire column in pandas?ewm() 是否在滚动窗口或熊猫的整个列中加权?
【发布时间】:2021-06-04 06:23:52
【问题描述】:

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

我正在尝试使用以下行在每个滚动窗口内以指数方式加权相关性。

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

我的问题是: 在滚动的基础上,这是否在 10 行的窗口中呈指数增长?如果没有,怎么办?

【问题讨论】:

    标签: python pandas correlation exponential rolling-computation


    【解决方案1】:

    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 的第一项也是 NaN,因为 min_periods

    TLDR:不,它只将前几项屏蔽为NaN。它仍然计算整个列的权重,不移动任何内容。

    【讨论】:

    • 感谢您的解释,我已经稍微更新了这个问题,因为我仍然不确定如何使用这些 pandas 的函数在每个滚动窗口内以指数方式加权。
    • @np2020 见this answer。它适用于mean(),但我认为你可以让它适用于corr
    猜你喜欢
    • 2021-03-30
    • 2017-03-30
    • 2020-04-21
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    相关资源
    最近更新 更多