إذا نظرت في تطبيق من هذه الوظيفة ، يبحث فقط عن حلول IRR داخل (0 ، 1]. وذلك لأن المعادلة يمكن أن تحتوي على عدة حلول ، وبالتالي يتم ترك واحدة صالحة فقط. إنه هنا خيار تنفيذ ضعيف (IMO) ، لأن IRR بالتأكيد يمكن أن تكون خارج هذا النطاق ولا تزال صالحة تمامًا. في حالتك ، أقترح أن تكتب وظيفتك الخاصة (على غرار النابضة الموجودة) والتي سيفعل ما تحتاجه.
Numpy: طريقة IRR المالية تعود "نان". لماذا ا؟
سؤال
عندما أحسب المعدل الداخلي للعائد (IRR) باستخدام طريقة numpy irr
, ، أنا أستلم nan
كما العودة.
In [45]: numpy.irr([-10, 2, 2, 2, 2])
Out[45]: nan
ألا ينبغي أن تكون النتائج سلبية على الأقل؟ دعنا نقول -8 ٪؟ عندما حاولت فهم التنفيذ بشكل أفضل ، نظرت إلى الفرع الرئيسي لمستودع Numpy, ، لكن التنفيذ لم يكن له أي معنى بالنسبة لي.
التعليقات والأدب المعطى لا تساعد في فهم أي حالة nan
صدر. عندما أحسب IRR مع برنامج آخر ، أحصل على -8 ٪.
لماذا يعود نومبي nan
للمصفوفة أعلاه؟
المحلول 2
نصائح أخرى
مجرد تصحيح صغير للإجابة السابقة. لا يحد التنفيذ من IRR إلى (0،1] ، فهو يحد من 1/(1+IRR) بالنسبة للتدفقات النقدية التي تحتوي على IRR أقل من 0 (أي المستثمر فقد الأموال). النطاق الصحيح لـ IRR هو (-1 ،+INF). ومع ذلك ، فإن التصحيح ليس تافدًا ، لأن NPV (معدل) يمكن أن يكون أكثر من صفر واحد ، ولكن لن يكون له أكثر من عبور صفر حيث يكون المعدل أكبر من الصفر. لذا فإن الحد من النطاق إلى [0 ،+inf) حيث يتم تنفيذ الوظيفة يعني أنك تفشل في IRRS السلبية ولكن لا تضطر أبدًا إلى التعامل مع متعددة الجذور التي يتم إرجاعها.
كملاحظة جانبية ، إذا كنت مهتمًا بسلوك NPV (معدل) ، فإنه يقترب إما +inf أو -inf مع اقتراب معدل -1. علامة اللانهاية التي تقترب منها هي نفس علامة التدفق النقدي النهائي. في الطرف الآخر ، مع اقتراب المعدل +INF ، يقترب NPV بشكل غير مقارب من قيمة التدفق النقدي الأولي في السلسلة (عادةً ما يكون التدفق النقدي السلبي). بالمعدل = صفر ، قيمة NPV هي مجموع التدفقات النقدية.