利用财务数据进行数据分析
介绍
分析财务数据是任何组织的关键要求。在财务分析中,了解财务数据的基础知识并能够对其进行分析非常重要。
在本指南中,您将学习增长、货币时间价值、资本成本等基本财务概念以及用于评估项目融资决策的资本预算方法。您还将学习如何使用 Python 计算这些指标。
增长率
整个世界都由增长和回报驱动。那些能够保持增长率的公司会取得成功,而其他公司则会落后。我们将更仔细地研究这个概念,但在此之前,我们将使用下面的代码行用 pandas 创建一个虚构的数据集。
下面的第一行代码导入了 pandas 库,第二行初始化了列表。第三行代码使用.DataFrame()函数将此列表转换为数据框,第四行打印数据。
import pandas as pd
dat = [{'2015': 5, '2016':6, '2017':8, '2018':10, '2019':13}, {'2015': 4, '2016':4.8, '2017':6.1, '2018':8, '2019':10},{'2015': 1, '2016':1.2, '2017':1.9, '2018':2, '2019':3},]
df = pd.DataFrame(dat, index =['Revenue', 'Expenses', 'Profit'])
df
输出:
| | 2015 | 2016 | 2017 | 2018 | 2019 |
|---------- |------ |------ |------ |------ |------ |
| Revenue | 5 | 6.0 | 8.0 | 10 | 13 |
| Expenses | 4 | 4.8 | 6.1 | 8 | 10 |
| Profit | 1 | 1.2 | 1.9 | 2 | 3 |
上面的输出是损益表的简化版本,但它有助于我们理解增长的概念。如果我们想计算 2019 年收入的同比增长率,我们可以使用下面的第一行代码,第二行将使用新变量打印结果数据。
df['YoY Growth'] = ((df['2019'] - df['2018'])/df['2018'])*100
df
输出:
| | 2015 | 2016 | 2017 | 2018 | 2019 | YoY Growth |
|---------- |------ |------ |------ |------ |------ |------------ |
| Revenue | 5 | 6.0 | 8.0 | 10 | 13 | 30.0 |
| Expenses | 4 | 4.8 | 6.1 | 8 | 10 | 25.0 |
| Profit | 1 | 1.2 | 1.9 | 2 | 3 | 50.0 |
从上面的输出中,我们可以推断出2019 年的收入、支出和利润同比增长分别为 30%、25% 和 50%。然而,只看一年的增长可能会产生误导,这就是为什么我们更倾向于看复合年增长率 (CAGR)。CAGR 衡量的是多年来数值变量的平均增长率,是分析增长率的更好指标。我们可以使用下面的代码计算 CAGR。
df['CAGR'] = ((df['2019']/df['2015'])**(1/4.0)-1)*100
df
输出:
| | 2015 | 2016 | 2017 | 2018 | 2019 | YoY Growth | CAGR |
|---------- |------ |------ |------ |------ |------ |------------ |----------- |
| Revenue | 5 | 6.0 | 8.0 | 10 | 13 | 30.0 | 26.982343 |
| Expenses | 4 | 4.8 | 6.1 | 8 | 10 | 25.0 | 25.743343 |
| Profit | 1 | 1.2 | 1.9 | 2 | 3 | 50.0 | 31.607401 |
我们可以比较一下一年增长率(YoY Growth)和复合年增长率(CAGR)之间的差异。例如,2019 年的年利润增长率为 50%,但 2015 年至 2019 年的复合年增长率约为 32%。这一差异说明了用 CAGR 衡量财务绩效的重要性。
预测
我们上面讨论的增长率也可用于未来预测。例如,如果我们想使用 CAGR 预测三年后这些数据的财务报表,我们可以使用下面的代码行轻松完成。
df['Projection_3year'] = df['2019']*(1+(df['CAGR']/100))**(5)
df
输出:
| | 2015 | 2016 | 2017 | 2018 | 2019 | YoY Growth | CAGR | Projection_3year |
|---------- |------ |------ |------ |------ |------ |------------ |----------- |------------------ |
| Revenue | 5 | 6.0 | 8.0 | 10 | 13 | 30.0 | 26.982343 | 42.920032 |
| Expenses | 4 | 4.8 | 6.1 | 8 | 10 | 25.0 | 25.743343 | 31.435836 |
| Profit | 1 | 1.2 | 1.9 | 2 | 3 | 50.0 | 31.607401 | 11.844666 |
货币的时间价值
货币的时间价值是金融投资中最重要的概念之一。其简单原理是货币的现值会随着时间的推移而贬值,这意味着由于通货膨胀,今天你口袋里的一美元比一年后你口袋里的一美元要多。让我们通过计算五年后的 100 美元的现值来说明这一点,假设通货膨胀率为 3%,使用下面的代码行。
我们使用numpy包中的pv(rate, nper, pmt, fv)函数通过几个简单的参数来计算货币的现值。
rate:回报率。
nper:投资的时间跨度。
pmt:每期开始或结束时的固定付款。在我们的示例中,此值为零。
fv:投资的未来价值。
import numpy as np
np.pv(rate=0.03, nper=5, pmt=0, fv=100)
输出:
-86.2608784384164
类似地,我们可以使用 numpy 的.fv(rate, nper, pmt, pv)函数计算以 3% 的年回报率投资 5 年的 100 美元的未来价值,使用下面的代码行。
np.fv(rate=0.03, nper=5, pmt=0, pv=-100)
输出:
115.92740743
未来价值为 115 美元。值得注意的是,在上面的函数中,我们将负值传递给了pv参数。这是因为它代表第一年的现金流出,是计算未来价值所必需的。
资本预算
资本预算是财务管理中评估潜在项目或投资的过程。建设新工厂或购买新机器就是资本预算项目的例子。评估项目的方法有多种。我们将考虑两种最流行的方法——净现值 (NPV)和内部收益率 (IRR) ——以及它们在 Python 中的实现。
净现值
简单来说,净现值 (NPV) 是项目在一段时间内的现金流入和现金流出的现值之间的差额。我们将使用 numpy 函数.npv(array of values)来计算净现值。我们以四个项目为例,它们有以下现金流。所有这些项目的折现率都是 5%。
项目 1:第一年现金流出 -1000 美元,第二年现金流入 1000 美元,第三年现金流入 2000 美元,第四年现金流入 3000 美元,第五年现金流入 4000 美元。
项目 2:第一年现金流入 1000 美元,第二年现金流入 2000 美元,第三年现金流出 -1000 美元,第四年流入 3000 美元,第五年流入 4000 美元。
项目 3:第一年现金流出 -1000 美元,第二年现金流入 4000 美元,第三年现金流入 3000 美元,第四年现金流入 2000 美元,第五年现金流入 1000 美元。
项目 4:第一年和第三年的现金流出分别为 -1000 美元和 -2000 美元,第二年的现金流入为 3000 美元,第四年的现金流入为 2000 美元,第五年的现金流入为 7000 美元。
值得注意的是,尽管这四个项目的现金流模式不同,但如果我们将所有现金流相加,每个项目的绝对项目价值为 9000 美元。那么问题是,应该选择哪个项目?答案来自货币时间价值的神奇概念,我们将使用它来计算所有现金流的现值。下面的代码行执行此任务。
# Project 1 NPV
print(np.npv(rate=0.05, values=np.array([-1000, 1000, 2000, 3000, 4000])))
# Project 2 NPV
print(np.npv(rate=0.05, values=np.array([1000, 2000, -1000, 3000, 4000])))
# Project 3 NPV
print(np.npv(rate=0.05, values=np.array([-1000, 4000, 3000, 2000, 1000])))
# Project 4 NPV
print(np.npv(rate=0.05, values=np.array([-1000, 3000, -2000, 2000, 7000])))
输出:
7648.76
7880.05
8080.98
7529.67
上面的输出显示,第三个项目的 NPV 最高,因此在其他所有条件相同的情况下,第三个项目应该优先于其他项目。虽然 NPV 很有用,但财务专业人士在选择资本预算方案时广泛使用的另一个重要指标是 IRR 方法,如下所述。
内部收益率
内部收益率 (IRR) 是项目或投资的所有现金流的净现值为零时的收益率。IRR 比 NPV 更直观易懂。我们将使用 numpy .irr(array of values)函数来计算内部收益率。
让我们使用下面的代码行来计算上面讨论的所有四个项目的 IRR。
# Project 1 IRR
print(np.irr(np.array([-1000, 1000, 2000, 3000, 4000])))
# Project 2 IRR
print(np.irr(np.array([1000, 2000, -1000, 3000, 4000])))
# Project 3 IRR
print(np.irr(np.array([-1000, 4000, 3000, 2000, 1000])))
# Project 4 IRR
print(np.irr(np.array([-1000, 3000, -2000, 2000, 7000])))
输出:
1.517996077869768
nan
3.732626152716434
1.8474807808952747
项目 1、项目 3 和项目 4 的 IRR 分别为 151%、373% 和 185%。第二个项目没有返回任何 IRR,因为第一年没有现金流出,这是计算 IRR 的要求,也是此方法的限制。使用 IRR 方法,我们将选择 IRR 最高的项目 3,即 373%。
加权平均资本成本
IRR 是评估投资项目的良好指标。但是,如果回报率低于投资融资成本怎么办?例如,如果某个项目的 IRR 为 10%,而为该项目融资的资本成本为 12%,那么投资该项目就不是一个有利可图的想法。这就是为什么需要计算加权平均资本成本的原因。
加权平均资本成本(WACC)是公司为融资其资产而预计向其所有证券持有人支付的利率。WACC 通常被称为公司的资本成本,也受外部市场因素的影响。计算加权平均资本成本的公式为
加权平均资本成本 = (股权比例*股权成本) + (债务比例*债务成本) * (1 - 税率)
在哪里
equity_proportion:公司通过股权融资的百分比。
equity_cost:公司的股权成本。
债务比例:公司通过债务融资的百分比。
债务成本:公司的债务成本。
taxrate:企业税率。
让我们计算一下一家公司的加权平均资本成本,该公司的债务成本为 10%,股权成本为 15%,债务融资为 40%,股权融资为 60%。实际企业税率为 30%。使用上述公式计算加权平均资本成本很简单。
equity_proportion = 0.60
debt_proportion = 0.40
equity_cost = 0.15
debt_cost = 0.10
taxrate = 0.30
WACC = (equity_proportion*equity_cost) + (debt_proportion*debt_cost) * (1 - taxrate)
WACC
输出:
0.118
加权平均资本成本为 11.8%。简单的解释是,如果项目的 IRR 大于公司的加权平均资本成本,则选择该项目提案是合理的。
结论
在本指南中,您了解了分析财务数据的基础知识。您了解了增长、CAGR 和货币时间价值的重
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~