您当前的位置:首页 > 计算机 > 编程开发 > Python

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

时间:12-27来源:作者:点击数:

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

本文涉及的扩展库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

相应的时序图为:

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

相应的自相关图为:

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

相应的偏自相关图为:

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

对于不平稳序列而言,要获得平稳序列的方法之一就是进行差分运算,请参考。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门