1. 程式人生 > >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

相應的時序圖為:

0?wx_fmt=png

從時序圖來看,有明顯的增長趨勢,原始資料屬於不平穩序列。

相應的自相關圖為:

0?wx_fmt=png

從自相關圖來看,呈現三角對稱形式,不存在截尾或拖尾,屬於單調序列的典型表現形式,原始資料屬於不平穩序列。

相應的偏自相關圖為:

0?wx_fmt=png

從偏自相關圖形來看,也不存在截尾或拖尾,屬於不平穩序列。

對於不平穩序列而言,要獲得平穩序列的方法之一就是進行差分運算,請參考“相關閱讀”第一條。

----------相關閱讀----------

----------喜大普奔----------

1、繼《Python程式設計基礎》(2017年9月第5次印刷)、《Python程式設計(第2版)》(2017年9月第4次印刷)、《Python可以這樣學》(2017年7月第3次印刷)系列圖書之後,董付國老師新書《Python程式設計開發寶典》已於2017年8月1日在清華大學出版社出版,並於2017年9月進行了第2次印刷。為慶祝新書《Python程式設計開發寶典》全面上架,清華大學出版社聯合“贛江圖書專營”淘寶店推出特價優惠活動,《Python程式設計開發寶典》原價69元,新書上架期間超低價39.8元,可以複製下面的連結使用瀏覽器開啟檢視圖書詳情和購買:

https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-14464369246.84.46f16db0roWfX4&id=557107249812&rn=339cbc9df2bac424664103917dedfbd2&abbucket=8&tbpm=3

2、董付國老師新作《中學生可以這樣學Python》已正式出版,很快就會在各大書城全面上架。