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