xts包:时间序列分析利器

Posted R语言数据分析与实践

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xts包:时间序列分析利器相关的知识,希望对你有一定的参考价值。


股票交易有着大量的历史数据, 人工对这些数据进行标记是非常困难的. 对数据挖掘而言, 这些带有时间标签的数据通常归为“时间序列”数据, 本篇文章将通过每日交易数据, 介绍xts包在处理时间序列数据的强大之处.

股票变化图像近似魏尔斯特拉斯函数, 此类函数的特点是“处处连续、处处不可导”, 因此常见的线性回归预测股票走势均不可靠.


有效市场假设

有效市场假设理论认为: 市场价格调整上适应之快, 以至于根本没有空间可以得到稳定的收益. 即由于短暂的市场无效, 市场还是有一些交易机会空间的.


股票交易的总体目标是维持一个基于买卖订单的股票组合. 长期目标就是从这些股票交易中获取尽可能多的利润.因此,预测模型将包含进一个交易系统中, 该交易系统应用模型的预测结果来生成决策. 总体的评估标准就是该交易系统的性能——该交易系统的交易所产生的利润或者损失, 以及对投资者有意义的一些其他统计指标.


标准普尔指数

本篇文章采用股票市场指数——标准普尔指数. 通过标准普尔500指数的历史数据来预测未来的指数变化.对于给定的证券和初始资金, 通过交易行为(买入、卖出、持有),在未来一段测试期中使利润最大化.

通过数据挖掘技术得到的结果给出信号,然后据此作为决策的基础来制定交易策略.


数据获取

直接从网站https://finance.yahoo.com 下载交易标准普尔500指数的日常数据.(yahoo财经中, 标准普尔500指数的股票编号为GSPC) 数据是xts类的, 在股票处理中可以当作矩阵或者数据框进行操作.


1

股票交易数据

股票的日交易数据应该包括下面几个属性:

  • 交易日价

  • 当日开盘价

  • 当日最高价

  • 当日最低价

  • 当日收盘价

  • 当日成交量

  • 当日调整后的收盘价(该价格是调整了股票分割、分红、配股等之后的价格)


时间序列数据

在R中处理与时间有关的数据, 即每个观测值有一个时间标签.该类数据通常称为时间序列数据.
由于每个观测值都有一个给定的时间标签,所以时间序列数据的重要特征是观测值之间的先后顺序.
一般来说, 时间序列就是随机变量Y的一组有序的观测值, 即
y1,y2,y3,y4,...,yt,...yn
,其中yt是时间序列变量Y在时间t的观测值

时间序列分析的主要目的是根据变量历史观测值y1,y2,y3,...,yt来构造一个模型, 并由此对时间序列未来的取值进行预测,即yn

股票数据中, 由于在同一个时间点上观测了多个变量, 所以该类型的时间序列常称为多元时间序列.

1

xts包

R中有许多处理时间序列的packages, 根据不同数据的性质, 针对股票数据, 这里使用xts包进行分析.

xts包是处理时间序列数据一个非常强大的pacakges.

第一次使用xts包, 需要使用命令安装:

> install.packages("xts")

xts包:时间序列分析利器

创建和应用xts对象


xts包:时间序列分析利器

提取前5个记录


xts包:时间序列分析利器

省略部分结果


函数xts( )的第一个参数接受时间序列数据. 数据类型可以是一个向量; 对于多元时间序列来说, 该参数也可以是一个矩阵. xts中不含有混合类型的数据.

当接收值为一个矩阵时, 矩阵的每一列为一个变量在不同时间点(即每一行)上的抽样值.

xts( )的第二个参数是时间标签, 可以是R时间类的任何一种形式. 常用的两个时间类: POSIXct(或POSIXlt)和Date.

xts包中时间标签一般格式为:

CCYY-MM-DD HH:MM:SS[.s]

xts包:时间序列分析利器

构建多元时间序列


xts包:时间序列分析利器

获取时间序列的观测值


index( )和time( )可以用来“获取”任意xts对象的时间标签信息, coredata( )函数用来获取时间序列的观测值.


xts对象可以用于存储带有不规则时间标签的多元时间序列, 它足以用来存储股票交易数据, 并能提供强大的子集索引功能.


推荐阅读



R语言数据分析与实践

建模专题

思想常新者,以数据为其探寻之源


以上是关于xts包:时间序列分析利器的主要内容,如果未能解决你的问题,请参考以下文章

时间序列 || plot.xts时间序列可视化

Python中的结构化数据分析利器-Pandas简介

网络分析利器:Tshark

xts 变量带“-”

性能分析图表中的修改

将 XTS 对象作为数据帧存储在 R 的列表中