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