徐成賢,陳 靜,王 昭
(1.杭州師范大學(xué) 國(guó)際服務(wù)工程學(xué)院,杭州 310012;2.西安交通大學(xué) a.經(jīng)濟(jì)與金融學(xué)院;b.理學(xué)院,西安 710049)
在布雷頓森林體系崩潰后,隨著浮動(dòng)匯率制度的實(shí)施以及外匯管制的放松,匯率的變動(dòng)頻率越來(lái)越快,對(duì)匯率變化的預(yù)測(cè)已成為金融監(jiān)管當(dāng)局、投資者和金融分析專業(yè)人士普遍關(guān)心的一個(gè)焦點(diǎn)。匯率影響因素的多元化使得匯率變化行為更加復(fù)雜,呈現(xiàn)出非線性的特點(diǎn),這些特點(diǎn)加大了匯率預(yù)測(cè)的難度。
支持向量機(jī)(Support Vector Machine,SVM)是Vapnik等人[1][2]于1995年提出的數(shù)據(jù)挖掘的一個(gè)新方法,并已成功地應(yīng)用于金融時(shí)間序列的預(yù)測(cè)預(yù)報(bào)[3~5]。SVM的特點(diǎn)是能夠同時(shí)最小化經(jīng)驗(yàn)誤差與最大化分離間隔,且訓(xùn)練預(yù)測(cè)模型的過(guò)程是求解一個(gè)具有唯一最優(yōu)解的二次約束最優(yōu)化問(wèn)題,這使得該方法的復(fù)雜程度僅取決于所要求解的精度以及訓(xùn)練樣本的數(shù)量,而與輸入空間的維數(shù)無(wú)關(guān),避免了維數(shù)災(zāi)難這一難題。多項(xiàng)式光滑[6]與不等權(quán)重[7]則是提高SVM求解和預(yù)測(cè)效果的兩個(gè)有效措施?;谝陨涎芯浚疚臄M首先給出不等權(quán)重支持向量機(jī)(USVM)及其多項(xiàng)式光滑處理;然后應(yīng)用此不等權(quán)重支持向量機(jī)給出對(duì)美元/人民幣、歐元/人民幣、日元/人民幣匯率變動(dòng)作預(yù)測(cè)的多變量預(yù)測(cè)模型;接著將不等權(quán)重支持向量機(jī)方法應(yīng)用于訓(xùn)練樣本集的子集來(lái)確定預(yù)測(cè)模型(減少訓(xùn)練樣本的數(shù)量),再用遺傳算法對(duì)預(yù)測(cè)模型作全局優(yōu)選,由此形成將兩者組合的遺傳不等權(quán)重支持向量機(jī)方法(GAUSVM);最后就(GAUSVM)方法的預(yù)測(cè)效果進(jìn)行實(shí)證分析。
給定樣本數(shù)據(jù)集T={(x(i),y(i)),i=1,2,…,l}∈X×Y其中x(i)∈X?Rn為輸入向量,y(i)∈Y={-1,1}。支持向量機(jī)在對(duì)數(shù)據(jù)集T按y(i)的取值分類時(shí)需確定分類超平面g(x)=sign(wTΦ(x)+γ),它可通過(guò)求解下面的約束最優(yōu)化問(wèn)題確定
由(2)對(duì)任意的輸入x∈X可確定相應(yīng)的y=g(x)的值,并由此值作出預(yù)測(cè)。
問(wèn)題(1)對(duì)所有數(shù)據(jù)點(diǎn)的誤差ξi都賦予了相同的權(quán)重C。對(duì)于具有時(shí)間特征的金融時(shí)間序列,對(duì)不同時(shí)間點(diǎn)的誤差ξi都賦予相同的權(quán)重未必是一個(gè)合適的選擇??紤]到近期的數(shù)據(jù)所提供的信息對(duì)模型的影響一般要大于早期數(shù)據(jù)所提供的信息,采用遞增的權(quán)重可能會(huì)更合適,由此可得用于金融時(shí)間序列預(yù)測(cè)的不等權(quán)重的支持向量機(jī)模型
其中,Ci>0,為一單調(diào)增的權(quán)重序列。Tay和Cao在文[3]中給出了Ci的一個(gè)取法
其中a>0是控制權(quán)重遞增速率的參數(shù)。
再考慮問(wèn)題(3)的求解,由問(wèn)題(3)的約束條件,可以得出可行的ξi可以表示為
其中(α)+=max{α,0}。將(5)代入(3)的目標(biāo)函數(shù)中,可將約束優(yōu)化問(wèn)題(3)轉(zhuǎn)化成等價(jià)的無(wú)約束優(yōu)化問(wèn)題
這是一個(gè)凸二次優(yōu)化問(wèn)題,但由于w*唯一,而γ*不唯一,可對(duì)問(wèn)題作進(jìn)一步的修改
這是一個(gè)嚴(yán)格凸二次最優(yōu)化問(wèn)題,最優(yōu)解(w*,γ*)唯一。但由于目標(biāo)函數(shù)中(α)+=max{α,0}不可微,這是一個(gè)不可微最優(yōu)化問(wèn)題。我們用文[1]給出的連續(xù)可微的分段多項(xiàng)式來(lái)近似函數(shù) (α)+=max{α,0}
得連續(xù)可微的無(wú)約束最優(yōu)化問(wèn)題
函數(shù)(8)在區(qū)間 (-1/k,1/k)外同函數(shù) (α)+=max{α,0}取值相同,而在區(qū)間 (-1/k,1/k)內(nèi)對(duì) (α)+=max{α,0}的近似精度為
對(duì)無(wú)約束最優(yōu)化問(wèn)題(9)可利用BFGS這一有效的無(wú)約束優(yōu)化算法求解。
在利用SVM確定最優(yōu)分類超平面時(shí),一個(gè)顯著的特征是只有少數(shù)被稱為支持向量的樣本數(shù)據(jù)起決定性的作用。相對(duì)于給定的訓(xùn)練樣本,大量的非支持向量樣本數(shù)據(jù)對(duì)分類超平面的確定幾乎不起作用??紤]到這一特征,我們?cè)趯?duì)給定數(shù)據(jù)集應(yīng)用不等權(quán)重支持向量機(jī)確定分類超平面時(shí),將隨機(jī)選用數(shù)據(jù)集中的部分?jǐn)?shù)據(jù)(子集)來(lái)確定分類超平面,并用遺傳算法在這些分類超平面中搜索最優(yōu)的分類超平面,稱由此形成的算法為遺傳不等權(quán)重支持向量機(jī)算法(GAUSVM)。這一則可以減少訓(xùn)練樣本點(diǎn)的數(shù)量,降低問(wèn)題(9)的復(fù)雜度,提高算法對(duì)其求解的效率,另一方面通過(guò)遺傳算法對(duì)預(yù)測(cè)模型作全局優(yōu)化搜索,可以確定盡可能好的預(yù)測(cè)模型。為方便對(duì)GAUSVM的敘述,首先給訓(xùn)練樣本數(shù)據(jù)集T中的?個(gè)樣本數(shù)據(jù){(x(i),y(i)),i=1,…l}按某種次序編號(hào),遺傳算法中的一個(gè)個(gè)體對(duì)應(yīng)T的一個(gè)子集。設(shè)初始種群中每個(gè)個(gè)體所對(duì)應(yīng)的子集包含樣本數(shù)據(jù)的數(shù)量為M,每代種群的規(guī)模為N,種群最大進(jìn)化次數(shù)為K,則算法GAUSVM的主要步驟如下:
步驟1隨機(jī)生成N個(gè)個(gè)體形成初始種群
每個(gè)個(gè)體由隨機(jī)生成的二元值向量η=(η1,…ηl)確定,其中每一分量ηi的取值或?yàn)?或?yàn)?,且所有分量之和等于M。如果ηi=1,表示對(duì)應(yīng)的樣本點(diǎn)(x(i),y(i))入選該個(gè)體對(duì)應(yīng)的子集,如果ηi=0,表示對(duì)應(yīng)的樣本點(diǎn)沒(méi)有入選該個(gè)體對(duì)應(yīng)的子集。每個(gè)向量η對(duì)應(yīng)數(shù)據(jù)集T的一個(gè)包含M個(gè)數(shù)據(jù)點(diǎn)的子集。對(duì)每個(gè)個(gè)體應(yīng)用上節(jié)的不等權(quán)重支持向量機(jī)得到一個(gè)預(yù)測(cè)模型,應(yīng)用這個(gè)預(yù)測(cè)模型于檢測(cè)數(shù)據(jù)集得到這個(gè)預(yù)測(cè)模型的預(yù)測(cè)正確率,記為這個(gè)個(gè)體的適應(yīng)度。
步驟2 交叉運(yùn)算(均勻交叉)
從種群中隨機(jī)選取兩組(每組兩個(gè))個(gè)體,在每組再選擇適應(yīng)度高的個(gè)體作為父代進(jìn)行交叉運(yùn)算產(chǎn)生子代。交叉過(guò)程采用均勻交叉:若兩父代的η在某位都為1,則子代節(jié)點(diǎn)在該位也為1;若兩父代在某位都為0,則子代節(jié)點(diǎn)在該位也為0;若兩父代在某位一個(gè)為0,一個(gè)為1,那么子代在該位為0或者為1的概率均為50%。
步驟3變異(固定的變異概率q,取p為小于或等于q?的最大整數(shù))
步驟4進(jìn)化
對(duì)子代應(yīng)用不等權(quán)重支持向量機(jī)確定一個(gè)預(yù)測(cè)模型,并計(jì)算其適應(yīng)度。將其加入種群,并將種群中適應(yīng)度最差的一個(gè)個(gè)體刪去。
步驟5 停機(jī)檢驗(yàn)
若新產(chǎn)生的子代個(gè)體的適應(yīng)度函數(shù)達(dá)到精度要求,或者產(chǎn)生子代的進(jìn)化次數(shù)超過(guò)允許的最大進(jìn)化次數(shù)K時(shí),停機(jī),選取當(dāng)時(shí)種群中適應(yīng)度最高的個(gè)體作為需要的最優(yōu)解,產(chǎn)生預(yù)測(cè)模型。否則轉(zhuǎn)步驟2進(jìn)入新一輪的遺傳①經(jīng)過(guò)交叉變異進(jìn)化后的每個(gè)子代個(gè)體,其所對(duì)應(yīng)的子集包含的數(shù)據(jù)數(shù)量有可能不再等于預(yù)先指定的數(shù)量M。。
下面我們將應(yīng)用前述的遺傳不等權(quán)重支持向量機(jī)方法就美元/人民幣(U/C)、歐元/人民幣(E/C)、日元/人民幣(J/C)匯率變動(dòng)的預(yù)測(cè)作實(shí)證檢驗(yàn)分析。一般情況下,匯率變動(dòng)受兩國(guó)的經(jīng)濟(jì)乃至世界經(jīng)濟(jì)發(fā)展?fàn)顩r的影響,考慮到數(shù)據(jù)的獲取可能,我們分別選擇道氏中國(guó)600指數(shù)(DJCBN600)、道氏中國(guó)88指數(shù)(DJC-88)、道氏中國(guó)海外50指數(shù)(DJCOS50)、道氏中國(guó)市場(chǎng)指數(shù)(DJCMT)、道氏上海指數(shù)(DJSH)、道氏深圳指數(shù)(DJSZ)、道氏美國(guó)指數(shù)(DJUS)、標(biāo)準(zhǔn)普爾500指數(shù)(SP500)、納斯達(dá)克綜合指數(shù)(NASDAQ)、法國(guó)CAC40指數(shù)(CAC)、德國(guó)DAX指數(shù)(DAX)以及日經(jīng)225指數(shù)(NIKKEI)作為中國(guó)、美國(guó)、歐元區(qū)及日本經(jīng)濟(jì)發(fā)展?fàn)顩r的指標(biāo),并選取2008-12-10至2009-7-13期間這些指數(shù)連同上述3種匯率的日收盤價(jià)作為對(duì)遺傳不等權(quán)重支持向量機(jī)方法進(jìn)行實(shí)證分析與檢測(cè)的數(shù)據(jù)。由于這些數(shù)據(jù)分屬不同國(guó)家,對(duì)這些數(shù)據(jù)作預(yù)處理后,共有125組有效數(shù)據(jù)。
對(duì)于匯率變動(dòng)方向預(yù)測(cè),下面以美元/人民幣匯率為例建立預(yù)測(cè)模型,對(duì)于歐元/人民幣及日元/人民幣匯率可用同樣的方法建立預(yù)測(cè)模型。首先記美元/人民幣第i日的匯率為,道瓊斯中國(guó)指數(shù)第i日的指數(shù)為對(duì)其余各指數(shù)都用類似的符號(hào)表示。對(duì)匯率及各指數(shù)數(shù)據(jù)按
計(jì)算匯率第i日的變動(dòng)方向與對(duì)數(shù)收益,及各指數(shù)第i日的對(duì)數(shù)收益。由此形成用上述遺傳不等權(quán)重支持向量機(jī)方法對(duì)美元/人民幣匯率變動(dòng)作預(yù)測(cè)進(jìn)行實(shí)證分析檢測(cè)的樣本集T={(x(i),y(i)),i=1,2,…,?},其中 ?=124。
這里p為待定的滯后階數(shù),它將在下節(jié)實(shí)證分析時(shí)根據(jù)預(yù)測(cè)效果確定p的取值。
在實(shí)證分析時(shí),樣本集124組數(shù)據(jù)中的前100組將用作訓(xùn)練集,用于用遺傳不等權(quán)重支持向量機(jī)等方法確定預(yù)測(cè)模型
后面余下的24組數(shù)據(jù)用作檢測(cè)集,用于檢測(cè)所確定模型的預(yù)測(cè)精度??紤]到人工神經(jīng)網(wǎng)絡(luò)模型在匯率預(yù)測(cè)中已被成功應(yīng)用,本文選擇采用BP算法的單隱層前向人工神經(jīng)網(wǎng)絡(luò)模型(ANN),一般的支持向量機(jī)方法(SVM),不等權(quán)重支持向量機(jī)方法(USVM)與遺傳不等權(quán)重支持向量機(jī)算法(GAUSVM)就三種匯率變動(dòng)的預(yù)測(cè)效果作比較。
首先選擇確定各模型中的參數(shù)值。對(duì)于遺傳算法中的參數(shù),種群的規(guī)模取為N=50,每個(gè)子集(個(gè)體)包含數(shù)據(jù)點(diǎn)的數(shù)量為M=15,固定變異概率q=10%,允許最大進(jìn)化次數(shù)K=250;分段光滑多項(xiàng)式(2-8)中的k=10,單隱層前向人工神經(jīng)網(wǎng)絡(luò)模型(ANN)隱層內(nèi)的結(jié)點(diǎn)數(shù)取為d=6。支持向量機(jī)模型中的映射Φ取為恒等映射,即Φ(x)=x,模型中的參數(shù)C,變權(quán)重系數(shù)公式(4)中的調(diào)節(jié)參數(shù)a,及式(14)中的滯后階數(shù)p,則須經(jīng)實(shí)證分析比較后選定。表1分別給出了對(duì)美元/人民幣、歐元/人民幣、日元/人民幣日匯率變動(dòng)進(jìn)行實(shí)證比較分析后選定的這幾個(gè)參數(shù)的值。
表2給出了各支持向量機(jī)方法及神經(jīng)網(wǎng)絡(luò)模型在檢測(cè)集(樣本外)數(shù)據(jù)及訓(xùn)練集(樣本內(nèi))數(shù)據(jù)上對(duì)各人民幣匯率未來(lái)一天變動(dòng)方向的預(yù)測(cè)正確率。
表1 預(yù)測(cè)匯率變動(dòng)的各SVM模型的最優(yōu)參數(shù)值
表2 各SVM模型及ANN模型對(duì)匯率變動(dòng)的預(yù)測(cè)結(jié)果
表2可以得出下述結(jié)論:(1)各支持向量機(jī)方法在檢測(cè)集和訓(xùn)練集上的預(yù)測(cè)效果均要好于ANN模型的預(yù)測(cè)效果,證實(shí)了同時(shí)實(shí)現(xiàn)最小化經(jīng)驗(yàn)誤差與最大化分離間隔的支持向量機(jī)方法在匯率變動(dòng)預(yù)測(cè)方面的優(yōu)越性;(2)USVM方法在檢測(cè)集上的預(yù)測(cè)效果要優(yōu)于SVM方法(僅在E/C上較SVM稍差),一定程度上證實(shí)了近期數(shù)據(jù)對(duì)未來(lái)變化的影響較早期數(shù)據(jù)大的假設(shè);(3)GAUSVM方法在檢測(cè)集上的預(yù)測(cè)效果明顯優(yōu)于其它兩個(gè)SVM方法,這表明通過(guò)把遺傳算法與USVM進(jìn)行組合能夠有效地提高USVM的預(yù)測(cè)效果,加強(qiáng)其數(shù)據(jù)挖掘功能。
表3給出了三個(gè)支持向量機(jī)方法確定的預(yù)測(cè)模型相應(yīng)的支持向量個(gè)數(shù)(支持向量與非支持向量之和為訓(xùn)練集樣本點(diǎn)數(shù))。
表3 匯率預(yù)測(cè)的各SVM模型的支持向量個(gè)數(shù)
從表3可以看出,SVM與USVM模型對(duì)三種匯率所確定的預(yù)測(cè)模型支持向量的分布很不均勻,而GAUSVM方法由于利用遺傳算法對(duì)預(yù)測(cè)模型進(jìn)行了全局優(yōu)選,因而由其得出的對(duì)三種匯率預(yù)測(cè)模型支持向量的分布比較均勻和集中。這一點(diǎn)在表2的對(duì)檢測(cè)集預(yù)測(cè)正確率的結(jié)果中有所體現(xiàn)。這些結(jié)果表明將遺傳算法與支持向量機(jī)方法結(jié)合對(duì)預(yù)測(cè)模型選優(yōu)可以有效地提高模型的預(yù)測(cè)效果。
本文在對(duì)一般支持向量機(jī)方法進(jìn)行不等權(quán)重和多項(xiàng)式光滑改進(jìn)的基礎(chǔ)上,將不等權(quán)重支持向量機(jī)與遺傳算法結(jié)合,給出了對(duì)預(yù)測(cè)模型進(jìn)行選優(yōu)的遺傳不等權(quán)重支持向量機(jī)(GAUSVM)方法,并將該方法應(yīng)用于三種人民幣匯率變動(dòng)預(yù)測(cè)的實(shí)證分析和比較。將遺傳不等權(quán)重支持向量機(jī)方法與一般支持向量機(jī)方法(SVM)、不等權(quán)重支持向量機(jī)方法(USVM)及遺傳算法(ANN)對(duì)三種匯率變動(dòng)的預(yù)測(cè)效果比較表明,有下述主要結(jié)論:(1)支持向量機(jī)方法在檢測(cè)集和訓(xùn)練集上的預(yù)測(cè)效果均要好于ANN模型的預(yù)測(cè)效果。(2)由于GAUSVM方法利用遺傳算法對(duì)預(yù)測(cè)模型進(jìn)行了全局優(yōu)選,因而由其得出的對(duì)三種匯率預(yù)測(cè)模型的支持向量的分布比較均勻和集中。(3)USVM方法在檢測(cè)集上的預(yù)測(cè)效果要優(yōu)于SVM方法(僅在E/C上較SVM稍差),一定程度上證實(shí)了近期數(shù)據(jù)對(duì)未來(lái)變化的影響較早期數(shù)據(jù)大的假設(shè)。(4)GAUSVM方法在檢測(cè)集上的預(yù)測(cè)效果明顯優(yōu)于其它兩個(gè)SVM方法,這表明通過(guò)利用遺傳算法對(duì)預(yù)測(cè)模型選優(yōu)能夠有效地提高USVM的預(yù)測(cè)效果,加強(qiáng)其數(shù)據(jù)挖掘的功能。
[1] Vapnik V N.Statistical Learning Theory[M].New York:Wiley,1998.
[2] Vapnik V N,An Overview of Statistical Learning Theory[J].IEEE Transactions of Neural Networks,1990,(10).
[3] Cao L J,Support Vector Machines Experts for Time Series Forecasting[J].Neurocomputing,2003,(51).
[4] Huang W,Nakamori Y,Wang S Y.Forecasting Stock Market Movement Direction with Support Vector Machine[J].Computers and Operations Research,2005,(32).
[5] Schebesch K B,Stecking R.Support Vector Machines for Classifying and Describing Credit Applicants:Detecting Typical and Critical Regions[J].Journal of the Operational Research Society,2005,(56).
[6] 袁玉波,嚴(yán)杰,徐成賢.多項(xiàng)式光滑的支撐向量機(jī)[J].計(jì)算機(jī)學(xué)報(bào),2005,(1).
[7] Tay F E H,Cao L J.Descending Support Vector Machines for Financial Time Series Forecasting[J].Neural Prosessing Letter,2002,(15).
[8] 鄧乃楊,田英杰,數(shù)據(jù)挖掘中的新方法--支持向量機(jī)[M].北京:科學(xué)出版社,2004.