gpt4 book ai didi

python - Pandas 滚动相关计算中的数值稳定性问题

转载 作者:太空宇宙 更新时间:2023-11-04 04:25:41 24 4
gpt4 key购买 nike

我遇到了 Pandas 滚动相关的奇怪行为。在下面的代码片段中,我假设 v1 == v2 是真的,但事实证明不是。这会导致滚动相关性 inf(c1 与 c2,其中 c2 很好,但在我看来 c1 是“错误的”):

import pandas as pd
a = pd.Series([1e5, 0, 0, 0, 0])
b = pd.Series([9.45] * 5)
c1 = a.rolling(5).corr(b).iloc[4]
c2 = a.corr(b)
v1 = a.rolling(5).cov(b).iloc[4]
v2 = a.cov(b)

我在多台机器上测试过,abs(v1)是O(1e-11),v2是0,c是信息。这是一个已知问题吗?为什么 rolling cov 与 vanilla cov 不同?

最佳答案

协方差不仅仅是一个数字。这是一个措施。它的值(value)很难解释。仅考虑值(value)就更难了。这就是为什么通常使用相关性而不是协方差(作为它的升级版本)。值 01e-11 不同但含义相同 - 样本似乎没有线性关系。

至于计算pandas.Series.cov(pandas.Series)pandas.Series.rolling(..., ddof=...).cov(pandas.Series) 使用(稍微?)不同的算法:numpy covrolling cov (实际上是 ewmcov )。

关于python - Pandas 滚动相关计算中的数值稳定性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53552853/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com