FloatingPointError在计算标准差时是什么?

时间:2016-06-28 15:24:03

标签: python numpy pandas

使用pandas/numpy时,我在尝试计算标准偏差时有时会出现浮点错误:

  

FloatingPointError:在less

中遇到无效值

我的代码看起来像这样:

def historical_volatility(p):
    return p.pct_change().ewm(span=35, min_periods=35).std()

只有花车的DataFrame进入。

我的理解是,由于技术原因与标准偏差的计算方式有关,偏差特别低的情况会导致浮点误差。

如何让这个更强大?

P.S。可以设置最小值'低波动性; 0的结果会很糟糕,因为我随后除以这些数字。

1 个答案:

答案 0 :(得分:0)

计算标准差可能涉及做方差的平方根。如果有一些精确损失,后者只能是负数。如果是这种情况,您可能不在乎您的方差是1e-16还是零。如果这样做,您可能需要使用扩展精度(不容易),或切换到十进制算术。