數(shù)據(jù)驅(qū)動的財務(wù)決策 —— 帶著Python玩金融(2

假如你是一家公司的CEO爬立,現(xiàn)在有兩個項目提案擺在你面前钾唬,你該如何抉擇呢?

本文將介紹項目決策中三種常用的盈利能力分析方法侠驯,它們分別是

  • 凈現(xiàn)值(Net Present Value抡秆,NPV)
  • 內(nèi)部回報率(Internal Rate of Return,IRR)
  • 約當(dāng)年金(Equivalent Annual Annuity吟策,EAA)

并使用Python中的函數(shù)來進行計算儒士。

凈現(xiàn)值(NPV)和加權(quán)平均資本成本(WACC)

凈現(xiàn)值是一項投資所產(chǎn)生的未來現(xiàn)金流的折現(xiàn)值與項目投資成本之間的差值。
在上一篇文章《貨幣的時間價值》最后一節(jié)中檩坚,我們在評估兩個項目時就使用了凈現(xiàn)值的方法着撩,不過是將通貨膨脹率作為折現(xiàn)率來計算的。

在實際情況下匾委,比如你是一家新公司的CEO拖叙,該公司有未償還的債務(wù)和融資成本,這時你就必須進行調(diào)整赂乐,使用加權(quán)平均資本成本(WACC)作為折現(xiàn)率薯鳍。

WACC在金融活動中用來衡量一個公司的資本成本。它的計算公式如下:

WACC = F_{Equity} * C_{Equity} + F_{Debt} * C_{Debt} * (1-TR)

其參數(shù)定義如下:

  • F_{Equity} 是公司通過股權(quán)融資的比例挨措。
  • F_{Debt}是公司通過債務(wù)融資的比例挖滤。
  • C_{Equity}是股權(quán)成本。
  • C_{Debt}是債務(wù)成本运嗜。
  • TR是公司稅率壶辜。

我們來做一個估算WACC的練習(xí),假如你為公司項目提供1百萬的貸款担租,這是貴公司唯一未償還債務(wù)砸民,剩余資金來自股權(quán)的市場價值楣导,也是1百萬松逊。股權(quán)成本是0.18,債務(wù)成本是0.12,公司稅率是0.35肉康。

# 設(shè)置債務(wù)的的市場價
mval_debt = 1000000
# 設(shè)置股權(quán)的的市場價
mval_equity = 1000000
# 計算總投資額
mval_total = mval_debt + mval_equity

# 計算債務(wù)融資比例
percent_debt = mval_debt / mval_total
# 計算股權(quán)融資比例
percent_equity = mval_equity / mval_total

# 設(shè)置股權(quán)成本
cost_equity = 0.18
# 設(shè)置債務(wù)成本
cost_debt = 0.12
# 設(shè)置公司稅率
tax_rate = 0.35

# 計算WACC
wacc = percent_equity * cost_equity \
     + percent_debt * cost_debt * (1 - tax_rate) 

print("WACC: " + str(round(100*wacc, 2)) + "%")
WACC: 12.9%

現(xiàn)在你的項目經(jīng)理為每個提案預(yù)測了現(xiàn)金流。項目1有更高的短期回報憔四,但項目2的遠期回報更大伐憾。兩項目預(yù)測的現(xiàn)金流如下(單位是1000):

年份 項目1 項目2
1 -1,000 -1,000
2 200 150
3 250 225
4 300 300
5 350 375
6 400 425
7 450 500
8 500 575
9 550 600
10 600 625

讓我們基于WACC來計算凈現(xiàn)值,使用NumPy中的.npv()函數(shù)秒际。

numpy.npv(rate, values)

  • rate:折現(xiàn)率
  • values: 現(xiàn)金流
import numpy as np

# 創(chuàng)建NumPy數(shù)組儲存項目1的現(xiàn)金流
cf_project_1 = np.array([-1000, 200, 250, 300, 350, 400, 450, 500, 550, 600])

# 創(chuàng)建NumPy數(shù)組儲存項目1的現(xiàn)金流
cf_project_2 = np.array([-1000, 150, 225, 300, 375, 425, 500, 575, 600, 625])

# 乘上單位1000
cf_project1 = cf_project_1 * 1000
cf_project2 = cf_project_2 * 1000

# 計算項目1的凈現(xiàn)值
npv_project1 = np.npv(rate=wacc, values=cf_project1)
print("項目1的凈現(xiàn)值:" + str(round(npv_project1, 2)))

# 計算項目2的凈現(xiàn)值
npv_project2 = np.npv(rate=wacc, values=cf_project2)
print("項目2的凈現(xiàn)值:" + str(round(npv_project2, 2)))
項目1的凈現(xiàn)值:856073.18
項目2的凈現(xiàn)值:904741.35

如果僅基于凈現(xiàn)值來做決策悬赏,項目2會是更好的選擇。

內(nèi)部回報率(IRR)

如果兩個項目體量相差很大的話娄徊,凈現(xiàn)值并不是一個好的衡量標(biāo)準(zhǔn)闽颇。這時我們可以使用內(nèi)部回報率來衡量。
內(nèi)部回報率寄锐,也稱內(nèi)部收益率(Internal Rate of Return兵多,IRR),是一種投資的評估方法橄仆,也就是找出資產(chǎn)潛在的回報率剩膘,其原理是利用內(nèi)部回報率折現(xiàn),投資的凈現(xiàn)值恰好等于零盆顾。

IRR的手工計算比較復(fù)雜怠褐,我們可以使用NumPy中的 numpy.irr(values) 函數(shù)輕松計算,參數(shù) values 代表的是現(xiàn)金流椎扬。

我們根據(jù)上一節(jié)中給出的兩項目的現(xiàn)金流來計算IRR:

# 計算項目1的內(nèi)部回報率
irr_project1 = np.irr(cf_project1)
print("項目1的IRR: " + str(round(100*irr_project1, 2)) + "%")

# 計算項目1的內(nèi)部回報率
irr_project2 = np.irr(cf_project2)
print("項目2的IRR: " + str(round(100*irr_project2, 2)) + "%")
項目1的IRR: 28.92%
項目2的IRR: 28.78%

如果只是基于內(nèi)部回報率來做決策惫搏,那么項目1更有優(yōu)勢。

約當(dāng)年金(EAA)

假設(shè)你公司的董事會決定轉(zhuǎn)向初始投資較低的短期項目蚕涤。項目經(jīng)理給出了兩個新想法筐赔,預(yù)測的現(xiàn)金流如下:

年份 項目1 項目2
1 -700 -400
2 100 50
3 150 100
4 200 150
5 250 200
6 300 250
7 350 300
8 400

讓我們使用上兩節(jié)介紹的方法來計算這兩個新項目的內(nèi)部回報率IRR和凈現(xiàn)值NPV。

cf_project_1 = np.array([-700, 100, 150, 200, 250, 300, 350, 400])
cf_project_2 = np.array([-400, 50, 100, 150, 200, 250, 300])
cf_project1 = cf_project_1 * 1000
cf_project2 = cf_project_2 * 1000

irr_project1 = np.irr(cf_project1)
print("項目1的IRR: " + str(round(100*irr_project1, 2)) + "%")

irr_project2 = np.irr(cf_project2)
print("項目2的IRR: " + str(round(100*irr_project2, 2)) + "%")

npv_project1 = np.npv(rate=wacc, values=cf_project1)
print("項目1的NPV: " + str(round(npv_project1, 2)))

npv_project2 = np.npv(rate=wacc, values=cf_project2)
print("項目2的NPV: " + str(round(npv_project2, 2)))
項目1的IRR: 22.94%
項目2的IRR: 26.89%
項目1的NPV: 302744.98
項目2的NPV: 231228.39

如果基于內(nèi)部回報率決策揖铜,優(yōu)選項目2茴丰;但如果基于凈現(xiàn)值決策,那么項目1更好天吓』呒纾可是到底該如何抉擇呢?

經(jīng)仔細觀察龄寞,我們發(fā)現(xiàn)這兩個項目具有不同的生命周期汰规,那么使用約當(dāng)年金(Equivalent Annual Annuity,EAA)的方法會更有效物邑。
約當(dāng)年金法是把生命周期為N年的現(xiàn)金流貼現(xiàn)到第1年年初溜哮,并用該現(xiàn)值等價成一個N年期的年金滔金,從而得到的年金金額即為約當(dāng)年金。

在Python中茂嗓,使用 numpy.pmt() 函數(shù)計算約當(dāng)年金餐茵。

numpy.pmt(rate, nper, pv, fv)

  • rate: 折現(xiàn)率
  • nper: 投資時間
  • pv: 現(xiàn)值
  • fv: 未來價值
# 計算項目1的EAA
eaa_project1 = np.pmt(rate=wacc, nper=8, pv=-npv_project1, fv=0)
print("項目1的EAA: " + str(round(eaa_project1, 2)))

# 計算項目2的EAA
eaa_project2 = np.pmt(rate=wacc, nper=7, pv=-npv_project2, fv=0)
print("項目2的EAA: " + str(round(eaa_project2, 2)))
項目1的EAA: 62872.2
項目2的EAA: 52120.61

如果僅基于約當(dāng)年金來決策,我們會選擇項目1述吸。

小結(jié)

本文介紹了三種評估項目盈利能力的方法忿族,分別是凈現(xiàn)值(NPV)、內(nèi)部回報率(IRR)和約當(dāng)年金(EAA)蝌矛。
它們在Python中的計算函數(shù)如下:

#計算凈現(xiàn)值NPV
numpy.npv(rate, values)

#計算內(nèi)部回報率IRR
numpy.irr(values)

# 計算約當(dāng)年金EAA
numpy.pmt(rate, nper, pv, fv)

另外還學(xué)習(xí)了加權(quán)平均資本成本(WACC)這一概念道批,它的計算公式如下:

WACC = F_{Equity} * C_{Equity} + F_{Debt} * C_{Debt} * (1-TR)


注:本文是DataCamp課程Intro to Financial Concepts using Python的學(xué)習(xí)筆記。
更多該課程的筆記:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末朴读,一起剝皮案震驚了整個濱河市屹徘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌衅金,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件簿煌,死亡現(xiàn)場離奇詭異氮唯,居然都是意外死亡,警方通過查閱死者的電腦和手機姨伟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門惩琉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人夺荒,你說我怎么就攤上這事瞒渠。” “怎么了技扼?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵伍玖,是天一觀的道長。 經(jīng)常有香客問我剿吻,道長窍箍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任丽旅,我火速辦了婚禮椰棘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘榄笙。我一直安慰自己邪狞,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布茅撞。 她就那樣靜靜地躺著帆卓,像睡著了一般巨朦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鳞疲,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天罪郊,我揣著相機與錄音,去河邊找鬼尚洽。 笑死悔橄,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的腺毫。 我是一名探鬼主播癣疟,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼潮酒!你這毒婦竟也來了睛挚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤急黎,失蹤者是張志新(化名)和其女友劉穎扎狱,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體勃教,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡淤击,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了故源。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡绳军,死狀恐怖印机,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情射赛,我是刑警寧澤腐魂,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站迅脐,受9級特大地震影響隐锭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜挣输,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一蜻底、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦拉一、人聲如沸烦租。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽左权。三九已至痴颊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蠢棱,已是汗流浹背锌杀。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留泻仙,地道東北人糕再。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像玉转,于是被迫代替她去往敵國和親突想。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容