劉松 張帥
摘 要:隨著我國資本市場的擴(kuò)大開放,國外資本進(jìn)一步流入我國股市,中國股市迎來新的挑戰(zhàn)與機(jī)遇。金融市場股票的價(jià)格預(yù)測問題再次成為公眾關(guān)注的熱點(diǎn)?;诖?,選取金融市場股票的歷史收盤價(jià)數(shù)據(jù),以Python為實(shí)現(xiàn)工具,通過建立ARIMA模型來進(jìn)行檢驗(yàn)與預(yù)測,得到的股價(jià)預(yù)測值與真實(shí)值短期內(nèi)最大誤差不超過0.04。這表明以ARIMA模型對股價(jià)進(jìn)行短期預(yù)測具有很好的效果,能夠?yàn)楣墒型顿Y者提供幫助。
關(guān)鍵詞:Python;ARIMA模型;股價(jià)預(yù)測
中圖分類號(hào):F830.91? ? ? ? 文獻(xiàn)標(biāo)志碼:A? ? ? 文章編號(hào):1673-291X(2021)25-0076-03
引言
正如我們所知,股票市場是企業(yè)融資的重要渠道,也是反映一個(gè)國家經(jīng)濟(jì)狀況的“晴雨表”。股票的價(jià)格作為股票市場的重要信息,其價(jià)格的變化是成千上萬投資者的共同決策結(jié)果,因此影響股價(jià)波動(dòng)的因素眾多。不同的因素會(huì)對股價(jià)造成如何的影響,影響的程度有多大,往往難以衡量。因此,我們不去探究價(jià)格變化背后原因是什么,而以過去的價(jià)格變化為依據(jù),去發(fā)現(xiàn)股價(jià)變化的規(guī)律,從而實(shí)現(xiàn)對股價(jià)的預(yù)測。當(dāng)然作為一種隨機(jī)變化過程,我們無法完全預(yù)測股價(jià)的未來走向,但這不代表股價(jià)就是完全不可預(yù)測的,股票價(jià)格的變動(dòng)過程就是一組可以看得到的時(shí)間序列數(shù)據(jù),其既反映股價(jià)的隨機(jī)變化,也包含了一定的系統(tǒng)運(yùn)行規(guī)律。ARIMA模型理論成熟,是當(dāng)前處理時(shí)間序列數(shù)據(jù)的常用預(yù)測模型,可以很好預(yù)測具有波動(dòng)性的時(shí)間序列數(shù)據(jù)的短期趨勢。因此,本文運(yùn)用ARIMA模型對西南證券的收盤價(jià)作為歷史數(shù)據(jù)進(jìn)行建模,以當(dāng)前熱門的Python作為建模工具,對未來四天的股價(jià)進(jìn)行預(yù)測。
一、選題意義與模型理論基礎(chǔ)
(一)選題意義
基于Eveiws所實(shí)現(xiàn)的股價(jià)預(yù)測方法已有相應(yīng)成熟的研究,且該方法在短期的預(yù)測精度能夠得以保證,但還有許多的不足。而Python在股價(jià)預(yù)測領(lǐng)域的應(yīng)用有待檢驗(yàn),基于這樣的背景,本文希望通過使用Python工具進(jìn)行股票價(jià)格的短期預(yù)測,以對比Eviews工具做出的結(jié)果,分析使用新的研究工具是否可以給股價(jià)帶來更精確的估計(jì)。
(二)ARIMA模型理論介紹
ARIMA模型又被稱為自回歸移動(dòng)平均模型,于20世紀(jì)70年代由美國統(tǒng)計(jì)學(xué)家Jenkins和英國統(tǒng)計(jì)學(xué)家Box提出。該模型主要運(yùn)用在時(shí)間序列變量的短期預(yù)測中,因單個(gè)時(shí)間序列值具有不可測性,但整體時(shí)間序列值具有一定的規(guī)律,使用ARIMA模型將這種規(guī)律以數(shù)學(xué)形式表示。并通過對數(shù)學(xué)形式的研究,實(shí)現(xiàn)對時(shí)間序列值的短期預(yù)測。
ARIMA模型可分為三種,AR(p)模型為自回歸模型,MA(q)模型為滑動(dòng)平均模型,ARIMA(p,d,q)為自回歸滑動(dòng)平均模型。ARIMA是前兩種模型的糅合,其中AR是自回歸過程,p為自回歸的階數(shù);MA為移動(dòng)平均過程,q為移動(dòng)平均階數(shù),d為非平穩(wěn)向平穩(wěn)轉(zhuǎn)變的差分次數(shù)。
一般的ARIMA(p,q)模型形式可以表示為:
(1)式中,{?著t}是白噪音序列,p和q都是非負(fù)整數(shù),AR和MA模型都是ARIMA(p,q)的特殊情形,當(dāng)p=0時(shí),ARIMA(0,q)=MA(q);當(dāng)q=0時(shí),ARIMA(p,0)=AR(P)。
由于ARIMA模型運(yùn)用于時(shí)間序列平穩(wěn)狀態(tài),而當(dāng)時(shí)間序列處于不平穩(wěn)時(shí),需要經(jīng)過一系列的處理,使時(shí)間序列平穩(wěn)化。在含有短期趨勢平穩(wěn)的非平穩(wěn)時(shí)間序列可以通過差分使非平穩(wěn)序列成為平穩(wěn)序列。
(三)ARIMA模型建模步驟
ARIMA模型的建??煞譃橐韵滤膫€(gè)步驟:首先,對原序列進(jìn)行平穩(wěn)性檢驗(yàn),如果檢驗(yàn)結(jié)果為不平穩(wěn),需要通過差分變化或者其他變化,使序列滿足平穩(wěn)性條件。其次,通過計(jì)算描述序列特征的統(tǒng)計(jì)量來確定模型,并結(jié)合BIC準(zhǔn)則確定模型的階數(shù)。再次,利用最小二乘法估計(jì)模型的參數(shù),并進(jìn)行合理性檢驗(yàn)。最后,進(jìn)行診斷分析,通過生成的模型對數(shù)據(jù)進(jìn)行預(yù)測,并將實(shí)際數(shù)據(jù)與之進(jìn)行對比,進(jìn)行預(yù)測準(zhǔn)確定檢驗(yàn)。若不精確重新確定參數(shù),再次建立新的模型。
二、ARIMA模型的建立與分析
(一)數(shù)據(jù)來源
本文數(shù)據(jù)來源于Wind數(shù)據(jù)庫,從Wind上選取西南證券自2019年1月2日至12月9日的股票收盤價(jià)作為原始數(shù)據(jù),數(shù)據(jù)樣本總量為229個(gè)。樣本量基本涵蓋了西南證券2019年以來的所有交易日的收盤價(jià)。
(二)數(shù)據(jù)的單位根檢驗(yàn)與平穩(wěn)化處理
通過Python可視化,對西南證券股價(jià)的原始數(shù)據(jù)處理,可以得到收盤價(jià)的時(shí)間序列圖像,通過觀察圖像我們發(fā)現(xiàn),西南證券的收盤價(jià)時(shí)間序列數(shù)據(jù)呈現(xiàn)非平穩(wěn)的特征,這對于數(shù)據(jù)的初步判斷來說還遠(yuǎn)遠(yuǎn)不夠。因此,我們通過對原始數(shù)據(jù)進(jìn)行單位根檢驗(yàn),對數(shù)據(jù)進(jìn)行單位根檢驗(yàn)后,得出ADF檢驗(yàn)的t統(tǒng)計(jì)量為-2.786767均小于在顯著性水平為1%、5%和10%時(shí)分別所對應(yīng)的臨界值-3.458366,-2.873866和-270.425668??梢缘贸觯紨?shù)據(jù)的ADF檢驗(yàn)結(jié)果落于接受原假設(shè)區(qū)間內(nèi),即西南證券的收盤價(jià)時(shí)間序列數(shù)據(jù)存在單位根,數(shù)據(jù)是非平穩(wěn)的。時(shí)間序列數(shù)據(jù)的非平穩(wěn)可以通過差分法來進(jìn)行解決,因此我們對原始數(shù)據(jù)進(jìn)行一階差分,并進(jìn)行ADF檢驗(yàn)得出t統(tǒng)計(jì)量的值,在對數(shù)據(jù)進(jìn)行一階差分處理之后,此時(shí)得出的t統(tǒng)計(jì)量的值為-16.611521均大于在顯著性水平為1%、5%和10%時(shí)分別所對應(yīng)的臨界值-3.458366,-2.873866和-270.425668。也就意味著在對原始數(shù)據(jù)進(jìn)行一階差分處理之后,時(shí)間序列數(shù)據(jù)不再是非平穩(wěn)的。
(三)ARIMA模型的建立與參數(shù)估計(jì)
建立ARIMA模型的關(guān)鍵就是要通過觀察ACF、PACF圖,以及通過BIC信息準(zhǔn)則來確定ARIMA模型的最佳p值和q值。通過Python,可以得到相應(yīng)的自相關(guān)圖ACF和偏自相關(guān)圖PACF,根據(jù)ACF、PACF圖的觀察方法,暫定ARIMA模型的p、q值為1,1,即模型為ARIMA(1,1)。為保證模型的最優(yōu),僅僅通過肉眼的觀察不足以判斷ARIMA模型最優(yōu)的p、q值,還必須通過BIC信息準(zhǔn)則來做進(jìn)一步判斷,即找出BIC最小值。
通過傳統(tǒng)的Eviews軟件來對ARIMA模型定階,要通過多次去輸入可能的p、q值,得到多個(gè)BIC的值,從而找出最小BIC所對應(yīng)的p、q值。這樣的實(shí)現(xiàn)過程十分煩瑣,而運(yùn)用Python工具來實(shí)現(xiàn),只需要幾行代碼就可以找到最優(yōu)的p、q值。根據(jù)Python的輸出結(jié)果,最優(yōu)的p、q值分別為(1,0)。為檢驗(yàn)Python實(shí)現(xiàn)的準(zhǔn)確性,我們還是做出了ARIMA(1,0),ARIMA(2,1),ARIMA(2,2),ARIMA(3,3),ARIMA(0,3),ARIMA(3,2)所對應(yīng)的BIC值如表1所示。
可見,ARIMA(1,0)所對應(yīng)的BIC值為最小,最終,我們選擇以ARIMA(1,0)來進(jìn)行模型構(gòu)建。
(四)ARIMA模型檢驗(yàn)
對模型參數(shù)估計(jì)完之后,我們需要對模型進(jìn)行檢驗(yàn)。
首先,要驗(yàn)證殘差項(xiàng)是否符合正態(tài)分布,我們以QQ圖作為驗(yàn)證殘差項(xiàng)是否符合正態(tài)分布的方式如圖1所示。QQ圖是一種散點(diǎn)圖,對應(yīng)于正態(tài)分布的QQ圖,就是由標(biāo)準(zhǔn)正態(tài)分布的分位數(shù)為橫坐標(biāo),樣本值為縱坐標(biāo)的散點(diǎn)圖。要利用QQ圖鑒別樣本數(shù)據(jù)是否近似于正態(tài)分布,只需看QQ圖上的大多數(shù)點(diǎn)是否近似地在一條直線附近。觀察QQ圖可以發(fā)現(xiàn),大多數(shù)數(shù)據(jù)點(diǎn)都近似在直線附近,即殘差項(xiàng)符合正態(tài)分布的特征。
其次,我們通過進(jìn)行Ljung-Box檢驗(yàn),得出殘差項(xiàng)對應(yīng)的P值均大于0.05,說明殘差項(xiàng)屬于白噪聲序列,殘差項(xiàng)中的有用信息已被提取完,模型基本完善。
(四)ARIMA模型預(yù)測結(jié)果與分析
最后,我們以ARIMA模型對未來三天的股價(jià)預(yù)測,并將預(yù)測值與真實(shí)值進(jìn)行比較如表2所示。根據(jù)表2可知,用模型預(yù)測出的股票價(jià)格與真實(shí)價(jià)格較為接近,誤差較小,說明ARIMA模型可以用來預(yù)測股票價(jià)格。但由于股票的價(jià)格變動(dòng)較大,所以本模型只適合進(jìn)行短期預(yù)測而不適用于長期。
結(jié)語
關(guān)于股價(jià)的預(yù)測是一個(gè)古老的問題,不少學(xué)者都已對其進(jìn)行過研究,但從來沒有一種方法可以完全預(yù)測股價(jià)的走勢,可見股價(jià)的預(yù)測是多么復(fù)雜。盡管隨著時(shí)間的推移,對于股價(jià)的預(yù)測涌現(xiàn)出不少新的方法,但時(shí)間序列數(shù)據(jù)理論依舊是對股價(jià)預(yù)測的有效手段。本文通過選取A股股市某一只股票作為研究對象,以ARIMA模型作為預(yù)測模型,通過Python工具,最終得出對股票的未來幾天預(yù)測值與真實(shí)值最大誤差不超過0.04。這表明,以ARIMA模型對股價(jià)進(jìn)行短期預(yù)測具有很好的效果,能夠?yàn)楣墒型顿Y者提供些許幫助。其次,本文改變了以Eviews軟件來作為實(shí)現(xiàn)工具的傳統(tǒng)方式,填補(bǔ)了以Python工具實(shí)現(xiàn)ARIMA模型來對股價(jià)預(yù)測領(lǐng)域的空白。
參考文獻(xiàn):
[1]? 吳玉霞,溫欣.基于ARIMA模型的短期股票價(jià)格預(yù)測[J].統(tǒng)計(jì)與決策,2016,(23):83-86.
[2]? 馮盼,曹顯兵.基于ARIMA模型的股價(jià)分析與預(yù)測的實(shí)證研究[J].數(shù)學(xué)的實(shí)踐與認(rèn)識(shí),2011,(22):84-90.
[3]? 趙國順.基于時(shí)間序列分析的股票價(jià)格趨勢預(yù)測研究[D].廈門:廈門大學(xué),2009.
[4]? 陳陽.股票預(yù)測模型研究[D].哈爾濱:哈爾濱工程大學(xué),2007.
[5]? 朱瑜.股市預(yù)測方法研究[D].西安:西北工業(yè)大學(xué),2006.
An Empirical Study on Stock Price Forecast by ARIMA Model
LIU Song,ZHANG Shuai
(Guizhou University,Guiyang 550025,China)
Abstract:With the expansion and opening up of Chinas capital market,foreign capital flows into Chinas stock market,which ushers in new challenges and opportunities.Based on this,this paper selects the historical closing price data of the stock in the financial market,uses Python as the implementation tool,and establishes ARIMA model to test and forecast.The maximum error between the predicted value and the real value in the short term is not more than 0.04.It shows that ARIMA model has a good effect on short-term stock price forecasting,and can provide some help for stock market investors.
Key words:Python;ARIMA model;Stock price forecast
[責(zé)任編輯 辰 敏]