使用pandas/numpy
,有时在试图计算标准偏差时会得到浮点误差:
FloatingPointError:遇到的无效值
我的代码如下所示:
def historical_volatility(p):
return p.pct_change().ewm(span=35, min_periods=35).std()
它只是要进入的浮子的DataFrames。
我的理解是,由于一个与计算标准偏差有关的技术原因,特别低偏差的情况会导致浮点误差。
我怎样才能使这个更有力?
为低波动率设置一个“最小值”是可以接受的;如果结果为0,那将是很糟糕的,因为我随后将这些数字除以。
发布于 2016-06-28 16:23:44
计算标准差可能需要做方差的平方根。后者只能是负的,如果有一些精度损失。如果是这样的话,你可能不在乎你的方差是1e-16还是零。如果您这样做,您可能需要使用扩展的精度(不容易),或切换到十进制算术。
https://stackoverflow.com/questions/38080286
复制相似问题