利用时间序列预测方法,我们可以基于历史的情况来预测未来的情况。比如共享单车每日租车数,食堂每日就餐人数等等,都是基于各自历史的情况来预测的。

什么是时间序列?

  • 时间序列,是指同一个变量在连续且固定的时间间隔上的各个数据点的集合,比如每5分钟记录的收费口车流量,或者每年记录的药物销量都是时间序列。

时间序列的类型

  • 根据时间间隔的不同,时间序列可以是按年度(Annual)、季度、月度、周、小时、分钟、秒等频率采集的序列。

时间序列的成分

  • 趋势(Trend),比如长期上涨或长期下跌。
  • 季节性(Seasonal),比如羽绒服的销量一般会在冬季更高,或者某家烧烤店的生意一般会在每周五和周六晚上更好。
  • 周期性(Cyclic),比如你时不时搞个大促,那么销量在那段时间就会比较好。
  • 误差。

什么是时间序列预测?

  • 就是用同一个变量的历史值预测未来值,或者除了历史值以外,还加入一些预测因子(又称外生变量)来预测未来值。前者称为单变量时间序列预测,后者称为多变量时间序列预测。
  • 比如,我们要预测某海滩下个月的的游客数量,除了用历史游客数量做预测外,还可以加入温度这个因子。那么只用历史游客数量做预测就是单变量时间预测,加入温度这个因子就是多变量时间预测,当然还可以加入其它合理的预测因子,比如该海滩的每月广告支出等。

一些简单的预测方法

均值法

所有未来的预测值等于历史数据的平均值。

朴素法

简单的将最后一次观测值作为未来的预测值。

季节性朴素法

相比朴素法,就是考虑了季节性,也就是说将同期的最后一次观测值作为本期的预测值,比如预测本周的数值,那么就将上周的周一观测值作为本周的周一预测值,上周的周二观测值作为本周的周二预测值,以此类推。

漂移法(drift )

在起始观测值和最后一次观测值之间画一条连接线,延伸到预测时间点,作为预测值,公式如下:



下面的2副图展示了上面四种方法的预测效果:



常用的时间序列预测法

  • Exponential smoothing 指数平滑

    简单说就是用过去的观测值的加权平均值来作为预测值,权重随着与当前时刻的距离变远而呈指数衰减。
  • ARIMA

    简单说就是用变量的自回归(AR)与历史预测误差的自回归(MA)构成的时间序列预测模型。
  • 基于深度学习的方法

    简单说就是利用神经网络强大的学习能力,从时间序列历史数据中提取各种可能的特征,从而对未来进行预测。这部分的模型比较多,比如LSTM,Seq2seq等。

注意,上述的方法并不能说谁一定比谁好,不同的预测场景下每个方法都有可能做出更好的预测,所以通常需要相互比较,以便做出更合理的预测。

本篇介绍了时间序列的相关概念,下一篇将介绍时间序列的一般数据格式和基于python的可视化方法。

ok,本篇就这么多内容啦~,感谢阅读O(∩_∩)O。

用python做时间序列预测一:初识概念的更多相关文章

  1. 用python做时间序列预测九:ARIMA模型简介

    本篇介绍时间序列预测常用的ARIMA模型,通过了解本篇内容,将可以使用ARIMA预测一个时间序列. 什么是ARIMA? ARIMA是'Auto Regressive Integrated Moving ...

  2. 基于 Keras 用 LSTM 网络做时间序列预测

    目录 基于 Keras 用 LSTM 网络做时间序列预测 问题描述 长短记忆网络 LSTM 网络回归 LSTM 网络回归结合窗口法 基于时间步的 LSTM 网络回归 在批量训练之间保持 LSTM 的记 ...

  3. 用 LSTM 做时间序列预测的一个小例子(转自简书)

    问题:航班乘客预测 数据:1949 到 1960 一共 12 年,每年 12 个月的数据,一共 144 个数据,单位是 1000 下载地址 目标:预测国际航班未来 1 个月的乘客数 import nu ...

  4. Python中利用LSTM模型进行时间序列预测分析

    时间序列模型 时间序列预测分析就是利用过去一段时间内某事件时间的特征来预测未来一段时间内该事件的特征.这是一类相对比较复杂的预测建模问题,和回归分析模型的预测不同,时间序列模型是依赖于事件发生的先后顺 ...

  5. python做量化交易干货分享

    http://www.newsmth.NET/nForum/#!article/Python/128763 最近程序化交易很热,量化也是我很感兴趣的一块. 国内量化交易的平台有几家,我个人比较喜欢用的 ...

  6. 如何用python将一个时间序列转化成有监督学习

    机器学习可以被用于时间序列预测. 在机器学习能使用之前,时间序列预测需要被重新转化成有监督学习.将一个序列组合成成对的输入输出序列. 在这篇教程中,你会发现如何通过使用机器学习算法将单变量和多变量的时 ...

  7. Kesci: Keras 实现 LSTM——时间序列预测

    博主之前参与的一个科研项目是用 LSTM 结合 Attention 机制依据作物生长期内气象环境因素预测作物产量.本篇博客将介绍如何用 keras 深度学习的框架搭建 LSTM 模型对时间序列做预测. ...

  8. facebook开源的prophet时间序列预测工具---识别多种周期性、趋势性(线性,logistic)、节假日效应,以及部分异常值

    简单使用 代码如下 这是官网的quickstart的内容,csv文件也可以下到,这个入门以后后面调试加入其它参数就很简单了. import pandas as pd import numpy as n ...

  9. python做语音信号处理

    音频信号的读写.播放及录音 标准的python已经支持WAV格式的书写,而实时的声音输入输出需要安装pyAudio(http://people.csail.mit.edu/hubert/pyaudio ...

随机推荐

  1. zigbee通用IO口小作业

    独立新建工程并编写.编译代码,实现按键控制流水灯运行,完成以下任务要求: [1]程序开始运行时,D4.D3.D6.D5灯全亮一会,然后全灭一会,开始进入流水灯. [2]流水灯的运行过程为:D4灯亮,其 ...

  2. 【Linux系列汇总】小白博主的嵌入式Linux实战快速进阶之路(持续更新)

    我把之前在学习嵌入式Linux和工作中遇到问题和相关经验等,一起整理到这里,方便自己查阅和学习,温故而知新,如果能帮助到您,请帮忙点个赞: 本文的宗旨 嵌入式Linux 的项目通常需要一个团队来开发, ...

  3. 自动化运维工具Ansible之LNMP实践环境部署

    Ansible-实战指南-LNMP环境部署,并使用zabbix监控 主机规划 系统初始化:必要的系统初始化 基础组件包括:zabbix监控,mariadb(用于存放zabbix监控信息) 业务组件包括 ...

  4. 设计模式之GOF23原型模式02

    利用序列化和反序列化完成深复制 ByteArrayOutputStream bos=new ByteArrayOutputStream();  ObjectOutputStream oos=new O ...

  5. [hdu5203]计数水题

    思路:把一个木棍分成3段,使之能够构成三角形的方案总数可以这样计算,枚举一条边,然后可以推公式算出当前方案数.对于已知一条边的情况,也用公式推出.用max和min并维护下,以减少情况数目. #prag ...

  6. SpringBoot读取配置文件三步走

    1首先新建application.properties文件 cn.qdl.demo.url=http://localhost:8080 2写一个类包上面的配置文件,类名随便取 public class ...

  7. python--正则表达式|re模块学习

    学习来源:https://www.liaoxuefeng.com/wiki/1016959663602400/1017639890281664 正则表达式是一种用来匹配字符串的一种强大的武器,用一种描 ...

  8. 页面中js接收tp5 assign方式传过来的数组对象

    <script type="text/javascript"> var arr='<?php echo json_encode($nav) ?>'; var ...

  9. 设计模式系列之适配器模式(Adapter Pattern)——不兼容结构的协调

    模式概述 模式定义 模式结构图 模式伪代码 类适配器,双向适配器,缺省适配器 类适配器 双向适配器 缺省适配器 模式应用 模式在JDK中的应用 模式在开源项目中的应用 模式总结 主要优点 主要缺点 适 ...

  10. 基于 abp vNext 和 .NET Core 开发博客项目 - 数据访问和代码优先

    上一篇文章(https://www.cnblogs.com/meowv/p/12909558.html)完善了项目中的代码,接入了Swagger.本篇主要使用Entity Framework Core ...