ARIMA
全稱為自回歸積分滑動(dòng)平均模型(Autoregressive Integrated Moving Average Model,簡(jiǎn)記ARIMA)。核心函數(shù)是ARIMA(p,d,q)稱為差分自回歸移動(dòng)平均模型,AR是自回歸, p為自回歸項(xiàng); MA為移動(dòng)平均,q為移動(dòng)平均項(xiàng)數(shù),d為時(shí)間序列成為平穩(wěn)時(shí)所做的差分次數(shù)。所謂ARIMA模型,是指將非平穩(wěn)時(shí)間序列轉(zhuǎn)化為平穩(wěn)時(shí)間序列,然后將因變量?jī)H對(duì)它的滯后值以及隨機(jī)誤差項(xiàng)的現(xiàn)值和滯后值進(jìn)行回歸所建立的模型。
核心
整個(gè)算法的核心,就是ARIMA中d差分將時(shí)序差分成平穩(wěn)時(shí)序或是趨于平穩(wěn)時(shí)序,然后基于PACF設(shè)置p自回歸項(xiàng),基于ACF設(shè)置q移動(dòng)平均項(xiàng)數(shù)。
但因?yàn)榘腔趕tatsmodels的,而其中的ARIMA(p,d,q),d不能>2,因此選用ARIMA(p,q)函數(shù),d則使用pandas.diff()來(lái)實(shí)現(xiàn)。
步驟
本系統(tǒng)使用yahoo_finance,pandas,numpy,matplotlib,statsmodels,scipy,pywt這些包
1.從yahoo_finance包中獲取股票信息,使用panda存儲(chǔ)及處理數(shù)據(jù),只提取其中Close屬性,按照時(shí)間排序?yàn)闀r(shí)間序列。
2.對(duì)Close時(shí)序進(jìn)行小波分解處理,選用DB4進(jìn)行小波分解,消除噪音。
3.進(jìn)行差分運(yùn)算,使用panda包的diff()方法,并使用ADF檢驗(yàn)進(jìn)行平穩(wěn)性檢驗(yàn),保證時(shí)間序列是平穩(wěn)或趨于平穩(wěn)的。
4.輸出ACF,PACF圖,確定p,q的值。
5.運(yùn)用ARIMA模型對(duì)平穩(wěn)序列進(jìn)行預(yù)測(cè),ARIMA(p,q)。
6.還原差分運(yùn)算,得到股票預(yù)測(cè)時(shí)序。
輸出圖
本圖順序與步驟順序無(wú)關(guān),僅僅是作為一種直觀的展示:
總結(jié)
ARIMA是一種處理時(shí)序的方法模型,可以作用于股票預(yù)測(cè),但是效果只能說(shuō)是一般,因?yàn)楣墒蓄A(yù)測(cè)有一定的時(shí)序關(guān)系,卻又不完全是基于時(shí)序關(guān)系,還有社會(huì)關(guān)系,公司運(yùn)營(yíng),新聞,政策等影響,而且ARIMA使用的數(shù)據(jù)量?jī)H僅只有一階的Close屬性。因此本模型可以作用在平穩(wěn)發(fā)展,沒有什么負(fù)面新聞和政策干擾的公司(不懂經(jīng)濟(jì)學(xué),不知道對(duì)不對(duì)= =)。
Github
https://github.com/jerry81333/StockProdiction/
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。