質問

When I calculate the Internal Rate of Return (irr) using the numpy method irr, I receive nan as return.

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

Shouldn't the results be at least negative? Let's say -8%? When I tried to understand the implementation better, I looked at the master branch of the NumPy repository, but the implementation did not make any sense to me.

The comments and the given literature do not help to understand under which condition nan is issued. When I calculate the irr with another program, I get -8% returned.

Why is NumPy returning nan for the array above?

役に立ちましたか?

解決 2

あなたがで見るなら 実装 この関数の中で、それは(0、1]内のIRRのソリューションのみを探します。これは、方程式にいくつかのソリューションを持つことができるため、有効なソリューションのみが残っているためです。ここでは、むしろ(IMO)貧弱な実装の選択です。確かにこの範囲の外にいることがあり、それでも完全に有効です。あなたの場合、必要なことを行う独自の機能(既存の機能の線に沿って)を書くことをお勧めします。

他のヒント

前の答えに対するわずかな修正。実装はIRRを(0,1]に制限せず、1/(1+IRR)を(0,1]に制限します。これはIRRを[0、+inf)に制限します。 IRRが0未満のキャッシュフローの場合(つまり、投資家はお金を失いました)。IRRの正しい範囲は(-1、+inf)です。ただし、修正は些細なことではありません。 1つのゼロですが、レートがゼロより大きい場所では1つのゼロクロスを超えません。したがって、関数が実装されているため[0、+inf)に範囲を制限することは、負のIRRで失敗するが、複数に対処する必要もないことを意味します根が返されます。

サイドノートとして、NPV(レート)の動作に興味がある場合は、レートが近づいて-1に近づくと、 +infまたは-infに近づきます。それが近づく無限の兆候は、最終的なキャッシュフローのサインと同じです。反対側では、レートが +infに近づくと、NPVはシリーズの初期キャッシュフローの価値に漸近的に近づきます(通常は負のキャッシュフロー)。レート=ゼロでは、NPVの値はキャッシュフローの合計です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top