Вопрос

Когда я рассчитываю внутреннюю скорость возврата (IRR), используя метод Numpy irr, Я получаю nan как возврат.

In [45]: numpy.irr([-10, 2, 2, 2, 2])
Out[45]: nan

Разве результаты не должны быть хотя бы негативными? Допустим, -8%? Когда я попытался лучше понять реализацию, я посмотрел на главная ветвь репозитория Numpy, но реализация не имела никакого смысла для меня.

Комментарии и данная литература не помогают понять, в каком состоянии nan выпущен. Когда я рассчитываю IRR с другой программой, я получаю -8% возврата.

Почему возвращается Numpy nan Для массива выше?

Это было полезно?

Решение 2

Если вы посмотрите в реализация этой функции он ищет только решения для IRR в (0, 1]. Это потому, что уравнение может иметь несколько решений, и поэтому остается только действительный. Вот довольно (IMO) плохой выбор реализации, потому что IRR Конечно, может быть за пределами этого диапазона и при этом быть совершенно действительным. В вашем случае я бы посоветовал написать свою собственную функцию (в соответствии с существующей), которая сделает то, что вам нужно.

Другие советы

Просто небольшая коррекция к предыдущему ответу. Реализация не ограничивает IRR (0,1], он ограничивает 1/(1+IRR) (0,1]. Это ограничивает IRR до [0,+Inf). Это все еще неполная реализация, поскольку возвращает NAN Для денежных потоков, которые имеют IRR менее 0 (то есть инвестор потерял деньги). Правильный диапазон для IRR составляет (-1,+Inf). Однако коррекция не является тривиальной, потому что NPV (скорость) может иметь больше, чем Один нулевой, но будет иметь не более одного нулевого пересечения, где скорость больше нуля. Таким образом, ограничение диапазона [0,+inf), поскольку функция выполняется корни возвращаются.

В качестве примечания, если вам интересно с поведением NPV (скорость), он приближается к +inf или -inf в виде приближения скорости -1. Знак бесконечности, к которому он приближается, такой же, как и знак окончательного денежного потока. С другой стороны, по мере приближения скорости +Inf, NPV асимптотически приближается к стоимости начального денежного потока в серии (обычно отрицательный денежный поток). По ставке = нулевое значение NPV - это сумма денежных потоков.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top