7

numpy メソッドを使用して内部収益率 (irr) を計算すると、収益としてirr受け取りnanます。

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

結果は少なくとも負であるべきではありませんか?-8% としましょう。実装をよりよく理解しようとしたときに、NumPy リポジトリのマスター ブランチを見ましたが、実装は私には意味がありませんでした。

nanコメントと与えられた文献は、どの条件で発行されたかを理解するのに役立ちません。別のプログラムで irr を計算すると、-8% が返されます。

nan上記の配列に対してNumPy が返されるのはなぜですか?

4

2 に答える 2

6

この関数の実装を見ると、(0, 1] 内の IRR の解のみが検索されます。これは、方程式が複数の解を持つ可能性があり、有効な解だけが残っているためです。ここではむしろ (IMO) IRRは確かにこの範囲外になる可能性があり、それでも完全に有効であるため、実装の選択が不十分です.あなたの場合、必要なことを行う独自の関数を(既存の関数の行に沿って)作成することをお勧めします.

于 2013-11-06T23:33:38.067 に答える
6

前の回答を少し訂正します。実装は IRR を (0,1] に制限せず、1/(1+IRR) を (0,1] に制限します。これは IRR を [0,+Inf に制限します。NaN を返すため、まだ不完全な実装です。 IRR が 0 未満のキャッシュ フロー (つまり、投資家がお金を失った場合) IRR の正しい範囲は (-1,+Inf) です. ただし、NPV(利率) がただし、レートがゼロより大きいゼロ交差は 1 つだけです. したがって、関数が実装されているため、範囲を [0,+inf) に制限することは、負の IRR で失敗することを意味しますが、複数のゼロクロッシングに対処する必要もありません。根が返されます。

補足として、NPV(rate) の動作に興味がある場合は、rate が -1 に近づくにつれて +Inf または -Inf に近づきます。近づく無限大の符号は、最終的なキャッシュフローの符号と同じです。逆に、利率が +Inf に近づくと、NPV は系列の初期キャッシュ フローの値に漸近的に近づきます (通常は負のキャッシュ フロー)。rate = 0 では、NPV の値はキャッシュ フローの合計です。

于 2014-01-16T00:24:29.573 に答える