一、滑動平均
公式(窗口為7):
也就是說7個數做一次平均
二、指數平均
公式:
其中
因此
也就是說離本點越近,考慮的權重也越大。
python code:
# author: adrian.wu import numpy as np from matplotlib import pyplot as plt import pandas as pd """ count : count(1) day: d """ path = '/Users/adrian.wu/PycharmProjects/jobs/time_series/data/ord_count_by_day.csv' data_raw = pd.read_csv(path) data_raw.sort_values("d", inplace=True) """ draw raw time series picture """ # plt.plot(data_raw['d'], data_raw['count(1)']) # plt.show() win_7 = data_raw['count(1)'].rolling(window=7).mean() ewma_30 = data_raw['count(1)'].ewm(span=30).mean() d = [i for i in range(0, len(ewma_30))] fig, ax = plt.subplots(1, 1) ax.plot(d, data_raw['count(1)'], label='raw_data') ax.plot(d, win_7, label='win_7') ax.plot(d, ewma_30, label='ewma_span=30') plt.legend() plt.show()
三、趨勢和周期
時間序列經過合理的函數變換后都可以被認為是由3個部分疊加而成。分別是趨勢項部分、周期項部分和噪聲項部分
其中s(t)表示周期項,如weekly seasonality(周一和周二是不一樣的)和yearly seasonality (平時和寒暑假是不一樣的等)。對於一些特別的場景,比如和寒暑假是不一樣的等。對於一些特別的場景,還要考慮節假日。
四、從頻域看可能存在的周期
同樣可以利用傅立葉變換看看頻域里面的時間序列。