時間序列預測(一)數據的一些處理方法


一、滑動平均

公式(窗口為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 (平時和寒暑假是不一樣的等)。對於一些特別的場景,比如和寒暑假是不一樣的等。對於一些特別的場景,還要考慮節假日。

 

四、從頻域看可能存在的周期

同樣可以利用傅立葉變換看看頻域里面的時間序列。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM