本专栏上期文章论述了使用每股收益历史数据分析上市公司普通股东所持股权价值的理论依据、计算指标和实际操作方法,同时也提到了公司每股收益历史时间序列受众多因素复合影响从而单一使用每股收益数据会使模型出现较大的误差。因此,本期将对公司利润表数据维度进行拆解,剖析利润表收益的组成要素,进行多层次的公司获利能力分析。

上市公司的利润表结构

国内上市公司定期发布的财务报表有普通、银行、证券、保险四类结构规范,上市公司按其实际行业采用相应的结构规范发布数据。以普通行业为例,如下树状图,综合收益总额可按利润表结构进行逐级分解剖析;树状图同级节点按确定关系合成父节点。

​在实际分析应用过程中,尤其是在全市场利润表批量分析时,为了保证时间序列样本量充足,以及横向对比一致,可将历史上已淘汰或存在时间不长或相对次要的树状图节点进行整合简化,如下图例。

​经过拆解处理后,父节点的时间序列模型可按子节点的时间序列模型合成。除简单的加减合成之外,还可以合理加入更多关系模式,以使分析更符合实际需要。例如:

  1. 固定的配额关系,比如所得税和利润总额的关系;

  2. 非固定的衍生关系,比如营业成本变化受营业收入规模牵引,可使用营业成本相对营业收入比率建立时间序列模型(而非直接建立时间序列模型)。

依据上述方法构建各维度之间关联关系,建立一个可进行多层次收益分析的联立时间序列集模型。

利润表模型及股权价值计算的代码实现

分析者可直接使用Python库valuequant实现利润表联立时间序列集建模和股权价值计算。valuequant的时间序列集建模功能可按以下4种维度模型描述时间序列集内各时间序列的关联关系:

  1. 自驱动模型(auto):时间序列模型使用本身样本数据建模;

  2. 衍生模型(derive):使用本身样本数据和另一个时间序列(base)样本数据的比值建立时间序列模型,再在推演或者指标计算的过程中使用该比值时间序列模型和另一个时间序列(base)模型进行计算;

  3. 复合模型(compo):使用树状图中子节点的时间序列模型加减合成父节点模型;

  4. 配额模型(quota):使用另一个时间序列模型乘以固定比率计算获得。

分析者可按需要分析的时间序列集样本数据和维度关系结构在valuequant以下功能中进行选择:

  1. ModelSets:使用自定义的时间序列集样本数据表和自定义维度关系结构;

  2. StockModelSets:使用valuequant内置的利润表每股复权数据,使用自定义维度关系结构;

  3. StockFrameSets:使用valuequant内置的利润表每股复权数据以及valuequant内置维度关系结构。

上述功能皆可使用本专栏前期介绍的时间序列模型及股权价值指标分析方法,详细使用方法请阅读valuequant官网文档。以下仅以StockFrameSets做简要示例:

>>> import valuequant as vq
>>> vq.login('<boomevolve用户名>','<登陆密码>') #可登陆www.boomevolve.com官网注册用户
>>> #使用StockFrameSets功能,以移动平均严格状态更新模型为例
>>> modelset=vq.StockFrameSets.ma_strict_latest_status_frameset(stockcode='<6位证券代码>',reportdate='2019-06-30',mawindow=4,minstep=8,seasonal=True)
>>> modelset.modelset() #获取建模信息
{'营业收入': {'mode': 'auto', 'model': {'method': 'l1', 'step': 19, 'params': {'l1_diff': 0.311157, 'value_latest': 6.86161}, 'status': {'l1': '+', 'l2': 'n'}, 'seasonal': {'12': 0.845102, '3': 0.963907, '6': 1.16566, '9': 0.988218}, 'qorder': ['9', '12', '3', '6']}}, '营业其他损益': {'mode': 'auto', 'model': {'method': 'random', 'step': 20, 'params': {'value_mean': 0.094849}, 'status': {'l1': 'n'}, 'seasonal': {'12': 0.791566, '3': 0.917961, '6': 0.97819, '9': 1.123594}, 'qorder': ['9', '12', '3', '6']}}, '营业外收入': {'mode': 'auto', 'model': {'method': 'random', 'step': 37, 'params': {'value_mean': 0.022223}, 'status': {'l1': 'n'}, 'seasonal': {'12': 1.097533, '3': 0.779274, '6': 0.782752, '9': 1.013541}, 'qorder': ['9', '12', '3', '6']}}, '营业外支出': {'mode': 'auto', 'model': {'method': 'random', 'step': 64, 'params': {'value_mean': 0.002063}, 'status': {'l1': 'n'}, 'seasonal': {'12': 0.987368, '3': 0.567723, '6': 0.97217, '9': 1.097135}, 'qorder': ['9', '12', '3', '6']}}, '综合收益其他': {'mode': 'auto', 'model': {'method': 'random', 'step': 38, 'params': {'value_mean': 0.000804}, 'status': {'l1': 'n'}, 'seasonal': {'12': 0.194691, '3': 0.969122, '6': 1.786997, '9': 2.484854}, 'qorder': ['9', '12', '3', '6']}}, '营业成本': {'mode': 'derive', 'base': '营业收入', 'model': {'method': 'random', 'step': 19, 'params': {'value_mean': 0.701704}, 'status': {'l1': 'n'}, 'seasonal': {'12': 0.998823, '3': 0.996965, '6': 0.9915, '9': 1.012694}, 'qorder': ['9', '12', '3', '6']}}, '营业税金及附加': {'mode': 'derive', 'base': '营业收入', 'model': {'method': 'random', 'step': 64, 'params': {'value_mean': 0.003676}, 'status': {'l1': 'n'}, 'seasonal': {'12': 1.094788, '3': 0.856375, '6': 0.917208, '9': 1.061862}, 'qorder': ['9', '12', '3', '6']}}, '销售费用': {'mode': 'derive', 'base': '营业收入', 'model': {'method': 'random', 'step': 50, 'params': {'value_mean': 0.140519}, 'status': {'l1': 'n'}, 'seasonal': {'12': 0.960087, '3': 1.074465, '6': 1.002778, '9': 0.963031}, 'qorder': ['9', '12', '3', '6']}}, '管理费用': {'mode': 'derive', 'base': '营业收入', 'model': {'method': 'random', 'step': 28, 'params': {'value_mean': 0.065981}, 'status': {'l1': 'n'}, 'seasonal': {'12': 1.112289, '3': 1.013182, '6': 0.969079, '9': 0.931828}, 'qorder': ['9', '12', '3', '6']}}, '财务费用': {'mode': 'derive', 'base': '营业收入', 'model': {'method': 'random', 'step': 48, 'params': {'value_mean': -0.000395}, 'status': {'l1': 'n'}, 'seasonal': {'12': 1.229459, '3': 0.784666, '6': 1.705417, '9': -0.069612}, 'qorder': ['9', '12', '3', '6']}}, '营业其他费用': {'mode': 'derive', 'base': '营业收入', 'model': {'method': 'random', 'step': 54, 'params': {'value_mean': 0.002403}, 'status': {'l1': 'n'}, 'seasonal': {'12': 1.999232, '3': 1.265865, '6': 0.13811, '9': 0.881981}, 'qorder': ['9', '12', '3', '6']}}, '营业总收入': {'mode': 'compo', 'plus': ['营业收入'], 'minus': []}, '营业总成本': {'mode': 'compo', 'plus': ['营业成本', '营业税金及附加', '销售费用', '管理费用', '财务费用', '营业其他费用'], 'minus': []}, '营业利润': {'mode': 'compo', 'plus': ['营业总收入', '营业其他损益'], 'minus': ['营业总成本']}, '利润总额': {'mode': 'compo', 'plus': ['营业利润', '营业外收入'], 'minus': ['营业外支出']}, '税后利润': {'mode': 'quota', 'quota': 0.75, 'base': '利润总额'}, '净利润': {'mode': 'compo', 'plus': ['税后利润'], 'minus': []}, '综合收益总额': {'mode': 'compo', 'plus': ['净利润', '综合收益其他'], 'minus': []}}
>>> modelset.forecast('综合收益总额',t=20) #样本外推演20步
2019-09-30 0.557150
2019-12-31 0.464476
2020-03-31 0.510485
2020-06-30 0.765593
……
>>> modelset.pv('综合收益总额',r=0.1) # 贴现率10%的贴现值
58.060598
>>> modelset.irr_trade('综合收益总额',pricemode='close',tradedate='2019-08-08') #某交易日收盘价的内部收益率背书
0.253968
>>> modelset.achieverate_trade('综合收益总额',pricemode='close',tradedate='2016-08-08',r=0.1) #历史某交易日价格按10%贴现率的兑现率
4.225196

使用Python库valuequant和利润表历史数据计算股权价值相关推荐

  1. python扩展库用于科学计算的有哪些_数据科学必备的十大 Python 库

    ​Python 已成为当今使用最广泛的编程语言之一,尤其是在数据科学领域. Python 是一种高性能的语言,易于学习和调试,并且具有广泛的库支持.这些库都有自己独特的功能,一些专注于数据挖掘,一些专 ...

  2. Python ISBN号概述,校验位计算,10位-13位转换,验证,连字符,及常用库isbnid,isbnlib,isbntools的使用

    ISBN概述 因为工作原因经常需要用到ISBN.ISBN是国际标准书号的简称(International Standard Book Number),主要用于标识文献,也即是文献的"身份证号 ...

  3. 唐宇迪学习笔记1:Python环境安装、Pytho科学计算库——Numpy

    目录 一.AI数据分析入门 ​1.案例来源 2.Python环境配置(Python3) Python的安装 Python库安装工具 Jupyter Notebook 二.Python科学计算库--Nu ...

  4. 错过这15个顶级Python库,你就不算Python程序员

    为什么我喜欢Python?对于初学者来说,这是一种简单易学的编程语言,另一个原因:大量开箱即用的三方库,正是23万个由用户提供的软件包使得Python真正强大和流行. 在本文中,我挑选了15个最有用的 ...

  5. 股票数据爬虫进阶:免费、开源的股票爬虫Python库,实测真香

    ​​ 数量技术宅团队在CSDN学院推出了量化投资系列课程 欢迎有兴趣系统学习量化投资的同学,点击下方链接报名: 量化投资速成营(入门课程) Python股票量化投资 Python期货量化投资 Pyth ...

  6. 53个Python库,你必须要试试

    Python库大全 大邓将Python库整理为8部分,对每个库稍加自己的理解和评价,对Python感兴趣的同学可以收藏起来 •网络爬虫 •数据库 •数据分析 •机器学习 •可视化 •文本分析 •GUI ...

  7. Python库全部整理出来了,非常全面

    库名称简介 Chardet 字符编码探测器,可以自动检测文本.网页.xml的编码. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable 主要用于在终端或浏览器端构 ...

  8. 2021年最有用的数据清洗 Python 库

    作者 | 周萝卜 来源 | 萝卜大杂烩 大多数调查表明,数据科学家和数据分析师需要花费 70-80% 的时间来清理和准备数据以进行分析. 对于许多数据工作者来说,数据的清理和准备也往往是他们工作中最不 ...

  9. 用于小型图形挖掘研究的瑞士军刀:空手道俱乐部的图表学习Python库

    作者 | Benedek Rozemberczki 译者 | 天道酬勤 责编 | Carol 出品 | AI科技大本营(ID:rgznai100) 空手道俱乐部(Karate Club)是Networ ...

最新文章

  1. 图像的低频是轮廓,高频是噪声和细节 小波变换
  2. 【译】开发大型 Angular 应用的12条架构清单
  3. 打开逻辑STANDBY写入功能
  4. 【JDBC】Eclipse连接Mysql
  5. 关于Linux的总结(三)
  6. 一文读懂 Serverless,将配置化思想复用到平台系统中
  7. TypeError: __init__() got an unexpected keyword argument ‘任意数‘的原因及解决办法
  8. 收藏 | 一文带你深入理解深度学习最新进展
  9. mysql查询语句块_mysql查询语句
  10. RabbitMQ实例教程:用Java搞定工作队列
  11. OpenVINO DL workbench的docker安装
  12. 《廖雪峰python3教程》| 书评 + 学习笔记干货
  13. 分享一个千万数据的磁力搜索网站 bt书虫 php+mysql+nginx
  14. MySQL 读写分离原理
  15. 博弈论(四)——#10246. 「一本通 6.7 练习 3」取石子
  16. java线上培训班学费一般多少,成长路线图
  17. 爬虫-3-requests和代理
  18. RC(Cadence RTL Compiler)物理综合
  19. Windows 开启护眼模式 | Windows护眼软件
  20. AHRS、IMU和INS对比

热门文章

  1. mysql根据班级排序语文成绩_mysql 成绩排序
  2. (windows)Hexo博客建站$ npm install -g hexo-cli时遇到npm ERR! Response timeout……的解决方案
  3. php wx.downloadimage,大神,wx.downloadImage 图片过期问题
  4. 高通AP侧新增AT命令流程
  5. 如何让BERT拥有视觉感知能力?两种方式将视频信息注入BERT
  6. Manjaro更换系统默认字体,主题
  7. 微软与索尼赋能计划已启动,旨共同创造新技术生态系统
  8. 2022年国内外大数据工程师薪资大比拼
  9. Sql serever的语句
  10. 【机器学习】常见问题