摘要:本文基于ABM的思想,建立了一個多主體市場仿真模型——A-B模型,并借助MATLAB對XCS機制下的模型進行了仿真分析。最后,采用基于方差的靈敏度分析方法,對A-B模型進行了進行了靈敏度分析,以判斷模型輸入對輸出的影響。
關鍵詞:A-B模型;XCS;仿真分析;靈敏度分析
一、引言
學術界對金融市場有效性的爭論由來已久,既包括理論層面的挑戰,又有實證方面的攻擊。Campbell和Shiller給出了長期可預測性的證據,而Lo和MacKinlay則給出了短期可預測性的證據。除了可預測性之外,還有很多實證金融謎題和特征性事實難以利用傳統資產定價模型來解釋。
可見傳統方法還不能很好解釋大量實證問題,金融市場的很多未解實證謎題以及大量的可得數據都為基于主體建模(Agent-Based Modeling, ABM)技術提供了廣闊的舞臺。由此,在金融市場研究中出現了一個新的領域,即基于主體的計算金融學(Agent-Based Computational Finance, ACF)。ACF研究思想將金融市場看成具有學習能力的有限理性主體的交互性群體,通過建立基于主體的金融市場模型,用計算機模擬與實驗的方式復制重現真實金融市場的行為。通過基于主體的模擬,我們可以對交易者的微觀行為與市場總體行為之間的關系有更深的理解。
本文以ABM的思想為基礎,建立了多主體市場仿真模型——A-B模型,并分析了XCS機制下模型的性質及其靈敏度。
二、A-B模型
根據ABM的思想,我們將多主體市場抽象為圖1所示模型(稱其為A-B模型),通過該模型來研究多主體市場的特征。模型具體描述如下:
1.模型包括兩類agent(市場參與者):A類和B類。
2.A(B)類agent生產產品a(b),所需原材料是b(a)產品,兩類agent的生產與銷售形成一個閉環系統。
3.兩個產品市場,市場a和b,市場主要用于確定產品的出清價格,a(b)產品的價格取決于當期a(b)產品的生產和需求量。
由于A-B模型只有兩類參與者:A和B,所以可以稱其為A與B之間的博弈。而模型是多主體市場的抽象化表述,主要是為了研究產品a和b的產量變化及其相應期的價格變化,以分析市場情況,所以模型的研究和分析主要是圍繞產品a和b的產量和價格的波動情況。
圖1 A-B模型
三、XCS理論基礎
1995年,Wilson改進了經典學習分類器系統,將學習分類器系統中的遺傳算法的適應度基于準確值進行定義,提出了分類器適應度基于回報預測準確度的學習分類器——XCS。
在XCS中,分類器采用三個參數代替經典學習分類器的強度參數:
1.預測P:估計分類器期望得到的環境回報。
2.預測誤差 :預測P的估計誤差。
3.適應度F:預測誤差 的反函數,評估環境回報預測P的準確度。
圖2 XCS的系統結構
與LCS相似,XCS也由三個子系統組成:執行子系統、信用分配子系統和規則發現子系統。XCS的系統結構圖如圖2所示。
與經典學習分類器系統相比,XCS作了如下幾點改進:
1.對于具有不同回報級別的環境,為了建立對環境更完整的匹配,XCS中的遺傳算法基于適應度參數進行個體選擇,為了保持種群的多樣性,將遺傳算法只應用于具有相同小環境的動作集中,形成一種小生境遺傳算法而不采用經典學習分類器系統中的基本已傳算法。
2.信用分配采用了近似Q-學習算法而不是桶隊列算法進行分類器參數更新。
3.為了平均分配不同小生境的分類器資源,在新個體加入種群的過程中,采用了包含刪除算法。
四、A-B模型仿真分析
本部分我們將借助MATLAB對A-B模型仿真分析。首先,對模型的基本博弈機制做如下設定:(1)每個個體每期的產量只有0或者1兩種情況;(2)兩類個體的數量隨機生成且相等。(3)a和b的價格采用如下公式確定:
(1)
其中, 為a(b)產品第 期的價格, 為第T期的價格,D為b(a)對a(b)的實際需求量,S為a(b)的實際供給量。
設模型中A和B雙方各生產一次稱為一次博弈,多次博弈稱為一次運行,多次運行稱為一次實驗。
A和B兩類個體在博弈過程按照如下規則進行生產決策:
1.前三期均贏利,則該期生產1。
2.前三期均虧損,則該期生產0。
3.前五其中有四期或四期以上生產1,則當期生產1。
4.前五其中有四期或四期以上生產0,則當期生產0。
5.其余情況,按照XCS規則,根據歷史信息(前m期的生產和盈利情況)進行決策。
經過一定次數的實驗之后,模型產生如下結果:
圖3 a和b產量變化圖 圖4 a和b價格變化圖
如圖3所示,在上述機制下,a產品和b產品產量的變化趨勢為:經過一段時間的交替領先后,兩種產品產量達到均衡,即兩種產品的產量相等,不再變化。原因是在波動階段,每個個體都在根據環境信息不斷調整自己的決策,最終達到均衡。達到均衡后,每個個體按照均衡態進行生產,保持了均衡。
如圖4所示,與產量變化趨勢相似,a和b產品的價格在二者的產量達到均衡的同時也達到了均衡,這與經濟學的原理相符合,即當兩種產品的產量相等時,二者的價格也應相等。
五、靈敏度分析
仿真靈敏度分析并沒有一個統一的定義,但是學者們的理解基本一致,指的是不斷改變系統的狀態、參數、結構和政策,運用仿真模型,比較該模型的輸出,從而確定這些變化的影響。
假設變化參數、輸出行為變量和靈敏度分別以S,Y,S表示,則根據靈敏度定義很自然地得到有關參數變化形式的定義式:
(2)
為了避免單位不一致與量綱帶來的問題,最好的方法是引入百分比變化表示參數和行為變量的各自變化。因為百分比變化是與單位和量綱無關的純數,這樣靈敏度的定義式可表達為:
(3)
即:(4)
在第三部分中,我們分析了模型的價格和產量變化特征,下面我們分析模型的輸參數(入個體數N和個體記憶容量m)對模型輸出的影響(模型達到均衡所需的運行次數n)。
我們固定記憶容量,變化個體數N,觀察n的變化。首先將兩類個體的數目的標準值均設為150,然后以150為基準線,我們將N上下調整一定比例,觀察n的變化情況。結果如圖5所示。
圖5 個體數N對模型達到均衡所需博弈次數n的影響
從圖中我們可以看出,隨著個體數的增加,達到均衡所需博弈的次數在遞增,而且是加速遞增。可以想象,當個體的數目為無窮大時,模型將無法達到均衡。
我們將個體數固定為150,變化個體的記憶容量m,看其對n的影響。m的變化不能像N的變化一樣,由百分比來觀察,因為一般的記憶容量是有限的很小的數,所以我們將觀察的是不同m值處的n的值。我們假設m最小值取到3,最大值可以為12,在每個m值處,我們都進行了大量的實驗,通過求出每個m值對應的n的均值,我們得到如下如圖6所示關系。
圖6 個體記憶容量m與模型達到均衡所需博弈次數n關系圖
從圖6可以看出,隨著m的增加,n基本上也不斷增加,且m<6時,加速增加;m>6時,緩慢增加,隨著m的繼續增加,n不會繼續增加,基本上保持在m=12的水平。由此可見,m=6是n變化的一個拐點,也是觀察模型的最好的m值點。
六、總結及下一步工作
A-B市場博弈模型雖然簡單,但是卻可以借以分析復雜的市場系統,解釋復雜的經濟現象,可以說是市場經濟系統的經典模型。本文只是為多主體市場經濟系統研究提出了一種研究方法,該方法能夠從微觀角度研究市場參與者的經濟行為,關于A-B模型的研究有待進一步的研究,尤其是其應用方面值得關注。
參考文獻:
[1]Grossman S J, Stiglitz J E. On the impossibility of Information ally Efficient Markets[J]. American Economic Review, 1980,70(3).
[2]錢燕翔. 基于主體的金融市場超額波動性的模擬研究[J]. 統計與決策,2009,1:35-36.
[3]Bankes,Steven C. Agent-based modeling: A revolution?[J]. Proceedings of the National Academy of Sciences of U.S.A. , 2002,99, suppl.3: 7199–7200.
[4]LeBaron Blake. Agent-based Computational Finance. Working Paper, March 2005. http://people.brandeis.edu/~blebaron/wps.html.
[5]沈曉蓉,張海,孫先仿,范躍祖. 基于遺傳算法的學習分類器系統研究[J]. 控制與決策, 2006,21(3): 323-326,330.