左手IRR,右手NPV,掌握髮家致富道路密碼

葡萄城技術團隊發表於2021-10-13

智慧手機的普及讓世界成為了我們指尖下的方寸之地。

在各種資訊爆炸出現的同時,五花八門的理財資訊與我們的生活越貼越近。投資不再僅僅是企業行為,對於個人而言,也是很值得關注的內容。

但是落腳到很小的例子之上,假如專案A和專案B都可以投資25W,而現在的貼現率是15%(貼現率:指將來的錢折算到現在後,少掉/多出的那部分錢與將來的錢的比值),我們投哪個專案更加划算呢?

對金融知識知之甚少的你,看到這裡可能會有點慌了。

而這個問題在資料分析中,有一種專門的計算方式,用來處理這種資料,從而選擇出利益最大化的數值,它的名字叫——IRR,與之相關的另一個資料概念,NPV。

接下來我們為大家簡單介紹這兩個概念。

IRR與NPV

NPV:Net Present Value,淨現值。將未來會獲得的金額轉化成為現在獲得的金額,和利息是分相似,但是反向計算利息的過程。

假設明天你獲得15塊錢,貼現率10%,換算成現就是15/1.1=13.63(元),累加之後再減去投資成本得到累計淨現值。累計淨現值越大越好,從理論上說淨現>0,這個投資的內容就是可以獲利的。

用一張表說明這個資料內容:當A、B專案都為10w元時,貼現率為10%,兩個專案時長都是5年。

(圖片來自網路)

最後計算是雖然前幾年兩專案最後獲得總金額之和都是18.52w,但是在這個過程中,以B獲得更多回報的時間更為提前。NPV的計算結果去是除掉貨幣的貶值的部分,結果是B=3.96>A=3.02,顯然B專案更值得投資。

IRR:Internal Rate of Return,內部報酬率。這個數值指累計淨現值為0的時候的貼現率。這個數值表示了專案能承受的最大貨幣貶值比率(贏利空間,抗風險能力)。想要得到這個數值需要不斷使用不同的折現率進行計算,找到NPV等於零的或者是接近零的時候。

它是一項投資渴望達到的報酬率,該指標越大越好。

還是用剛那個例子來看看:

(圖片來自網路)

這張圖中A專案的NPV為零,此時使用的貼現率為18.45%,我們就說此時的IRR為18.45%

這個數值越大,我們的選擇抗風險的能力就會越強。在如今,股票、基金、黃金、房產、期貨等投資方式已為眾多理財者所熟悉。但是投入的效果如何,我們通常的判斷僅僅侷限在了收益的數量之上,缺少更加科學的判斷依據。這時候內部收益率(IRR)指標就是一個很有效果且直觀的判斷工具。

IRR的計算

科學計算IRR

實際使用中,我們如果想要獲取IRR數值,需要進行一定計算。

在瞭解相關內容之前,我以為是這樣的計算過程:

但其實在這個計算過程中使用到了牛頓迭代公式進行計算。

令高階未知數IRR最終值為x,令 t = 1/(1+x),我們還需要了解(xn )'= nxn-1 ,n≠0。按照牛頓迭代公式 x n+1 = xn - f(xn)/f‘(xn)

然後帶入:t n+1 = tn – [a(tn +tn2 +tn3 +tn4)+b tn5 – c]/ [a(1 +2tn +3tn2 +4tn3)+b*5tn4]

最後得到的x的數值,就是IRR。

電子表格中“千表千值”的IRR

由於這一計算過程很複雜,所以在許多資料處理工具中都可以通過公式的使用直接得到IRR的計算結果。比如Excel中可以直接實現IRR的計算,GoogleSheet等電子表格也都支援這個內容的計算。

但是由於IRR是迭代計算的結果,在電子表格中的計算結果是多值,通過設定收益率估值,來選擇接近回報率。但是不同的迭代演算法和迭代次數計算的IRR結果是不同的,即使收益率估值相同,不同的演算法也會算出不同的值,同時迭代次數也會使計算的結果精度不同,這些值都不會完全相同。

作為一名技術顧問,總需要處理客戶各種各樣的問題。而在某次技術支援時,就遇到了客戶反映SpreadJS的IRR計算數值和Excel不同。

客戶嘗試分析了一下SpreadJS計算IRR的邏輯,發現NPV由負到正的場景是正常的,但是NPV由正到負就會有問題,下面是客戶分析的思路。

對於使用者提到的這個問題,讓我們一起使用使用者提供的資料進行計算:

(客戶使用的資料內容:IRR不同GUESS值IRR計算 大家有興趣可以一起來試試)

在這個表中我們會發現-8.34%, 0.98%, 289%三個結果都是正確的。

這個問題的原因其實因為IRR本身的計算需要很多迭代,不同的演算法和取值會導致最終計算結果的不同;另一個原因是因為Excel中的演算法、策略都是未知的,目前沒有任何資料文件說明Excel的策略。SpreadJS現階段只能根據經驗推測Excel的策略,但是仍有很多場景不能理解。

比如,A1設定-100,A2:A239設定0,A240設定100,這意味著240個週期賺了200。用Excel計算IRR(A1:A240)結果是DIV/0;還有上圖中計算結果1%應該是更加合理的結果,即使在給定預估值給定0.1的情況下Excel依舊返回298%,但是很明顯這個數值過於樂觀。

這些問題現在業界內並沒有完全統一的結果,在測試過程中,我們還使用過GoogleSheet,計算結果如下:

相比較而言我們的計算結果已經是目前大家使用中與Excel計算最為接近的。而後續我們的研發也在不斷探索,力圖能為這個問題提供一個更優的解答。

總結來說,IRR本身作為預估值,就有不確定性,而且沒有標準確定那種演算法是正確的演算法,對於和Excel結果的不一致,我們也會在保證結果合理的前提下儘量和Excel保持一致。同時,在某些場景下,我們會保留自己的計算結果。

總結

看到這裡你可能想說IRR的標準在電子表格中也並沒有統一的定論,但是面對這個問題SpreadJS交出了一份自己的答卷。

在後續我們也會為大家帶來更多關於前端電子表格揭祕的相關內容,覺得不錯點個贊吧~

相關文章