摘要及声明
1:本文简单介绍PB指标的推导以及剩余收益的估值方式;
2:本文主要为理念的讲解,模型也是笔者自建,文中假设与观点是基于笔者对模型及数据的一孔之见,若有不同见解欢迎随时留言交流;
3:笔者希望搭建出一套交易体系,原则是只做干货的分享。后续将更新更多内容,但工作学习之余的闲暇时间有限,更新速度慢还请谅解;
4:本文主要数据通过Tushare(ID:444829)金融大数据平台接口获取;
5:模型实现基于python3.8;
笔者看本站有一些人写过剩余收益的文章,但都比较模棱两可。百度上也有一些文章,不过点开都是很多公式推导,缺少理念的拓展。本着只讲干货的原则,笔者本期深入浅出讲一讲剩余收益估值那些事儿。必要的一些公式推导还是需要带上的,但笔者更多是分享自己对剩余收益原理和经济含义的理解。本期主要内容如下:
目录
PB指标比较入门和基础,本来笔者不想多谈,网上也已经有很多文章写过,但由于后面涉及到残余收益,不说又差些意思,因此这里笔者还是打算简单介绍一下,并推导一下重要的公式变形和结论,已经对PB指标很熟或者不感兴趣的可以直接跳过本节。
PB指标又称为市净率,可以利用股价除以公司每股净资产账面价值(Book value per share, 下文简称“BVPS”)得到。笔者在市盈率那期内容中介绍了PE指标的诸多变形,例如静态、动态、TTM、NTM、PEG和基本面调整市盈率等等(文章传送门:PE指标)。但打开交易软件会发现除了PE指标,其它的乘数指标往往只有光溜溜的一个名字,并不像PE指标那样有诸如静态、动态、TTM这种前/后缀。
笔者看网上对这个原因都避而不谈,好像PE天生就该有这么多变形,其它指标就不配? 事实上PB、PS、PCF等价格乘数指标照样可以有很多变形,而且实务中也确实有人会使用这些变形指标。之所以很少见到这些变形,原因主要是PE指标的分母EPS是股东(韭菜)们最为关心的指标,静态动态PE一列出来,股东们就能看到公司收益增减变化,下回分红多少钱能进口袋也就有了个预期。其次,由于财务报表的勾稽关系,EPS往往和BVPS、销售额及现金流这些指标呈正相关关系,通过PE动静态指标一看大致也能判断出其它指标变化情况。这样一个受股东欢迎,又具有代表性的指标当然要大做文章,于是其它指标就剥得只剩个光杆司令了,很多行情软件甚至不展示PS和PCF这种指标。
笔者罗列了一些比较重要的优缺点当作是复习了。尽管行情软件上被PE指标夺去很多光环,PB指标的优势也是很突出的,例如:
1):除资不抵债,PB指标的分母BVPS绝大多数情况下都是正数;
2):PB的分母BVPS的波动相较于PE的分母EPS要低很多;
3):企业资产流动性较高,计量属性以公允价值为主,例如金融类行业;
4):可用于面临破产清算的企业估值;
不过缺点也是有的:
1):企业有大量的表外资产/负债(off-B/S);
2):会计准则和计量方式会对PB产生影响,例如存货计量方式,减值折旧等;
3):回购增发等行为会对PB产生影响;
由于PE那期介绍过各种变形的计算规则,笔者就不一一推导了,下面推导一个经基本面调整的静态PB指标,仅作展示。由于是经基本面调整的静态指标,分母采用当期的BVPS,分子采用红利折现计算的内在价值:
其中:
:下期股利
:股东要求回报率
:可持续增速(sustainable growth rate)
:当期每股净资产
:利润留存率
:下期每股净利润
定义ROE的计算式为:
则[1]式可以进一步变形为:
由于, [2]可以进一步变形得到[3]式:
通过观察[3]式不难发现几个结论:
1):当ROE大于r,PB大于1;
2):当ROE小于r,PB小于1;
3):当ROE等于r,PB等于1;
记住[3]式及这三个结论,等一下它们大有作为。
笔者认为从自由现金流折现到股利折现实际上是一个范围不断收缩的过程,而剩余收益正是这个收缩过程中的一个过渡。如图一所示,在企业的收入大蛋糕中扣除掉费用支出,经营活动的垫资,给政府的税收等等支出后得到可供债权人和股东支配的自由现金流FCFF;在这基础上继续扣除债权人分走那部分利息再加上税盾,得到可供股东支配的自由现金流FCFE;绝大多数人学习过程中会直接从FCFE跳到利用股利进行折现,并且教科书会说一些过场式的陈词滥调,比如:FCFFE代表的是一个公司潜在的分红能力,而股利是一个公司实实在在发出了多少分红。对于一个连年挣钱却还一毛不拔的铁公鸡,FCFE是比较合理的估值方式,云云。
图一:企业利益分配流
FCFE是股东可以自由支配的现金流,但一来它不是个实打实的应计制概念,除了不能完全体现应计制的优势,FCF也有可能是个负的,不利于折现。二来自由支配并不意味着股东都能把FCFE全部装进自己的腰包。对于一家FCF是负的,而且一毛不拔的铁公鸡(不发股利)又该怎么办?
有没有这样一个概念,既能体现公司为股东创造了多少经济价值,又是一个应计制的。首先可以想到的是净利润,它来自利润表,是一个应计制的科目。其次净利润是Bottom line,后面分红多少除了看分红率,净利润才是高分红的基础。作为股东最关心的企业盈利能力指标,ROE就采用了净利润作为分子。
净利润能不能用来折现?可以。但这样还是差了一块东西,之前说过还需要体现经济价值,也就是经济学告诉我们的机会成本。于是马上可以想到折现率r,而所有者权益又是股东的投入资本,因此通过折现率乘以所有者权益账面价值即可得到股东的机会成本。但总说经济价值指代得也不明确,于是这个理念被取了一个名字,即是剩余收益,也称残余收益(Residual income,下文简称RI),接下来就简单了,如[4]式:
其中,为第t期所有者权益账面价值(Book value of equity,下文简称“BV”)。
不过需要注意的是图一只是用来讲解一下理念,里面的长方形面积大小关系并不代表绝对金额的大小关系。实际上分红不一定会小于RI(例如借债发股利),FCFE也不一定会大于RI(例如折旧摊销很小,资产和营运资金投入又很高)。
之前推导的PB看似与RI没有关系,实际上RI通过一个巧妙的变形就可与PB指标联系起来。
将[4]式左边的所有者权益提出:
通过ROE的计算式就可以将上式简化为:
观察[5]并联系[3]式,可以总结得到以下结论:
1):当ROE大于r,RI为正数,PB指标大于1;
2):当ROE小于r,RI为负数,PB指标小于1;
3):当ROE等于r,RI为0,PB指标等于1;
这几条结论中,只要成立其中一个小条件,该条结论都可以被直接推出来。例如只要知道基本面修正的PB指标大于1,那么可以直接推出ROE是大于r的,RI是大于0的。
这个关系不仅是纯数学公式推导,还蕴含着经济原理,即RI用来衡量公司为股东创造的经济价值,ROE是公司盈利能力,r是股东机会成本;当ROE小于r,意味着公司为股东创造的价值不足以覆盖股东的机会成本,此时RI便为负数,基本面修正的静态PB指标也小于1,公司从基本面上看处于破净状态。
剩余收益的折现与现金流折现是一样的原理,RI其实是通过净利润计算出来的,是一个增量的概念,与净利润不停被计入所有者权益科目一样的逻辑,这个往里加的对象便是公司的所有者权益账面价值。因此,不同于其它估值模型,剩余收益现金流折第一个需要注意的点是当期净资产的账面价值加上未来RI的增量现金流折现。这个得到的结果才是公司的总内在价值,即[6]式:
可以看到,[6]式中的当期净资产账面价值是直接可以通过财报得到的,问题在于后面的RI未来现金流加总,下面笔者将推导几种未来RI的推导方式,下面涉及的公式推导会比较较多。
回顾剩余收益的计算式, 下一期的RI可以计算为:
不难发现影响RI的几个变量无非是净利润,期初净资产和折现率。看到净利润和净资产直接联想到ROE的公式,只要假设公司未来的ROE水平和折现率,净盈余关系或者清洁盈余关系(clean surplus relationship)成立(成立条件例如:累计其它综合收益科目为0,股本不能变化等),就能直接将未来的RI推算出来。
因为净盈余关系:
可以在的基础上直接推导出, 其中Div为分红:
按照[7]式这样就可以不断将未来RI计算出来。下面笔者以BV初=1000, ROE=20%且恒定,股利支付率5%且恒定,r=8%且恒定进行简单的四期RI计算展示:
Year(t) | 1 | 2 | 3 | 4 |
1000 | 1190 | 1416.10 | 1685.16 | |
200 | 238 | 283.22 | 337.03 | |
10 | 11.9 | 14.161 | 16.85 | |
1190 | 1416.10 | 1685.16 | 2005.34 | |
80 | 95.20 | 113.29 | 134.81 | |
120 | 142.80 | 169.93 | 202.22 |
表一:净盈余关系计算多期剩余收益
由于以下几个关系(字母注释详见PB指标推导部分,没看明白可以留言):
[7]式可继续化简:
将BV提出:
按这个方式可以写出第三期的剩余收益:
化简一下:
像这样可以将后面t期的RI用公式[8]表示出来:
公式[8]即为一般公式,假设条件是净盈余关系成立、ROE、股利支付率保持不变。
推导出的一般公式[8]中含有一个第t期的净利润,这预测起来比较麻烦。不过在推导RI公式的时候还有一个变形式[5],[5]式中是不含净利润这一项的,因此可以依照上面的原理推导出另一个多期计算式:
还是用刚刚笔者举例使用的数据:BV初=1000, ROE=20%且恒定,股利支付率5%且恒定,r=8%,净盈余关系成立,下面将已知数据直接带入[9]式计算四期的剩余收益:
Year | 1 | 2 | 3 | 4 |
0.19 | 0.19 | 0.19 | 0.19 | |
0 | 1 | 2 | 3 | |
1 | 1.19 | 1.42 | 1.69 | |
0.12 | 0.12 | 0.12 | 0.12 | |
120 | 142.80 | 196.93 | 202.22 |
表二:公式法计算多期剩余收益
对比表一会发现通过净盈余关系计算出的剩余收益和公式法计算出的剩余收益竟然是一模一样的!
当然是一模一样的,它们本质上只是对公式进行了数学恒等变形,不一样那不是活见鬼了。
说完如何计算,下面就该谈估值最重要的步骤——折现。一些基础的折现理念,例如阶段折现方式,可持续因子的运用笔者下面就不做深入解释了,需要了解原理的可以点下面链接看笔者往期讲解:增速g的测算,H-model,可持续因子及周期因子。
首先对剩余收益来说,最基础的一个折现式子是:
将未来所有的剩余收益预测出来,乖乖按照即期利率折现,最后得到公司内在价值。这种方式比较一板一眼,笔者就不做讨论了。不过这里也可以得到一个结论:从之前的PB指标推导的几个结论可以知道,当ROE一直大于股东机会成本,未来的剩余收益是大于0的。因此对股东们来说,公司的价值会大于净资产的账面价值(Value>BV)。
下面笔者再讨论几种阶段折现的方式。
将基础公式中未来现金流加总部分写成戈登增长模型,但与以前的股利折现不同,剩余收益的分子变下形是可以与PB指标联系起来的:
化简一下,最后一个部分其实就基本面调整的PB指标乘以BV:
即:
[10]式推出来不是闹着玩吗?本身PB就是价格除以净资产账面价值,现在再乘一个净资产得到价格。笔者想说的是,这个式子在未来终值估计上会更有用。不过用这个式子的其中几个前提是ROE不变,净利润增速,净资产增速和剩余收益增速不变。这在实务中其实是不可能出现的,所谓剩余收益是公司为股东所创造的经济价值,随着行业走向衰退,很难说一个企业会永续的以恒定增速为股东创造效益。
虽然单阶段是很难实现的,但上面的单阶段推导给了一个灵感——知道未来的PB就可以推导出未来的远端现金流的终值(terminal value)。还是之前的例子,前面表一已经将前四期RI都推算了出来,现在结合PB指标计算第五期的终值:
接下来就简单了,将每一期的RI进行折现,但需要注意的是中是包含净资产账面价值的,需要减去BV才是未来RI的增量。
因此:
图二:远端现金流终值计算
但这个计算问题在于如何估测5年后的PB水平。例如,长期来看均值回归使得5年后PB指标回到行业平均水平,以行业平均进行估测。或者一个公司由于行业发展程度,市场竞争等因素,从长期来看PB趋向于1,即第五期终值等于0,那么该公司当期的内在价值即为当期净资产加上未来四期的剩余收益折现。
除了利用PB指标外,还有另一种方法计算终值。回到RI的戈登增长折现式:
仔细想想这个式子其实是有问题的,传统意义上的戈登增长模型是假设现金流以g的速度增长到无穷远期。但对于剩余收益来说,剩余收益永续增长这样的假定太过苛刻,没有那个企业可以保证自己的账面价值永续增长到无穷期,这样的假设太过恐怖了。因此往往不是假设RI永续增长,而是持续下跌。于是就有了带可持续因子的公式[11]:
关于可持续因子原理就不展开讲了,需要了解的看笔增速g那期文章。
首先是电子表格建模,就是利用Excel。其实很多分析师都有自己的估值模板,输入相关参数就直接出结果了。虽然一些简单的折现模型用电子表格建模还是挺方便的,也很直观。不过笔者还是会自己写写代码,一来可以批量跑很多家公司,二来可以内嵌一些更复杂的功能模块,对于庞大的数据处理来说电子表格建模就显得有心无力了。下面笔者以上证某公司为例简单实现一个带有可持续因子的剩余收益估值模型。
code = "" 公司代码
数据方面笔者选择了Tushare金融大数据平台API,首先导入相关模块,实例化tushare接口:
import tushare as ts
import numpy as np
import pandas as pd
pro = ts.pro_api("token") # 输入自己的密钥
1):净利润及净资产
公司方面使用的是财务报表预测那期的目标公司,一来可以直接拿那期的结果来用,二来可以省略很多分析过程。所需要使用的财务数据为2021年年报数据以及2022年预测数据。 这部分代码很多,也不是本期重点就不放了, 文章传送门:财务报表建模——利润表。
净利润预测得到的结果:¥27145022057:
def financial_mod():
return NI
NI = financial_mod()
净资产账面价值,直接获取当期的财报数据,得到数值为1200多亿:
bv = pro.balancesheet(ts_code=code, period='20211231', fields='total_hldr_eqy_inc_min_int')['total_hldr_eqy_inc_min_int'][0]
print(bv)
# 124868124000.0
2):折现率
下面需要知道折现率r, 可以利用CAPM模型计算折现率:
def CAPM_mod():
return r
r = CAPM_mod()
CAPM结果(%): 8.2916 R-square: 0.5092
当然,也可以内嵌更复杂的模型。笔者利用PSM模型计算,代码也比较多,不放了,感兴趣的可以看笔者折现率r那期内容:浅谈估值模型:回报率r的进阶玩法。模型给出的折现率为12.33%,四个因子均显著,模型解释力近70%,可以说PSM非常适合这家公司:
def PSM_mod():
return r
r = PSM_mod()
GLS Regression Results
=======================================================================================
Dep. Variable: RP R-squared (uncentered): 0.697
Model: GLS Adj. R-squared (uncentered): 0.696
Method: Least Squares F-statistic: 1126.
==============================================================================
coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
RM 1.5858 0.027 58.901 0.000 1.533 1.639
SMB -49.1681 2.449 -20.075 0.000 -53.971 -44.365
HML 54.8740 3.008 18.244 0.000 48.975 60.773
LIQ -17.2345 0.881 -19.559 0.000 -18.963 -15.506
==============================================================================
Omnibus: 260.134 Durbin-Watson: 0.087
Prob(Omnibus): 0.000 Jarque-Bera (JB): 883.215
Skew: 0.645 Prob(JB): 1.63e-192
Kurtosis: 6.022 Cond. No. 161.
==============================================================================
PSM结果(%): 12.3287 Adj R: 0.6962
3):折现模块
数据都拿到之后按照前面推导的可持续因子折现公式写个模块就完成了:
def RI_persistent_mod(BV_0, NI_1, r, w):
RI = NI_1 - BV_0 * r
v = BV_0 + RI/(1 + r - w)
return v
# BV_0:当期净资产
# NI_1:下期净利润
# r:折现率
# w:可持续因子
将之前的参数传入模块,除以个股数计算每股股价即可。最后结果为¥28:
total_share = pro.daily_basic(ts_code=code, trade_date='20211231', fields='total_share')["total_share"][0]*10000
print(RI_persistent_mod(bv, ni, r, 0.95)/total_share)
# 27.99467127080234
上面的代码看着简单,因为很多模块都是现成的,以前也做过很多铺垫了,笔者认为这是水到渠成的事情。
有了封装好的模块,敏感性分析,情景分析,压力测试就都可以做了。下面以可持续因子的敏感性分析为例,给定w的阈值从0到1,将结果 输出到图表上:
import matplotlib.pyplot as plt
values = []
w_lst = []
for i in range(100):
w = 1-i/100
price = RI_persistent_mod(bv, ni, r, w)/total_share
values.append(price)
w_lst.append(w)
plt.plot(w_lst, values)
plt.show()
图三:可持续因子敏感性分析
简单说一说吧,仅作举例。从敏感性分析可以看出,w取[0,1]时,该公司的价值区间为¥21到¥32。该价值曲线呈现凸性,即w降时,w的降低对价值影响不断边际降低;当w较高时,w的变化对估值影响较大,即价格到26甚至更高时,例如财报不及预期,产品出现质量丑闻等一些小小的基本面瑕疵,都非常有可能引发估值水平的较的回调。当然,以上结论仅仅只针对可持续因子一个变量,实际需要结合其它变量做更复杂的分析,不是本期重点,仅作举例就不继续分析了。
简单总结一下剩余收益的优点吧:
1):在折现公式中不难发现,占价值大头的是当期净资产账面价值,未来的剩余收益毕竟只占较小一部分。因此剩余收益对终值的敏感度很低,而账面价值的数据是直接可以从财报拿到的,提高了估值的准确性;2):剩余收益体现了公司为股东创造的经济价值;3):对于不分红的公司或现金流为负数的公司,剩余收益是不错的估值方式;
当然,缺点也是有的:
1):过度依赖账面价值进行估值,对于报表不能如实反应资产价值的情况下,剩余收益估出来的价值很可能是有偏的;2):没有考虑到公司表外项目,例如人才资本,特殊目的实体等。当然,分析师可以对报表进行调整,但需要做大量的工作。3):剩余收益的多期推导严重依赖财务及其报表勾稽关系,例如净剩余关系成立;
剩余收益的公式是比较多的,比起公式的推导笔者认为更重要的还是理解背后的经济含义。
往期精选 | ||
系列 | 文章传送门 | 实现方式 |
基本面分析 | 实现GGM的理想国 | Python |
剩余收益估值(本期) | Python | |
Fama-French及PSM | Python | |
增速g的测算 | Python | |
PE指标平滑 | Python | |
PE Band | Python | |
技术分析 | 分类树算法 | R |
蒙特卡洛模拟 | Python | |
全连接神经网络模型 | Python | |
组合管理 | 券商金股哪家强——信息比率 | Python |
从指数构建原理看待A股的三千点魔咒 | Python | |
决策树学习基金持仓并识别公司风格类型 | R | |
杂谈类 | 垃圾公司对回报率计算的影响几何 | Python |
市场风险分析 | Python | |
金融危机模拟 | Python |
文章浏览阅读1k次。Latex 语法_\latex
文章浏览阅读9.6k次,点赞20次,收藏21次。单应矩阵的概念、计算原理和重投影误差评分
文章浏览阅读737次。目录前言一、GCC编译1.编译链接流程二、使用步骤1.引入库2.读入数据总结前言记录GCC和GDB的学习笔记一、GCC编译1.编译链接流程以File.c为例子File.i : 经过编译预处理的源代码;File.s : 汇编处理后的汇编代码;File.o : 编译后的目标文件,即含有最终编译出的机器码,但它里面所引用的其他文件中函数的内存位置尚未定义File.out:可执行文件C源程序头文件-->预编译处理(cpp)-->编译程序-->优化程序-->汇编程_编译gcc gdb
文章浏览阅读1.3k次。未写转载于:https://www.cnblogs.com/ikihsiguoyr/p/10372635.html
文章浏览阅读293次。决策表决策表 - 百度百科决策表又称判断表,是一种呈表格状的图形工具,适用于描述处理判断条件较多,各条件又相互组合、有多种决策方案的情况。精确而简洁描述复杂逻辑的方式,将多个条件与这些条件满足后要执行动作相对应。但不同于传统程序语言中的控制语句,决策表能将多个独立的条件和多个动作直接的联系清晰的表示出来决策树决策树 - 百度百科决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运_决策表 决策树
文章浏览阅读4k次,点赞18次,收藏171次。description: 整理自己看过和待看的一些主要关于图像分割包括其他领域的论文,不定时更新…综述篇Deep learning for cardiac image segmentation: A review [2019]Deep Semantic Segmentation of Natural and Medical Images: A Review [2019]Understanding Deep Learning Techniques for Image Segmentation
文章浏览阅读86次。1.RadioButtonRadioButton被称作为单选框,通常都是以组的形式出现,可以在一组控件中选择一个。RadioButton的使用首先需要加入<RadioGroup/>,在这个组中,我们进行单选按钮的声明。 1 <RadioGroup 2 android:id="@+id/radioGroup" 3 an..._radiobutton和toggombutton
文章浏览阅读2.5k次,点赞3次,收藏12次。作为智能硬件开发,你一定要知道开发板是个什么东西?如果您有和智能硬件开发人员打交道,或者贵公司正好有智能硬件的开发需求,又或者你正在学习关于智能硬件方面的知识,那么你一定听过『开发板』这个词语。///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程和毕业设计指导,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像白色字体加我也能领取哦,记得口令陈老师///开发板(demoboard)是用来进行嵌入式系统开发的电路板,包括中央处理器、存储器、输入设备、输出设备、数据通路/总线和外部资源接口等_硬件工程师的芯片demo板 开发板
文章浏览阅读7.5k次,点赞16次,收藏143次。分享一下今天对某app的合法渗透测试,从基础的信息收集到拿到网站的shell的过程。_渗透实战
文章浏览阅读4.9k次。在一个比较大的.net程序编译中,报告错误,找不到引用microsoft.office.core,从程序下的文件夹下找也找不到 microsoft.office.core.dll文件,在office的安装文件夹下也找不到,重装了office也不行,后来上网找了找,才知道了 解决办法。在控制面板中,选择“添加删除程序”,找到office ,选择“更改”,在对话框中选择“添加删除功能”,然后选_未安装 office using microsoft.office.core
文章浏览阅读1.6k次。 6月份,毕业了,炎炎夏日加上几只属苍蝇的知了,我知道这些并不是自己心里烦躁的理由,长吸一口气,我的未来在哪里?问题找到了,但答案在哪里? 宿舍的几位同僚,义无反顾的整理好皮箱奔向大城市去打天下,送走他们,告别已经分手的女朋友,拿着自己的三证和一堆宝贝技术书籍,决定先回家。 家里永远都是最温暖的,回家后第一次见到我刚出生几个月的外甥,这小子可爱极了,老乐呵_flyfish365
文章浏览阅读1.7k次。文章链接:https://blog.csdn.net/q_z_r_s机器感知一个专注于SLAM、机器视觉、Linux 等相关技术文章分享的公众号/* 最终进入命令解析模式 */DECLARE_GLOBAL_DATA_PTR;ulong monitor_flash_len;static int run_main_loop(void){#ifdef CON..._config_board_early_init_r