سؤال

عندما أحسب المعدل الداخلي للعائد (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]. وذلك لأن المعادلة يمكن أن تحتوي على عدة حلول ، وبالتالي يتم ترك واحدة صالحة فقط. إنه هنا خيار تنفيذ ضعيف (IMO) ، لأن IRR بالتأكيد يمكن أن تكون خارج هذا النطاق ولا تزال صالحة تمامًا. في حالتك ، أقترح أن تكتب وظيفتك الخاصة (على غرار النابضة الموجودة) والتي سيفعل ما تحتاجه.

نصائح أخرى

مجرد تصحيح صغير للإجابة السابقة. لا يحد التنفيذ من IRR إلى (0،1] ، فهو يحد من 1/(1+IRR) بالنسبة للتدفقات النقدية التي تحتوي على IRR أقل من 0 (أي المستثمر فقد الأموال). النطاق الصحيح لـ IRR هو (-1 ،+INF). ومع ذلك ، فإن التصحيح ليس تافدًا ، لأن NPV (معدل) يمكن أن يكون أكثر من صفر واحد ، ولكن لن يكون له أكثر من عبور صفر حيث يكون المعدل أكبر من الصفر. لذا فإن الحد من النطاق إلى [0 ،+inf) حيث يتم تنفيذ الوظيفة يعني أنك تفشل في IRRS السلبية ولكن لا تضطر أبدًا إلى التعامل مع متعددة الجذور التي يتم إرجاعها.

كملاحظة جانبية ، إذا كنت مهتمًا بسلوك NPV (معدل) ، فإنه يقترب إما +inf أو -inf مع اقتراب معدل -1. علامة اللانهاية التي تقترب منها هي نفس علامة التدفق النقدي النهائي. في الطرف الآخر ، مع اقتراب المعدل +INF ، يقترب NPV بشكل غير مقارب من قيمة التدفق النقدي الأولي في السلسلة (عادةً ما يكون التدفق النقدي السلبي). بالمعدل = صفر ، قيمة NPV هي مجموع التدفقات النقدية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top