Domanda

Quando calcolo la velocità interna di rendimento (IRR) usando il metodo numpy irr, Ricevo nan come ritorno.

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

I risultati non dovrebbero essere almeno negativi? Diciamo -8%? Quando ho cercato di capire meglio l'implementazione, ho guardato il ramo principale del repository numpy, ma l'implementazione non aveva alcun senso per me.

I commenti e la letteratura data non aiutano a capire in quale condizione nan viene emesso. Quando calcolo l'IRR con un altro programma, ricevo il -8%.

Perché Numpy sta tornando nan per l'array sopra?

È stato utile?

Soluzione 2

Se guardi nel implementazione Di questa funzione, cerca solo soluzioni per IRR all'interno (0, 1]. Questo perché l'equazione può avere diverse soluzioni e quindi solo una valida è rimasta. Qui è una scelta di implementazione piuttosto (IMO), perché IRR Certamente può essere al di fuori di questa gamma ed essere ancora perfettamente validi. Nel tuo caso, suggerirei di scrivere la tua funzione (sulla falsariga di quella esistente) che farà ciò di cui hai bisogno.

Altri suggerimenti

Solo una piccola correzione alla risposta precedente. L'implementazione non limita IRR a (0,1], limita 1/(1+IRR) a (0,1]. Ciò limita IRR a [0,+Inf). È ancora un'implementazione incompleta perché restituisce NAN per flussi di cassa che hanno un IRR inferiore a 0 (cioè l'investitore ha perso denaro). L'intervallo corretto per l'IRR è (-1,+inf). La correzione, tuttavia, non è banale, perché il VAN (tasso) può avere più di uno zero, ma non avrà più di uno zero attraversamento in cui la velocità è maggiore di zero. Quindi limitare l'intervallo a [0,+inf) poiché la funzione è implementata significa che si fallisce gli IRR negativi ma non hai mai a che fare con più multipli radici che vengono restituite.

Come nota a margine, se sei curioso del comportamento di NPV (tasso), si avvicina +INF o -INF man mano che la velocità si avvicina -1. Il segno dell'infinito che si avvicina è lo stesso del segno del flusso di cassa finale. All'altra estremità, man mano che il tasso si avvicina +INF, NPV si avvicina asintoticamente al valore del flusso di cassa iniziale nella serie (di solito un flusso di cassa negativo). A tasso = zero, il valore di NPV è la somma dei flussi di cassa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top