1. 程式人生 > >時間序列(三)滑動視窗

時間序列(三)滑動視窗

滑動視窗就是能夠根據指定的單位長度來框住時間序列,從而計算框內的統計指標。相當於一個長度指定的滑塊在刻度尺上面滑動,每滑動一個單位即可反饋滑塊內的資料。

import matplotlib.pylab
import numpy as np
import pandas as pd

指定六百個資料的序列

df = pd.Series(np.random.randn(600), index = pd.date_range('7/1/2016', freq = 'D', periods = 600))

指定該序列一個單位長度為10的滑塊

r = df.rolling(window = 10)

輸出滑塊內的平均值

#r.max, r.median, r.std, r.skew, r.sum, r.var
print(r.mean())

2016-07-01 NaN
2016-07-02 NaN
2016-07-03 NaN
2016-07-04 NaN
2016-07-05 NaN
2016-07-06 NaN
2016-07-07 NaN
2016-07-08 NaN
2016-07-09 NaN
2016-07-10 0.300133 該處為前10個值得平均值
2016-07-11 0.284780
2016-07-12 0.252831
2016-07-13 0.220699
2016-07-14 0.167137
2016-07-15 0.018593
2016-07-16 -0.061414
2016-07-17 -0.134593
2016-07-18 -0.153333
2016-07-19 -0.218928
2016-07-20 -0.169426
2016-07-21 -0.219747
2016-07-22 -0.181266
2016-07-23 -0.173674
2016-07-24 -0.130629
2016-07-25 -0.166730
2016-07-26 -0.233044
2016-07-27 -0.256642
2016-07-28 -0.280738
2016-07-29 -0.289893
2016-07-30 -0.379625

通過畫相簿來看原始序列與滑動視窗產生序列的關係圖

import matplotlib.pyplot as plt
plt.figure(figsize=(15, 5))
df.plot(style='r--')
df.rolling(window=10).mean().plot(style='b')

這裡寫圖片描述

能看到線是在波動線的中心的