二十四、数据挖掘时序模式
生活随笔
收集整理的這篇文章主要介紹了
二十四、数据挖掘时序模式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
時序模式
1. 時序模式
1.1 問題引入
- 下個月的商品銷量、銷售額或庫存量是多少?
- 明天廣州市的最高用電負(fù)荷是多少?
序列模式的概念 - 時序模式:描述基于時間或其他序列的經(jīng)常發(fā)生的規(guī)律或趨勢,并對其建模。
- 序列模式將關(guān)聯(lián)和時間序列模式結(jié)合起來,重點(diǎn)考慮數(shù)據(jù)之間維度上的關(guān)聯(lián)性。
1.2 序列模式的內(nèi)容
- 時間序列分析
- 序列發(fā)現(xiàn)
- 時間序列的組合成分
- 時間序列的組合模型
2. 時間序列分析
2.1 序列分析的基本內(nèi)容
用已有的數(shù)據(jù)序列預(yù)測未來。在時間序列分析中,數(shù)據(jù)的屬性值隨著時間不斷變化的?;貧w不強(qiáng)調(diào)數(shù)據(jù)的先后順序,而時間序列要考慮日歷的影響,如節(jié)假日等。
3. 序列發(fā)現(xiàn)
3.1 序列分析的定義
序列分析指的是用于確定數(shù)據(jù)之間與時間相關(guān)的序列模式。這些模式與在數(shù)據(jù)(或者事件)中發(fā)現(xiàn)的相關(guān)的關(guān)聯(lián)規(guī)則很相似,只是這些序列是與時間相關(guān)的。
3 時間序列組合成分
3.1 時間序列變化的影響因素
- 時間序列的變化主要受到長期趨勢、季節(jié)變動、周期變動和不規(guī)則變動這四個因素的因素
- 長期趨勢因素(T):反映了經(jīng)濟(jì)現(xiàn)象在一個較長時間內(nèi)的發(fā)展方向,它可以在一個相當(dāng)長的時間內(nèi)表現(xiàn)為一種近似直線的持續(xù)向上或持續(xù)向下或平穩(wěn)的趨勢。
- 季節(jié)變動因素(S)是經(jīng)濟(jì)現(xiàn)象首季節(jié)變動影響所形成的一種長度和幅度固定的周期波動。
- 周期變動因素(C)也稱循環(huán)變動因素,它是受各種經(jīng)濟(jì)因素影響形成的上下起伏不定的波動。
- 不規(guī)則變動因素(I)不規(guī)則變動又稱隨機(jī)變動,它是受各種偶然因素所形成的不規(guī)則變動。
4 常見的時序算法
4.1 常見的序列分析及使用范圍
5 時序算法實(shí)戰(zhàn)案例
5.1 股票收益率回歸分析
- 自變量:個股的收益率
- 應(yīng)變量:大盤的收益率
- 通過OLS探索是否存在關(guān)系
5.2 算法的原理
使用股票數(shù)據(jù),并利用最小二乘法擬合股票數(shù)據(jù)的收益情況,算法采用線性回歸的方式
5.3 資源
工具庫
matplotlib tushare numpy statsmodels完整代碼
# -*- coding: utf-8 -*-import matplotlib.pylab as plt from matplotlib.pylab import style import tushare as ts import numpy as np import statsmodels.api as smstyle.use('ggplot') # 設(shè)置圖片顯示的主題樣式# 解決matplotlib顯示中文問題 plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默認(rèn)字體 plt.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負(fù)號'-'顯示為方塊的問題def get_log_return(price_data):"""計算對數(shù)收益率參數(shù)===price_data: Series類型價格/指數(shù)數(shù)據(jù)返回===log_return: 對數(shù)收益率"""log_return = np.log(price_data / price_data.shift(1))return log_returndef run_main():"""主函數(shù)"""# 2016年上證指數(shù)記錄# sh_data = ts.get_k_data(code='sh', start='2016-01-01', end='2017-01-01')sh_data = ts.get_k_data(code='hs300', start='2016-01-01', end='2017-01-01')sh_data['log_return'] = get_log_return(sh_data['close'])# 2016年某支股票記錄stock_data = ts.get_k_data(code='sz', start='2016-01-01', end='2017-01-01')# stock_data = ts.get_k_data(code='300003', start='2016-01-01', end='2017-01-01')stock_data['log_return'] = get_log_return(stock_data['close'])y = sh_data['log_return'].dropna().valuesx = stock_data['log_return'].dropna().valuesx_cons = sm.add_constant(x)res_ols = sm.OLS(y, x_cons).fit()print(res_ols.summary())fig, ax = plt.subplots(figsize=(8, 6))ax.plot(x, y, 'bo', label="data")ax.plot(x, res_ols.fittedvalues, 'r--', label="OLS")ax.legend(loc='best')plt.show()if __name__ == '__main__':run_main()總結(jié)
以上是生活随笔為你收集整理的二十四、数据挖掘时序模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二十三、聚类算法
- 下一篇: 二十五、数据挖掘之离群点检测