专栏首页Python小屋Python绘制时间序列数据的时序图、自相关图和偏自相关图

Python绘制时间序列数据的时序图、自相关图和偏自相关图

时序图、自相关图和偏相关图是判断时间序列数据是否平稳的重要依据。

本文涉及的扩展库numpy、pandas、statsmodels一般可以使用pip进行在线安装,如果安装失败,可以到http://www.lfd.uci.edu/~gohlke/pythonlibs/下载相应的whl文件进行离线安装。

另外,绘制自相关图的函数plot_acf()和绘制偏自相关图的函数plot_pacf()还有更多参数可以使用,请自行挖掘和探索。

from random import randrange import numpy as np import pandas as pd

import matplotlib.pyplot as plt import matplotlib.font_manager as fm

from statsmodels.graphics.tsaplots import plot_acf, plot_pacf

def generateData(startDate, endDate): df = pd.DataFrame([300+i*30+randrange(50) for i in range(31)],\ columns=['营业额'],\ index=pd.date_range(startDate, endDate, freq='D')) return df

# 生成测试数据,模拟某商店营业额 data = generateData('20170601', '20170701') print(data)

# 绘制时序图 myfont = fm.FontProperties(fname=r'C:\Windows\Fonts\STKAITI.ttf') data.plot() plt.legend(prop=myfont) plt.show() # 绘制自相关图 plot_acf(data).show() # 绘制偏自相关图 plot_pacf(data).show()

某次运行得到的随机数据为:

营业额 2017-06-01 333 2017-06-02 370 2017-06-03 392 2017-06-04 425 2017-06-05 457 2017-06-06 467 2017-06-07 488 2017-06-08 540 2017-06-09 575 2017-06-10 575 2017-06-11 635 2017-06-12 631 2017-06-13 706 2017-06-14 691 2017-06-15 728 2017-06-16 767 2017-06-17 783 2017-06-18 831 2017-06-19 846 2017-06-20 894 2017-06-21 908 2017-06-22 954 2017-06-23 971 2017-06-24 1011 2017-06-25 1051 2017-06-26 1089 2017-06-27 1120 2017-06-28 1118 2017-06-29 1143 2017-06-30 1181 2017-07-01 1240

相应的时序图为:

从时序图来看,有明显的增长趋势,原始数据属于不平稳序列。

相应的自相关图为:

从自相关图来看,呈现三角对称形式,不存在截尾或拖尾,属于单调序列的典型表现形式,原始数据属于不平稳序列。

相应的偏自相关图为:

从偏自相关图形来看,也不存在截尾或拖尾,属于不平稳序列。

对于不平稳序列而言,要获得平稳序列的方法之一就是进行差分运算,请参考“相关阅读”第一条。

本文分享自微信公众号 - Python小屋(Python_xiaowu),作者:董付国

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-10-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用Python把PowerPoint文件转换为配乐MP4视频

    把.ppt或.pptx格式的PowerPoint文件转换成MP4格式的配乐视频。

    Python小屋屋主
  • 详解Python GUI版24点游戏制作过程

    本文作者为浙江温州永嘉县教师发展中心应根球老师,电子邮箱:ycicada@163.com。 传统用扑克牌算24点游戏用于小学低中段学生训练四则运算效果不错,也可...

    Python小屋屋主
  • Python+django建站入门篇:Hello world

    第一步,进入命令提示符,切换至Python安装目录下的scripts目录,执行命令pip install django安装django扩展库。 第二步,使用命令...

    Python小屋屋主
  • Tomcat7基于Redis的Session共享

    Tomcat7/8基于Redis(Sentinel)的Session共享实战 笔者线上环境的多个tomcat需要共享session 基于epel源安装、启...

    shaonbean
  • 腾讯云服务器价格,腾讯云价格之最新硬盘和带宽价格表

    腾讯云服务器租用价格组成主要包含三部分:即云服务器机型价格+硬盘价格+网络宽带价格,由于机型价格根据不同的区域价格不同,因此先为大家分享腾讯云服务器最新的硬盘价...

    tengxunyun8点com活动整理
  • 微信小程序setData完成后操作

    在微信小程序中,setData是一个常用的操作,但是setData是一个异步操作,也就是说在setData代码后使用data里面的数据,不一定就是已经更新了的数...

    无邪Z
  • Hdu 1709 The Balance

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1709

    若羽
  • 《Kotlin极简教程》第二章 快速开始:HelloWorld

    一个会写诗的程序员
  • 《Kotlin极简教程》第一章 Kotlin简介

    一个会写诗的程序员
  • break与continue跳出的理解

    如果你还缺乏对break与continue断点跳出循环的正确理解,请复制粘贴以下代码,思考得出答案(代码涉及标签语句的用法,如果不会的请自行百度)。

    RobinsonZhang

扫码关注云+社区

领取腾讯云代金券