本文首發於微信公眾號:要資訊。文章內容屬作者個人觀點,不代表和訊網立場。投資者據此操作,風險請自擔。
貝葉斯方法簡介
貝葉斯方法提供了一種通過計算假設概率來預測未來概率的方法,這種方法是基於假設的先驗概率、給定假設下觀察到不同數據的概率以及觀察到的數據本身而得出的。 其方法為,將關於未知參數的先驗信息與樣本信息綜合,再根據貝葉斯公式,得出後驗信息,然後根據後驗信息去推斷未知參數的方法,再由此推斷出未來待預測變量的概率分布。
貝葉斯線性回歸模型與經典的線性回歸模型有很大區別,後者把回歸係數看作是固定的未知參數,而前者則把回歸係數看作是一個未知的概率分布,然後根據可獲得的樣本對這些未知分布進行推斷。在計算待預測變量的分布時需要根據回歸係數的分布在給定自變量的情況下進行採樣,從而得到待預測變量的分布。因此通常訓練貝葉斯模型和利用該類模型做預測的計算量都會比常規線性回歸要大。
本報告嘗試利用滬銅期貨的基本面周頻數據對滬銅期貨下一周的收益率分布進行預測,研究結果標明利用貝葉斯模型對期貨收益率預測有一定效果。根據該模型的預測結果對2016年3月至2017 年6月的純樣本外數據進行回測獲得年化收益17.8%,波動率22%,夏普率0.8。
貝葉斯方法背景介紹
比較常用的線性回歸其實是頻率主義學派的觀念:他們認為回歸參數是客觀存在的, 即使是未知的,但都是固定值,不會改變。而貝葉斯學派認為,待定參數和概率一樣是一個人對於一件事的信念強度,是主觀的。頻率學派認為進行一定數量的重複實驗後,如果出現某個現象的次數與總次數趨於某個值,那麼這個比值就會傾向於固定。最簡單的例子 就是拋硬幣了,在理想情況下,我們知道拋硬幣正面朝上的概率會趨向於 1/2。但貝葉斯提出了一種截然不同的觀念,他們認為概率不應該這麼簡單地計算,而需要加入先驗概率 的考慮。先驗概率也就是說,我們先設定一個假設,然後我們通過一定的實驗來修正這個假設,這就是後驗。應用在回歸分析上也是類似的道理,我們先對線性回歸係數的分布作 出一個假設,隨後根據訓練集的樣本去修正這些分布。
這個修正過程通常有兩類方法,一種是根據係數的先驗分布生成隨機數採樣模擬,計 算此樣本觀測到的待預測變量的概率,再據此調整先驗分布,這就是馬爾科夫鏈蒙特卡諾(MCMC)方法。另外一種則是把待預測變量的概率密度函數參數化表示,把隨機採樣問 題轉化為優化問題,即最小化待預測變量的概率密度函數與其真實概率密度之間的距離, 這就是變分推斷(Variational Inference)。有關研究認為這兩種方法的精度比較接近,但變 分推斷有可能低估預測變量的方差。變分推斷與馬爾科夫鏈蒙特卡諾相比最大的優勢在於 計算量被大大減少了,所以這種方法比較適用於較為複雜的模型。
理論上貝葉斯模型與頻率模型相比具有較大優勢,首先這類模型更加符合人們對事物的認知過程。人們在認知過程中總會有一個預期,這個就是先驗分布。如果是一個完全陌生的事物,那麼這個預期就相當於是一個均勻分布,即各種可能性均相等。人們總是通過實踐(即觀測樣本)來積累經驗修正認知,這就相當於貝葉斯模型中的推斷,即不斷修正先驗分布。
另外與頻率模型相比,貝葉斯模型能把不確定性也考慮進來。我們如果使用貝葉斯模型來對資產未來收益率進行預測的話是可以得到一個概率分布的,這裡包含的信息要比單純的線性回歸得出的一個預期收益要多,這個分布在資產配置上可以發揮一定作用,雖然這個分布的實際意義有待進一步研究。由於在預測時模型考慮了回歸參數的整個概率分布,所以得出的結果通常對樣本中的異常值並不敏感。
最後,也是最重要的一點就是有研究認為模型的貝葉斯化可以看作是正則化的一種有效手段。經典線性模型為了防止過度擬合通常要在目標函數中加入懲罰項,又或者對更大的模型,比如神經網絡,需要壓制神經元活性(dropout)。而模型的貝葉斯化則是防止過度擬合的一種天然手段。
交易模型簡介
首先考慮多個因子的時間序列,當中包含個可觀測因子和個時間段。這裡使用的可觀測因子包括成交量,商品庫存和商品上下遊產物等信息,因子個數範圍一般在20-30之 間,使用資產價格或周頻回報率。但在輸入VAR模型前會通過主成分分析(PCA)的方法減少至 10個以下。為周頻數據,時間長度為1年-4年不等,根據預測效果進行調節。
利用貝葉斯模型可對這些期貨收益率進行預測
其中ft1, ft2, ft3,..為當前周,上一周和上兩周…的特徵因子。A1, A2, A3,…和為貝葉斯模型的係數和截距,其先驗分布均為標準正態分布。同時假設下周回報率為rt的預測誤差 服 從正態分布(0,2) , 其方差2 服從標準對數正態分布。 這裡的參數 ={A1, A2, A3, … , 2}的後驗分布都是通過歷史數據進行馬爾科夫鏈蒙特卡諾或者變分推斷。 在推 斷出後驗分布後就可以計算 rt 的後驗分布了, 也就是給定了當前因子 ={ft1, ft2, ft3, … }下的條件概率分布(rt|, )。
由於使用的市場因子數據有 20-30 個,數量較多,直接導入上述貝葉斯模型進行計算運算量較為龐大,所以這裡使用了 PCA 的方法以較少變量個數。對個市場因子計算其日回報率(利率、匯率等因素直接使用)X1, 2, 3,…做線性變換得到個主成分:
這個主成分1, 2, 3,…有以下特徵:
(1)第一主成分1的方差最大,第二成分2的方差其次,從第一主成分到第二主成分方差依次遞減。
(2)各個主成分間不相關,即對任意主成分和的相關係數為0。
(3)變換前個隨機變量1, 2, 3,…的總方差與個主成分1, 2, 3,…的總方差相等。
模型訓練與選擇
這裡使用滾動時間窗口的剩餘一步交叉驗證法來訓練和選擇模型超參數。在上述模型中,可以選擇的超參數包括PCA後的保留因子個數,回溯周數和訓練窗口長度3個,這三個超參數可以根據模型的樣本外預測效果來進行選擇。這裡以滬銅為例,我們搜集了滬銅自2010年1月起至2017年6 月份的數據,如果訓練窗口長度為3年,那麼我們就用2010年1月至2012年12月約150個周頻樣本對貝葉斯模型進行訓練,然後預測下一周滬銅主力合約的收益率,作為一個樣本外的預測數據。接著把訓練窗口往下移動一周,再對模型進行重新訓練和預測。這樣如果訓練窗口為3年的話,就有約300個樣本外數據,其中前75%的數據作為驗證集用於篩選模型超參數,後25%的數據作為測試集,檢驗模型的預測效果。這裡雖然只有3個超參數,但是可能的組合卻上百,我們在這裡預先設定超參數的可選範圍,從而得到約70組超參數,對每個參數組合計算驗證集中所有樣本的後驗概率
其中T為驗證集中的樣本個數,為每次推斷的模型係數分布。目前使用32線程,2.6Ghz的雙 CPU進行超參數篩選大約需要10小時。
模型評價
在利用上述方法篩選出模型以後,我們也有必要了解貝葉斯模型對樣本內,也就是訓練集數據的解釋程度。其中一個練集數據的解釋程度。其中一個方法是利用公式(3)考察訓練集的後驗概率均值,這個在經典線性回歸裡就相當於擬合度R。但在貝葉斯方法裡,我們也需要考察模型對數據分布的解釋程度,一種常用的方法是後驗預測檢驗(Posterior Predictive Check,PPC)。當模型訓練完成後,可以考察訓練集因變量,即期貨主力合約收益率的某一統計量T(),如均值,最大值和最小值等。然後對訓練集內每一個樣本計算其後驗預測分布,得到訓練集裡每個樣本的T(),從而得到T()的分布。對比T()和T()的分布就能獲得該模型對樣本內數據的解釋程度。
我們使用從2014年1月初至2016年12月底約150周的滬銅主力合約數據訓練模型,首先考察後驗預測均值的分布,如圖1:所示,這段時期,滬銅主力合約的收益率均值 T()在0附近,用黑線表示。後驗均值分布T()較為均勻地分布在T()左右兩側,因此直觀上看該貝葉斯模型能對均值這個統計量能做出較好的解釋。後驗預測檢驗通常會使用值來衡量模型對某個統計量的解釋程度,其定義如下
這實際上就是計算訓練集裡T()T()的數量後除以訓練集的樣本數量,一般值越接近0.5,表示對該統計量解釋度越好。圖1:中的值為0.51,表明該貝葉斯模型在均值上解釋較好。
我們也可以利用後驗預測檢驗來考察該貝葉斯模型對滬銅主力合約尾部風險的解釋程度,統計量為最大值和最小值的情況分別在圖2:和圖3:中給出。由圖可見,黑線距離尾部較大,也就是說在估計最大值和最小值這兩個統計量上,該貝葉斯模型有較大的偏差。同時這兩個統計量的值分別為0.0和0.99,所以該貝葉斯模型在極端風險的估計上會存在較大偏差。一種比較簡單直接的解決方案是在公式(1)中引入一個服從泊松分布的隨機項。
模型的交易回測
我們根據篩選出的最優超參數組合來選擇模型進行交易,模型先預測出滬銅主力合約下一周的收益率分布再根據此計算出滬銅主力合約上漲和下跌的概率,如果上漲概率大於0.5就做多,下跌概率大於0.5就做空。每周最後一個交易日進行預測和調倉,假設以收盤價交易。雖然在2013年 4月至2017年6月期間滬銅主力合約的變化不大,但是無論驗證集和測試集在這段時間裡都能取得較好的年化收益,分別為14.8%和16.7%。夏普率分別為0.9和0.7。雖然利用這個模型交易滬銅的夏普率不高,但是把類似方法應用到其他商品期貨上就有可能獲得一個夏普率較高的商品組合策略。
結果討論
本報告首先對貝葉斯模型進行了基本介紹,然後以滬銅期貨為例,嘗試基於基本面因子,利用貝葉斯線性回歸模型對其主力合約的周度收益進行模型訓練,與經典線性回歸模型相比,貝葉斯模型需要更長的訓練和篩選時間,而且對極端風險也沒法準確解釋,但是該模型在實際交易中能取得一定效果。
作者:華泰期貨研究院量化策略組 量化研究員 陳維嘉
文章來源:微信公眾號要資訊
(責任編輯:王雪冰 HF074)