Использование pandas/numpy
, иногда я получаю сообщение об ошибке с плавающей точкой при попытке вычислить стандартное отклонение:FloatingPointError при вычислении стандартного отклонения?
FloatingPointError: invalid value encountered in less
Мой код выглядит примерно так:
def historical_volatility(p):
return p.pct_change().ewm(span=35, min_periods=35).std()
Это только DataFrames поплавков собирается в.
Я понимаю, что по техническим причинам, связанным с тем, как стандартное отклонение вычисляется вычислительно, ситуации с особенно низким отклонением приведут к плавающей точке ошибка.
Как я могу сделать это более надежным?
P.S. Допустимо устанавливать «минимальное значение» для низкой волатильности; результат 0 был бы плохим, поскольку я впоследствии делясь на эти числа.
Вы можете предоставить образец, который воспроизводит эту ошибку? – piRSquared
Я не знаю pandas/numpy, но вы можете использовать десятичное вместо float? Он медленнее, но может быть более точным как компромисс –