时间序列

pandas数据分析基础之时间序列

允我心安 提交于 2020-01-31 11:27:14
目录 一、时间序列是什么 二、时间序列的选取-时间字符串/at_time/between_time/asof 三、时间序列的生成-datetime/date_range(start,end,perios,freq) 四、时间序列的偏移量对照表-freq 五、时间序列的前移或后移-shift/通过Day或MonthEnd 五、时区处理-tz/tz_convert 六、时期及算术运算-period 七、频率转换-resample 一、时间序列是什么 时间序列在多个时间点观察或测量到的任何事物,很多都是固定频率出现 的,比如每15秒、每5分钟、每月。 padnas提供了一组标准的时间序列处理工具和数据算法,基本的时间序列类型是以时间戳为索引的Series。 当创建一个带有DatetimeIndex的Series时,pandas就会知道对象是一个时间序列,用Numpy的datetime64数据以纳秒形式存储时间。 dates=[ datetime(2020,1,2),datetime(2020,1,5),datetime(2020,1,7), datetime(2020,1,8),datetime(2020,1,10),datetime(2020,1,12) ] ts=pd.Series(np.random.randn(6),index=dates) ts 2020-01-02 -0

时间序列学习笔记(三)

自作多情 提交于 2020-01-30 02:47:34
时间序列学习笔记(三) 随机游走 假定{w t }为白噪声,均值为0,方差为σ 2 ,如果 X t = μ + X t − 1 + w t X_t=\mu+X_{t-1}+w_t X t ​ = μ + X t − 1 ​ + w t ​ 则过程{X t }称为带有漂移μ的的 随机游走(随机徘徊) ,如果X 0 固定,那么 有 X t = μ t + X 0 + ∑ t = 1 t w i X_t=\mu t+X_0+\sum^t_{t=1} w_i X t ​ = μ t + X 0 ​ + t = 1 ∑ t ​ w i ​ 因此 E ( X t ) = μ t + X 0 E(X_t)=\mu t+X_0 E ( X t ​ ) = μ t + X 0 ​ V a r ( X t ) = t σ 2 Var(X_t)=t\sigma^2 V a r ( X t ​ ) = t σ 2 随t变换的均值及方差意味着该过程是非平稳的。然而,随机游走的一阶差分 ∇ X t = X t − X t − 1 = μ + w t \nabla X_t=X_t-X_{t-1}=\mu+w_t ∇ X t ​ = X t ​ − X t − 1 ​ = μ + w t ​ 是一个纯随机过程。它是平稳的。 下图为带漂移(μ=0.05)的随机游走(左上)及其样本自相关函数图(右上)以及原序列差分

数学建模时间序列分析

喜你入骨 提交于 2020-01-29 04:29:46
代码 移动平均法 用公式 指数平滑法 一次,二次,三次 预测模型 看书 加权系数选择 波动不大小一些,波动大大一些 平均值为初始值 差分指数平滑法 具有季节性的时间序列预测 p179 平稳时间序列 ARMA序列自回归移动平均序列 来源: CSDN 作者: hyoer 链接: https://blog.csdn.net/weixin_44853593/article/details/104088102

如何预测股票分析--自动ARIMA

爱⌒轻易说出口 提交于 2020-01-24 15:55:14
在 上一篇 中,我们发现knn和线性回归一样,表现的不是特别好,来看看时间序列的表现 时间序列预测法其实是一种回归预测方法,属于定量预测,其基本原理是;一方面承认事物发展的延续性,运用过去时间序列的数据进行统计分析,推测出事物的发展趋势;另一方面充分考虑到偶然因素影响而产生的随机性,为了消除随机波动的影响,利用历史数据进行统计分析,并对数据进行适当处理,进行趋势预测。 自动ARIMA ARIMA是一种非常流行的时间序列预测统计方法。ARIMA模型使用过去的值来预测未来的值。ARIMA中有三个重要参数: p(用来预测下一个值的过去值) q(用来预测未来值的过去预测误差) d(差分的顺序) ARIMA的参数优化需要大量时间。因此我们将使用自动 ARIMA,自动选择误差最小的(p,q,d)最佳组合。 顺便插一句,如果不使用自动选择误差的话,你可以通过计算数据的差分,作图然后手动选择p d q的大小,如果你对这一个方向感兴趣,可以小窗我或者底下留言,在这里不多做介绍。 #导入库 from pyramid.arima import auto_arima #按照索引排序 data = df.sort_index(ascending=True, axis=0) #划分训练集、测试集 train = data[:987] valid = data[987:] # 取出两个集合中close这列的数据

python时间序列按频率生成日期

时光毁灭记忆、已成空白 提交于 2020-01-22 23:48:38
有时候我们的数据是按某个频率收集的,比如每日、每月、每15分钟,那么我们怎么产生对应频率的索引呢?pandas中的date_range可用于生成指定长度的DatetimeIndex。 我们先看一下怎么生成日期范围:pd.date_range(startdate,enddate) 1.生成指定开始日期和结束日期的时间范围: In:import pandas as pd index = pd.date_range('4/1/2019','5/1/2019') print(index) Out: DatetimeIndex(['2019-04-01', '2019-04-02', '2019-04-03', '2019-04-04', '2019-04-05', '2019-04-06', '2019-04-07', '2019-04-08', '2019-04-09', '2019-04-10', '2019-04-11', '2019-04-12', '2019-04-13', '2019-04-14', '2019-04-15', '2019-04-16', '2019-04-17', '2019-04-18', '2019-04-19', '2019-04-20', '2019-04-21', '2019-04-22', '2019-04-23', '2019-04-24',

OpenTSDB介绍

爱⌒轻易说出口 提交于 2020-01-19 21:43:34
OpenTSDB 2.0, the scalable, distributed time series database可扩展、分布式时间序列数据库 1、背景 一些老的监控系统,它常常会出现这样的问题: 1)中心化数据存储进而导致单点故障。 2)有限的存储空间。 3)数据会因为时间问题而变得不准确。 4)不易于定制图形。 5)不能扩展采集数据点到100亿级别。 6)不能扩展metrics到K级别。 7)不支持秒级别的数据。 OpenTSDB解决上面的问题: 1、它用 hbase存储所有的时序 (无须采样)来构建一个分布式、可伸缩的时间序列数据库。 2、它支持 秒级数据采集所有metrics ,支持永久存储,可以做容量规划,并很容易的接入到现有的报警系统里。 3、OpenTSDB可以从 大规模的集群( 包括集群中的网络设备、操作系统、应用程序)中 获取相应的metrics并进行存储、索引以及服务 从而使得这些数据更容易让人理解,如web化,图形化等。 对于运维工程师而言,OpenTSDB可以获取基础设施和服务的实时状态信息,展示集群的各种软硬件错误,性能变化以及性能瓶颈。 对于管理者而言,OpenTSDB可以衡量系统的SLA,理解复杂系统间的相互作用,展示资源消耗情况。集群的整体作业情况,可以用以辅助预算和集群资源协调。 对于开发者而言,OpenTSDB可以展示集群的主要性能瓶颈

时间序列学习笔记(一)

不想你离开。 提交于 2020-01-16 01:33:19
时间序列学习笔记(一) 第一次写,不太会写,希望多多包涵 平稳、自协方差函数和自相关函数 平稳性 对于时间序列X 1 ,X 2 ,…,来说如果是 严平稳 的,则满足以下条件 对于任何t 1 ,…,t k ,滞后期τ和k,X t1 ,…,X t2 的联合分布与X t1+τ ,…,X tk+τ 的联合分布相同。如果k=1,那么X t 的分布对所有的t都相同,且均值和方差不随t而变。 对于时间序列X 1 ,X 2 ,…,来说如果是 弱平稳 的,则满足以下条件 X t 的数学期望不随时间而改变,即E(X t )=μ(μ为常数),且任何滞后期τ,X t 与X t+τ 的相关系数Cov(X t ,X t+τ )=γ t ,即该相关系数只依赖于τ,与时间t无关。 显然,平稳时间序列的方差是一个常数,Var(X t )=γ 0 。 注意: 1.除非在某些特定的条件下,平稳性和严平稳之间并没有包含关系。 2.对于正态过程,弱平稳就意味着严平稳。 自协方差函数和自相关函数 记 μ t = E ( X t ) , μ s = E ( X s ) μ_t=E(X_t),μ_s=E(X_s) μ t ​ = E ( X t ​ ) , μ s ​ = E ( X s ​ ) X t 和X s 的 自协方差函数(acvf) 定义为 γ ( t , s ) = C o v ( X t , X s ) = E [

横截面数据、时间序列数据、面板数据

谁说胖子不能爱 提交于 2020-01-15 22:02:14
转载: https://blog.csdn.net/SecondLieutenant/article/details/79625694 面板数据(Panel Data)是将“截面数据”和“时间序列数据”综合起来的一种数据类型。具有“横截面”和“时间序列”两个维度,当这类数据按两个维度进行排列时,数据都排在一个平面上,与排在一条线上的一维数据有着明显的不同,整个表格像是一个面板,所以称为面板数据(Panel Data)。 实际上如果从数据结构内在含义上,应该把Panel Data称为“时间序列-截面数据”,更能体现数据结构本质上的特点。该数据为也被称为“纵向数据(Longitudinal Data)”,“平行数据”,“TS-CS数据(Time Series-Cross Section)”。它是截面上个体在不同时间点的重复测量数据。面板数据从横截面(cross section)看,是由若干个体(entity,unit,individual)在某一时点构成的截面观测值,从纵剖面(longitudinal section)看每个个体都是一个时间序列。 从时空维度来看,可将计量经济学中应用的数据分三类: 1、横截面数据(Cross-sectional data)   横截面数据是指在某一时点收集的不同对象的数据。它对应同一时点上不同空间(对象)所组成的一维数据集合

睿智的seq2seq模型1——利用seq2seq模型对数字进行排列

时光总嘲笑我的痴心妄想 提交于 2020-01-15 14:56:25
睿智的seq2seq模型1——利用seq2seq模型对数字进行排列 学习前言 seq2seq简要介绍 利用seq2seq实现数组排序 实现方式 一、对输入格式输出格式进行定义 二、建立神经网络 1、神经网络的输入 2、语义编码c的处理 3、输出神经网络 4、网络构建部分全部代码 全部实现代码 学习前言 快乐学习新知识,seq2seq还是很重要的! seq2seq简要介绍 seq2seq属于encoder-decoder结构的一种。 seq2seq的encoder是一个常见的循环神经网络,可以使用LSTM或者RNN,当输入一个字符串的时候,可以对其进行特征提取,获得语义编码C。 而decoder则将encoder得到的编码C作为初始状态输入到decoder的RNN中,得到输出序列。 语义编码C是输入内容的特征集合体,decoder可以讲这个特征集合体解码成输出序列。 利用seq2seq实现数组排序 实现的目标如下: 当输入一列无序的数列后,可以对其进行排序。 实现方式 一、对输入格式输出格式进行定义 将输入的1、2、3的格式转化为如下格式,第几位为1代表这个数字是几: 由于数组的序列号是从0开始的,所以: 1转化为[0,1,0,0]; 2转化为[0,0,1,0]; 3转化为[0,0,0,1]。 这样的格式转换更有利于代码处理。 二、建立神经网络 1、神经网络的输入

区别 |时间序列vs线性回归

删除回忆录丶 提交于 2020-01-14 17:57:51
小结: (1)时间序列和回归分析的 核心区别 在于对 数据的假设 :回归分析假设每个样本数据点都是 独立 的;而时间序列则是利用数据之间的 相关性 进行预测。如:时间序列分析中一个基础模型就是AR(Auto-Regressive)模型,它利用过去的数据点来预测未来。 (2)虽然AR模型(自回归模型)和线性回归看上去有很大的相似性。但由于 缺失了独立性 ,利用线性回归求解的AR模型参数会是 有偏的 。但又由于这个 解是一致的 ,所以在实际运用中还是利用线性回归来 近似 AR模型。 (3) 忽视或假设数据的独立性很可能会造成模型的失效 。金融市场的预测的建模尤其需要注意这一点。   本文会先说明两者对数据的具体假设差异,再说明AR模型(Autoregressive model 自回模型)为什么虽然看上去像回归分析,但还是有差别,最后也提到一个常见的混淆两者后在金融方向可能出现的问题。 一、回归分析对数据的假设:独立性 在回归分析中,我们假设数据是 相互独立 的。这种独立性体现在两个方面:一方面,自变量(X)是固定的,已被观测到的值,另一方面,每个因变量(y)的误差项是独立同分布,对于线性回归模型来说,误差项是独立同分布的正态分布,并且满足均值为0,方差恒定。 这种数据的独立性的具体表现就是:在回归分析中, 数据顺序可以任意交换 。在建模的时候,你可以随机选取数据循序进行模型训练