藺玉佩,楊一文
(西北工業大學 管理學院,西安 710129)
股票價格序列預測不僅對投資者而言有巨大的市場利益,同時對學術界研究市場運行規律無疑也具有重要的理論價值。因此研究采用何種方法對股票價格進行較準確的預測就成為是國內外學者都非常關注的課題。時間序列預測方法是常用的股票價格預測方法。一般的時間序列預測方法,如ARIMA等,都是以時間序列的精確值為基礎并且認為時間序列的未來值與當前值、過去值以及白噪聲之間存在著確定、明確的函數關系。但是,證券市場系統非常復雜,市場的行為特征是不明確的,精確的記錄往往會丟失部分有用的信息,許多變量之間的關系也難以用確定的函數關系來描述。因此,本文將模糊時間序列模型用于股票指數價格的預測,將觀測值表示為具有模糊特征的語言變量并且建立了多前件的模糊關系,最后通過去模糊化得到精確值。結果表明此法更能全面反映系統的特征并且有利于復雜環境中提高預測精度。
本文應用模糊時間序列模型對上證綜指和深證成指進行預測,首先對模糊時間序列的定義作一簡要敘述。
令U為給定論域,將論域劃分為n個子區間,則U={u1,u2,…,un}。一個定義在論域U中的模糊集合A表示如下:

其中,fA(·)是 ui對模糊集合 A 的隸屬函數,fA(ui)是 ui對模糊集合 A 的隸屬度,fA(ui)∈[0,1],i=1,2,…,n。
定義1 令R中一子集Y(t)(t=…,0,1,2,…)為給定論域,fi(t)(i=1,2,…)為定義在其上的模糊集合,由 f1(t),f2(t)(組成的集合F(t)稱作定義在Y(t)(t=…,0,1,2,…)上的模糊時間序列。
定義 2 如果 F(t)僅僅由 F(t-1)引起,即 F(t-1)→F(t),這個關系可表示為F(t)=F(t-1)°R(t,t-1),稱F(t)作的一階模型,R(t,t-1)為F(t-1)與F(t)之間的模糊關系。
定義2中,F(t-1)為模糊關系的前件,F(t)為后件,此關系式是具有單個前件的一階模糊關系式。
定義3 F(t)為給定論域上的模糊時間序列,如果F(t)同時由F(t-1),F(t-2),…,F(t-n)引起,則n階模糊邏輯關系可表示為 F(t-n)、…、F(t-2)、F(t-1)→F(t),其中 F(t-n)、…、F(t-2)、F(t-1)為n階模糊邏輯關系的當前狀態。
定義4 假設R中一子集Y(t)(t=…,0,1,2,…)為給定論域,F1(t),F2(t),…,Fn(t)是各自給定論域上的n個模糊時間序列,如果 F(t)同時由 F1(t),F2(t-1),F3(t-1),…,Fn(t-1)引起,具有 n個前件的一階模糊關系可表示為Fn(t-1),…,F2(t-1),F1(t-1)→F(t)。
綜合以上定義,具有n個前件的n階模糊邏輯關系式可定義如下:
定義5 F1(t),F2(t),…,Fn(t)和F(t)為各自給定論域上的n+1個模糊時間序列,則具有n個前件的n階模糊邏輯關系式可表示為:(F1(t-n),F2(t-n),…,Fn(t-n))、…、(F1(t-2),F2(t-2),…,Fn(t-2))、(F1(t-1),F2(t-1),…,Fn(t-1))→F(t)。
本文建立的模糊時間序列模型主要包括以下步驟:模糊化、建立模糊關系、預測并去模糊化。
步驟1 模糊化
定義論域 U。 論域 U=[Dmin-σ,Dmax+σ],其中 Dmin和 Dmax分別為訓練樣本數據中的最小值和最大值,σ為訓練樣本標準差。采用模糊C-均值聚類算法將數據聚類,并根據聚類結果論域劃分為多個子區間,首先計算聚類數k,則

其中,n為訓練樣本個數,Dmin和Dmax分別為訓練樣本序列中的最大值和最小值,X(t)和X(t-1)分別為t時刻和t-1時刻的訓練樣本的觀測值。[]為四舍五入取整運算。其次通過模糊C-均值聚類算法將數據分為k類,相應地得到k個聚類中心ji(i=1,2,…,k)。將相鄰兩個聚類中心的中點做為論域子區間的邊界點,定義邊界點為di(i=1,2,…,k-1)。劃出k個子區間:(Dmin,d1)、(d1,d2)、(d2,d3)、…、(dk-1,Dmax),分別用 u1、u2、…、uk表示。可以看出,各子區間長度各異,這是因為樣本數據在其論域上的分布不是均勻的,而是有其復雜的內部結構,用聚類結果來指導子區間的劃分顯然比等分論域能更好地反映數據結構,有利于提高預測精度。
最后定義子區間對應的模糊集合,并將數據模糊化。定義模糊集合Ai為:

其中,fij表示uj對模糊集合Ai的隸屬度(i=1,2,…,k;j=1,2,…,k)。數據的模糊化規則為:如果某樣本數據屬于ui,且ui對Ai的隸屬度在其所有隸屬度中是最大值,則可將該數據值模糊化為Ai。將所有樣本數據模糊化,得到對應的模糊時間序列。將股票每日收益率、5日移動均線變化值、成交量和DHL四個時間序列分別定義為{R(t)}、{M(t)}、{V(t)}和{D(t)}(t=1,2,…,n),其中n為訓練樣本數。根據式(1)得出聚類數分別為k1,k2,k3和k4,在各自的論域上將上述4個時間序列模糊化后得到的模糊時間序列分別為 A(t,i)(i=1,2,…,k1),B(t,j)(j=1,2,…,k2),C(t,p)(p=1,2,…,k3)和D(t,q)(q=1,2,…,k4;t=1,2,…,n)。
步驟2 建立模糊關系
選用n天的樣本數據作為建模的訓練數據,設當天為t,前三天分別為t-3,t-2和t-1,t=1,2,…,n。利用上述模糊時間序列建立具有四前件、三階模糊關系的模糊時間序列預測模型:

其中 i1,i2,i3,i4=1,2,…,k1;j1,j2,j3=1,2,…,k2;p1,p2,p3=1,2,…,k3;q1,q2,q3=1,2,…,k4。則按時間順序可以依次建立共計n-3個模糊關系,形成訓練數據模糊關系表,如表1所示。
步驟3 預測并去模糊化
(1)預測
預測未來T時刻的模糊收益率A(T,i4),其模糊邏輯關系式為:

表1 訓練數據模糊關系

將上式左邊的前件依次與表1中列出的n-3個關系式的前件逐個進行對比。具體地,本文提出的對比原則是:計算前件相同位置上第二下標的差值的絕對值,例如,模糊集合A(T-3,i3)中 i3=m3(1≤m3≤k1),A(t-3,i3)中 i3=n3(1≤n3≤k1),則差值絕對值為|m3-n3|,將12對模糊集合第二下標的差值絕對值求和,如果和小于等于某一設定值(如20),則認為關系匹配成功。這樣做的優點是整體度量兩個模糊關系前件的差異,設定的值越小,差異度量越精確,但匹配成功的次數將隨之降低,反之亦然。如果一次預測關系匹配成功的個數為N,則這N個訓練數據模糊關系式的后件構成了本次預測結果集合A(·,·),該集合中模糊集合出現的次數不一定相同,有些可能多次出現,有些則可能僅出現一次。設各可能出現結果值的頻數為 fi(i=1,2,…,k1),預測結果集合如表 2所示,集合中的每一個模糊集合對應一個聚類中心。
(2)去模糊化
采用重心法去模糊化。根據表2結果去模糊化得到預測值

選取上證綜合指數和深證成份指數每日收益率、收盤價、最高價、最低價和成交量為樣本,區間分別為2005-12-14至2009-4-15和2005-12-26至2009-4-15①數據來源于清華金融研究數據庫(http://211.157.28.243/terminal/system/gotoLogin.action)。。收益率采用對數收益率,DHL由最高價、最低價和收盤價計算得到。由于成交量數值比較大,將其單位改為萬手。最后得到上證綜指有效數據共800天,深證成指共794天。
依照前文的建模步驟,使用上證指數的數據來說明預測過程。
步驟1 模糊化
取前750個交易日數據作為訓練樣本,后50個交易日數據用于預測。以上證指數收益率的模糊化過程為例。

表2 一次模糊預測所有可能的結果
首先定義論域U。收益率訓練樣本中最大值和最小值分別為 0.0903 和-0.0926,σ=0.0258。 得到 U=[-0.1184,0.1161]。由于市場實施10%的漲跌幅限制,在[-0.1,0.1]范圍以外沒有值,所以我們定義收益率論域U=[-0.1,0.1]。
其次劃分子區間。根據式(1)可得分類數k1=10,使用matlab模糊邏輯工具箱函數中的模糊C-均值聚類函數fcm將訓練數據進行分類,得到10個聚類中心分別為:-0.0789,-0.0483,-0.03,-0.0181,-0.0067,0.0015,0.0089,0.0167,0.0267,0.0446,以相鄰兩個聚類中心中點作為子區間的分界點,將論域劃分成10個子區間分別為u1=[-0.1,-0.0636),u2=[-0.0636,-0.0392),u3=[-0.0392,-0.024),u4=[-0.024,-0.0124),u5=[-0.024,-0.0026),u6=[-0.0026,0.0052),u7=[0.0052,0.0128),u8=[0.0128,0.0217),u9=[0.0217,0.0356),u10=[0.0356,0.1]。
再根據式(2)定義模糊集合為:

最后將數據模糊化。例如,2006-11-17的收益率為0.0155,它落在區間u8內,u8對于A8的隸屬度在所有區間中最大,所以將0.0155模糊化為A8。將收益序列中所有數據模糊化后可得對數收益率的模糊時間序列。同樣方法將其它三個序列的數據在各自論域上模糊化為模糊時間序列。
步驟2 建立模糊關系
利用750日的訓練數據可構造747(=750-3)個模糊關系如表3所示,然后將預測T日的模糊關系式(5)中的前件與這747個模糊關系的前件進行比對,選出匹配成功的模糊關系。需要指出的是,為了書寫簡潔,又不致產生歧義,后文中省略了模糊時間序列中模糊集合的第一個(時序)下標。

表3 上證指數訓練數據模糊關系
步驟3 預測并去模糊化
(1)預測
以2009-2-4這一天為例說明預測過程。當日收益率為Ar。用前3天歷史數據并根據式(5)可建立模糊邏輯關系式為:

將其前件中的模糊集合與表3中各關系式前件中對應的模糊集合根據對比原則進行一一對比,最后匹配成功的關系式個數為58個,這58個模糊關系式的后件構成了預測結果集合如表4所示。

表4 上證指數2009-2-4模糊預測結果
(2)去模糊化
根據公式(4)可以得出2009-2-4日的收益率預測結果為0.00142239。當天的實際收益率為0.023。
對上證指數和深證指數從2009-2-4至2009-4-15的50天價格的預測結果如圖1、圖2和表5所示。為客觀評價本文提出的模糊時間序列模型的預測效果,我們特意將其與模糊時間序列中的標志模型進行對比,結果如表5所示。
由表5(第2、4列)可以看出,對于同樣兩市指數的50日預測,Chen的模型[4]的平均預測誤差接近或高于2.5% ,而本文建立的模型的平均預測誤差都明顯低于2%,預測結果的改進還是很明顯的。同時也說明本文在論域劃分以及模型變量的選擇方面所作的努力還是有一定成效的,同時也表明,對于處理復雜問題的模糊時間序列而言,在論域劃分和模型變量選擇應予以高度重視。


價格指數數值的預測固然重要,但是退一步,其未來的變化趨勢即漲跌無疑也是非常重要的信息。應用本文建立的模糊時間序列模型分別對上證指數、深證指數未來漲跌趨勢進行預測,預測區間:2009-2-4至2009-2-24。預測的過程同上,只是省了去模糊化這一步驟,直接在論域上找出預測得到的模糊集合(后件)所對應的子區間ui(i=1,2,…,k1),進而判斷指數變動趨勢。同樣地,我們也將其與Chen的模型進行了對比,結果如表5(第3、5列)所示。Chen的模型對兩市指數的趨勢預測正確率均低于60%,而本文模型的預測正確率分別接近或高于70%。
本文將時間序列分析與模糊規則結合起來所產生的模糊時間序列模型具有兩者的優點,是時間序列分析方法的拓展,將其應用于股票價格的預測是一種有益的嘗試。
模糊時間序列模型的預測精度主要取決于兩點:論域的子區間劃分和模糊關系的建立。前者要求合理劃分論域,反映真實的數據分布結構,并以此為基礎選擇適當的去模糊化方法;后者則要求不僅對數據的擬合精度高,而且還要求模型具有較好的推廣能力,為達到這一目的,必須選擇適當的模型變量,即前件變量,同時還要建立有效的模糊規則。因此本文選擇模糊聚類方法實現對論域的子區間劃分,力求客觀地反映樣本數據的結構分布,并為劃分論域提供一個比較客觀的方法。相應地,采用重心法區模糊化,實現對收益的精確預測。影響價格的因素很多,但模型中又不可能引入過多的變量,否則不僅導致運算量過大,而且使模糊關系過于復雜,使模型的推廣能力下降。基于上述考慮,本文選擇歷史收益率、5日移動平均線、成交量以及多空雙方強弱對比4個變量作為模型的變量,建立了多前件的模糊時間序列模型,并特別設計了能反映多空雙方力量對比的指標DHL以及模糊規則的確定原則。預測結果表明,本文建立的模糊時間序列模型較典型的模糊時間序列模型具有較高的預測精度。

表5 上證、深證指數預測誤差
由于所面臨問題的復雜性,模糊時間序列模型的運用是問題導向的。即論域的劃分、模糊關系的建立必須根據具體問題設計合理的方法,這些方面仍有許多工作要做。例如模糊關系前件比對過程中,本文選擇的20這一數值僅僅是經過累試后得到的,工作量比較大;另外,論域的劃分與模糊規則的建立目前還是獨立的兩部分內容,如果將二者聯合起來綜合考慮,對提高模型精度無疑具有重要意義。
[1]Song,Q.,Chissom,B.S.Fuzzy Time Series and Its Models[J].Fuzzy Sets and Systems,1993,(54).
[2]Song,Q.,Chissom,B.S.Forecasting Enrollments with Fuzzy Time series-Part I[J].Fuzzy Sets and Systems,1993,(54).
[3]吳銘鋒,蔣勛.基于模糊時間序列的預測模型-以上證指數為例[J].價值工程,2008,(11).
[4]何云峰,楊燕.基于模糊時間序列-股票走勢的建模與應用[J].微計算機信息,2006,(33).
[5]張智星,孫春在.神經-模糊和軟計算[M].西安:西安交通大學出版社,2000.