Pergunta

Quando calculo a Taxa Interna de Retorno (irr) usando o método numpy irr, Eu recebi nan como retorno.

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

Os resultados não deveriam ser pelo menos negativos?Digamos -8%?Quando tentei entender melhor a implementação, olhei para o branch master do repositório NumPy, mas a implementação não fez sentido para mim.

Os comentários e a literatura fornecida não ajudam a compreender em que condições nan é emitido.Quando calculo o irr com outro programa, recebo -8% de retorno.

Por que o NumPy está retornando nan para a matriz acima?

Foi útil?

Solução 2

Se você olhar no implementação desta função, ela apenas procura soluções para TIR dentro de (0, 1].Isso ocorre porque a equação pode ter várias soluções e, portanto, resta apenas uma válida.Aqui é uma escolha de implementação bastante ruim (IMO), porque a TIR certamente pode estar fora dessa faixa e ainda assim ser perfeitamente válida.No seu caso, sugiro escrever sua própria função (nos moldes da existente) que fará o que você precisa.

Outras dicas

Apenas uma pequena correção na resposta anterior.A implementação não limita a TIR a (0,1), mas limita 1/(1+TIR) a (0,1].Isso limita a TIR a [0,+Inf).Ainda é uma implementação incompleta porque retorna NaN para fluxos de caixa que têm uma TIR menor que 0 (ou seja,o investidor perdeu dinheiro).O intervalo correto para TIR é (-1,+Inf).A correção, porém, não é trivial, pois o VPL(taxa) pode ter mais de um zero, mas não terá mais do que um cruzamento de zero onde a taxa for maior que zero.Portanto, limitar o intervalo a [0,+inf) conforme a função é implementada significa que você falhará em TIRs negativas, mas também nunca terá que lidar com o retorno de múltiplas raízes.

Como observação lateral, se você estiver curioso sobre o comportamento do VPL (taxa), ele se aproxima de +Inf ou -Inf conforme a taxa se aproxima de -1.O sinal do infinito ao qual se aproxima é igual ao sinal do fluxo de caixa final.No outro extremo, à medida que a taxa se aproxima de +Inf, o VPL aproxima-se assintoticamente do valor do fluxo de caixa inicial da série (geralmente um fluxo de caixa negativo).À taxa = zero, o valor do VPL é a soma dos fluxos de caixa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top