热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

时间序列_金融思维模型之“时间序列”

篇首语:本文由编程笔记#小编为大家整理,主要介绍了金融思维模型之“时间序列”相关的知识,希望对你有一定的参考价值。在金融领域里,如果说那

篇首语:本文由编程笔记#小编为大家整理,主要介绍了金融思维模型之“时间序列”相关的知识,希望对你有一定的参考价值。




在金融领域里,如果说那种数据组织方式是最主要的,那就非“时间序列”莫属啦。从股票的价格,到GDP的数值,再到公司的财务数据,都随着时间的演进而不停的变化。按照时间的先后顺序,将观察变量在不同时点的不同数值组织起来,构成一个序列,就称之为“时间序列”。


在这一篇中,我们就来谈谈“时间序列”,及其常用的分析方法和它们背后蕴含的金融思维。



什么是时间序列


如果我们对某一个或者某一组变量x(t)进行观察测量,在一系列的时刻t1,t2,…,tn,得到变量的观察值x1,x2,…,xn,这组数字就构成了时间序列。


例如,某只股票在2018年1月1日至2018年8月8日的每日收盘价,就构成了一个时间序列。每个季度国家统计局发布的GDP增长数字,也构成了一个时间序列。


时间序列常常具备以下的几个特征:



  • 趋势:是时间序列在长时期内呈现出来的持续向上或持续向下的变动。


  • 季节变动:是时间序列在一年内重复出现的周期性波动。它是诸如气候条件、生产条件、节假日或人们的风俗习惯等各种因素影响的结果。


  • 循环波动:是时间序列呈现出的非固定长度的周期性变动。循环波动的周期可能会持续一段时间,但与趋势不同,它不是朝着单一方向的持续变动,而是涨落相间的交替波动。


  • 不规则波动:是时间序列中除去趋势、季节变动和周期波动之后的随机波动。不规则波动通常总是夹杂在时间序列中,致使时间序列产生一种波浪形或震荡式的变动。只含有随机波动的序列也称为平稳序列。



在时间序列的各个特性中,平稳性具有特殊重要的意义。粗略的讲,所谓平稳时间序列是指,该序列的均值没有系统的变化(无趋势)、方差也没有系统的变化(固定波动),且严格消除了周期性变化。我们来看一个例子。


金融思维模型之“时间序列”

时间序列的样本


上图中的第一张子图为上证综指今年以来的收盘点数,是一个非平稳时间序列;第二张子图是上证综指每天的涨跌幅,平稳性要好了很多;第三张和第四张子图是依次对第二张子图中的时间序列进行差分处理,随着差分的进行,均值和方差基本平稳,因而成为了平稳时间序列。


在数学上,平稳性有两个层级的定义,这里我们用通俗的语言简单加以概括:



  • 严平稳:时间序列中任意两个长度相等的子段,其联合分布相同。表达了时间序列的时间平移不变性。


  • 弱平稳:时间序列的均值为常数,任意两个长度相同的子段之间的协方差相同。



在金融数据中,通常我们所说的平稳序列,是指弱平稳的序列。如果一个时间序列不是平稳的,通常我们可以通过一次或者多次的差分操作,将它转换成为弱平稳或者近似弱平稳的时间序列。


这里大家对时间序列的平稳性有一个直观的概念就可以了,后面还会用到它。



如何表达时间序列


从信号与系统的角度来看,时间序列可以看作是对信号的定时采用。因而,不同的时间序列可能有不同的采样频率。


采样频率


通常,金融数据的采样频率有如下几种:



  • 实时:股票或者期货市场中实时价格数据,也称为Tick数据,这是目前最高频的金融时间序列啦。


  • 分钟:交易数据中常见的有1分钟,5分钟,30分钟,60分钟的价格数据,技术分析中很常用。


  • 每日:盘后,交易数据会形成当天的收盘价格,根据它可以计算当日的各种技术指标,每股数据等,比如20日均价以及市盈率。


  • 每月:经济数据中,国家统计局会发布月度房地产开发投资,进出口数据,发电量,社会消费品零售总额,城镇固定资产投资,规模以上工业增加值等宏观经济数据。


  • 每季:上市公司的财务报表需要每季度发布,国家统计局会发布GDP,CPI,PPI等宏观经济数据。基金公司需要发布季报。


  • 半年:上市公司需要发布半年度财务报表。基金公司需要发布半年报。


  • 年度:上市公司需要发布年度财务报表。基金公司需要发布年度报告。



金融思维模型之“时间序列”

不同采样频率的时间序列示例


序列插值


在量化分析中,我们主要针对的就是金融时间序列。由于不同时间序列的采样频率不同,通常需要通过序列插值将参与计算的时间序列进行同频化。举个例子,比如我们需要计算股票的每日市盈率。我们知道,财务数据的发布频率是每季,股票收盘价格数据是每日的,这样我们需要先将财务数据从每季扩频插值到每日,然后就可以通过价格除以每股收益来得到当日的市盈率了。


这种财务数据的扩频插值方法,常用的有以下几种,我们以市盈率为例:



  • 静态插值:当前的总市值 / 上一年度的公司净利润。在新的年度净利润发布之前,都是用上一年度的。


  • TTM插值:当前的总市值 / 最近四个季度的净利润之和。在新的季度净利润发布之后,将其加入计算,而将之前最早的那个季度数据丢弃。


  • 动态插值:当前的总市值 / 未来一年的预测净利润。在新的预测发布之前,一直使用当前的预测。



在实际使用中,TTM插值最为常用。它可以调和不同公司选择不同的财务报表发布日期,比如美股允许上市公司自行选择财务年度的截止时间,从而导致同一时间有的公司在发上年年报,而有的公司却在发当年中报。


金融思维模型之“时间序列”

根据季度更新的财务数据和每日更新的价格数据计算每日市盈率



时间序列能做什么


有了时间序列,除了能够进行常用的指标计算(比如20日均价,市盈率等)之外,最重要的用处在于发现序列自身以及序列之间的关系。一旦这种关系确立起来,我们就能够预测序列的未来值。


相关关系


对于序列分析来说,最重要的是看看它们之间是否存在相关关系。




如何来衡量两个序列之间是否相关呢?



一个很自然的想法,是系列可以看作高维的向量,因而可以基于向量与向量之间的夹角来作为距离的定义。夹角越小,距离越小,则两个向量的关联度就越大。


向量夹角的计算,就需要用到余弦公式:

金融思维模型之“时间序列”

我们将向量之间的内积与模长定义带入到余弦公式,就可以得到序列的相关系数的定义:

金融思维模型之“时间序列”

其中,序列X和Y都进行了单位化的操作,通过减去均值去掉相对于原点的偏移,除以方差去掉各自的长度。


有了相关系数,我们就能够定量的衡量序列的关联程度了。



  • 相关系数为1,意味着两个序列同向平行,高度正相关(如影随形);


  • 相关系数为-1,意味着两个序列反向平行,高度负相关(南辕北辙);


  • 相关系数为0,则表示两个序列相互垂直,完全不相关(鸡同鸭讲)。



自相关


我们把相关关系作用于序列自身,能够得到序列的过去和序列的现在之间的关系,这个时候得到的相关系数称之为自相关系数。


例如,一个弱平稳序列{rt}的间隔为l的自相关系数为:

金融思维模型之“时间序列”

通过自相关分析,我们可以统计出一个价格序列是否是自相关的。比如前文给出的上证指数的收盘价格序列就是自相关的,这一点和我们的直觉相吻合。通常,我们通过指数的收盘价格的均价可以大致推算出下一个交易日的价格范围。然而,上证指数的涨跌幅序列是没有显著的相关性的,也就是说我们不能通过过去几日的涨跌幅推算出下一个交易日的涨跌幅。


由于上证指数的收盘价格序列是自相关的,我们可以通过构造一个自回归模型,来预测未来的价格走势。其基本模型如下:


通过历史数据,可以拟合出模型的参数。在此基础上,就可以对未来价格进行预测啦。


互相关


我们把相关关系作用到两个或者多个不同的时间序列上来,就可以得到序列之间的互相关系数。


在资本资产定价模型中,我们可以通过股票的收盘价格序列与指数的收盘点数序列进行相关分析,从而得到它们之间的贝塔系数。这个数值很有用,可以通过它直观的得到股票价格涨跌与大盘指数涨跌之间的关联强度,并可以在对冲操作中用于计算风险敞口。



招商银行相对于沪深300指数的贝塔系数



总结


时间序列是金融数据的最主要表示方式,如果想从数据中挖掘出有价值的规律或者信息,就需要好好理解并牢牢掌握它。


推荐阅读
  • 距离11月的软考还有不到五个月的时间,考试将于11月5日至6日举行。许多朋友对软考的具体情况还不太了解:它是什么?有何用途?本文将为你详细解答。 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 优化ASM字节码操作:简化类转换与移除冗余指令
    本文探讨如何利用ASM框架进行字节码操作,以优化现有类的转换过程,简化复杂的转换逻辑,并移除不必要的加0操作。通过这些技术手段,可以显著提升代码性能和可维护性。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • python的交互模式怎么输出名文汉字[python常见问题]
    在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>,此时我们可以使用print() ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 如何查找和管理计算机中的C盘临时文件
    本文详细介绍了如何在计算机中找到和管理C盘的临时文件,包括其具体路径、环境变量设置方法以及清理这些文件对系统性能的影响。对于希望优化系统性能和释放磁盘空间的用户来说,这是一篇非常有价值的参考。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
author-avatar
C3calm_daidai_649
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有