HMM 理論基礎及金融市場的應用(一)

HMM 理論基礎及金融市場的應用(一)

來自專欄量化研究每周精選

貝葉斯定理到貝葉斯網

貝葉斯公式

上面是我們耳熟能詳的貝葉斯公式,為什麼要從這個基本公式講起呢?原因在於現代統計模型和概率模型的靈魂便是條件分布,而條件分布的理論基礎便是這個簡單的貝葉斯公式。

單純講數學未免太枯燥,我們用簡單的例子來說明這個概念。比如我們有隻股票S,簡單起見,它只有兩種狀態{U,D},U和D分別表示上漲和下跌。如果我們想知道它每天上漲和下跌的概率,只需要簡單得統計歷史中上漲和下跌的天數就好了,看如下示意圖

這個便是我們關於任意一天股票S漲跌X的後驗分布:

有些讀者也許覺得不滿意,這根本就是完全隨機嘛,為什麼不把昨天的漲跌數據算進去呢?當然可以,只不過這次我們要重新搜集事件樣本,原來我們默認每天的漲跌作為一個事件並對其進行頻數統計,現在我們要把兩個連續的漲跌定義為一個事件。 下面的第一個是頻數表格,行表示前一天的狀態,即條件,列表示今天的狀態,當我們把每一行的數據進行0-1正規化,便得到了我們右邊的條件概率二聯表,而我們對這個概率的計算方式正好就是貝葉斯公式:

這時候,我們的條件概率分布為:

留意的讀者會發現,我們的表格變成二維的了。當然,我們還可以繼續擴展,比如把前一天的價格也考慮進去,我們的條件概率表變成三維的了,讀者可以類比正方體(二維正好是四個方塊構成的正方形)。 第一層表格代表前天價格上漲的情況,第二層表代表前天價格下跌的情況:

所以,大家可以看到,隨著我們條件信息的增多,我們需要表示條件概率分布的複雜度也在呈現指數上升。在我們的例子里,複雜度為2的n次方,其中n為條件信息的數量。 在這裡的複雜度,我們可以理解為需要表示或存儲條件概率分布的空間複雜度,也可以理解為我們需要估計的參數的數量。

這裡我們還要再對比一下連續分布函數,對於條件連續分布,它的複雜性更多地不是空間複雜度,而是分析複雜度,超過一定的複雜度,很可能我們的理論框架和工具就很難處理了,或者沒有必要。

貝葉斯網

在這裡,基於我們的目的,我們暫且把貝葉斯網看成是一種對概率分布的建模工具或者可視化表述,下面舉了一些例子:

大家可以從上總結出一些規律,單變數分布代表「起始」節點,即沒有進入箭頭,只有出去的箭頭。條件分布中的條件變數代表父節點,隨機變數代表子節點。這樣我們就發現,貌似所有的聯合概率分布都可以用DAG(有向無環圖)來表示。

那我們來嘗試用DAG來表示一個序列(5個隨機變數)的聯合概率分布:

這個DAG一共有10條邊,如果增加到6個隨機變數,就有15條邊,同理類推,n個隨機變數就有2/n(n-1)條邊。而長度超過100的隨機序列很正常,那將需要4950條邊才能完整表述我們的聯合概率分布,這裡每一條邊都代表一個我們需要建模的概率分布! 為了減少問題的複雜性,我們通過概率獨立性和條件獨立來解決這個問題。

隱含馬爾科夫模型

沒錯,這個DAG就是隱含馬爾科夫模型,我們只需要引入下面兩個假設就能得到:

於是有聯合概率分布:

對於類似HMM的這類時序模型temporal models,有幾個概念我們要總結一下:

Filtering

Filtering相當於在線計算P(zt|x1:t)。Filtering我不知道正確的中文學名是什麼,是濾波還是過濾,歡迎大家告訴我。 filtering其實就是用當前時間之前的所有歷史數據(含當前時間的數據)去估計擬合狀態最好的當前隱含狀態。這裡的當前要著重強調一下,「當前」可以代表實時時間(實時在線學習), 這代表當前時間是動態變化在,在模型學習和推斷的時候也是一樣。

Smoothing

Smoothing相當於離線計算P(zt|x1:T)。Smoothing中文學名叫平滑,大家可能很熟悉。它的意思就是利用相對於當前時間點所有的歷史和未來數據,來估計當前的隱含狀態。

Prediction

Prediction很自然就是基於當前及歷史數據,預測未來隱含狀態,即P(zt+h|x1:t)。還有一種預測類型,就是預測未來觀測值,即P(xt+h|x1:t)。

MAP

這裡的後驗估計就是argmaxz1:TP(z1:T|x1:T),即最有可能的狀態序列。在HMM的框架里,Viterbi演算法是最有名的一個。再強調一下,這裡的MAP是估計的最優序列,和平滑得到的結果可能不一樣, 平滑是對某個時點狀態的最優估計,不是狀態序列。

Posterior samples

有時候,比起隱含狀態的估計序列,或許我們對基於後驗分布生成得到的隱含序列樣本更感興趣,即P(z1:T|x1:T)。

HMM模型與高斯混合模型比較

高斯混合模型

高斯混合模型理論本質很簡單,就是有兩個或者多個高斯模型混合在一起了,然後我們的任務就是估計每個高斯分布的參數以及它們組合起來的方式(也是概率)。如下示意圖,左邊是我們得到的一個經驗分布,明顯可以看到有兩個峰。 如果我們假設是多個高斯組成的,那麼我們可以把它拆分成多個條件概率分布,每個條件概率分布就是一個高斯,之後我們會用一些演算法(比如MLE估計)來得到這些參數。

HMM

HMM和高斯混合模型有些類似,但又有不同的地方。它繼承了高斯混合模型的特性,比如後驗觀測分布可以由多個不同的分布構成。但是最大的不同在於不同分布的出現是有記憶的,在高斯混合分布里,它判斷某個觀測值由哪個分布產生取決於 觀測值在多個條件分布下的擬合效果。比如上圖如果我們的觀測值出現在第二個峰左右,那麼它很有可能是由一個右偏分布生成的,也就是說推斷它是哪個分布生成,只取決於當前觀測值,和之前的歷史沒什麼關係。而在HMM模型下,判斷當前觀測值 是由哪個分布生成不僅取決於當前觀測值,還依賴於歷史。

看我們如下示意圖,左邊是我們的無條件後驗分布,但我們對後驗經驗分布的建模或者分解的方式不同,我們會考慮到序列的時序特徵。看下圖的右邊,我們不僅把後驗分布拆分成了兩個不用的分布,它們之間出現的頻率還有一定的規律, 紅色狀態後更容易出現紅色狀態,綠色狀態也更容易跟這一個紅色狀態。這個假設就比高斯混合更近,高斯混合只會考慮這兩個狀態的出現頻率,而不會考慮時序關聯性。

實際上HMM對時序狀態的記憶很短,在決定當前是哪個狀態是,它只會根據上一個狀態做出決策。我們對HMM的「記憶」模型用馬爾科夫鏈展示出來

HMM在金融市場的研究淺析

下面我們用一個小案例來說明HMM,我們選取滬深300與恒生指數來作為我們的觀測序列,為了平穩化,我們轉換成收益率。(詳細代碼部分可點擊原文進行查看)

有了一個直觀的認識後,我們來用HMM對這個聯合概率分布進行建模,觀測分布我們用高斯正太。由於我們不知道應該選擇多少個隱含狀態,於是我們分別試下2、3、4個不同的隱含狀態數量。 當HMM訓練過後,我們分別可視化驗證一下每個狀態下的觀測分布,以及參數分布(詳細代碼部分點擊原文查看):

我們先來研究隱含狀態數量為2時的參數分布,我們不難從均值的散點圖中看到,HMM把隱含狀態分為同漲和同跌兩種狀態,從方差看在同跌情況下要大的多。

再來看下隱含狀態數量為3時的參數分布情況,HMM把市場分為同漲、同跌以及非同步狀態(即市場漲跌方向相反)。從均值方差看,非同步狀態是滬深指數最慘、波動率最大的時候。

最後我們看到隱含狀態數量為4時,觀測分布就不太均衡,狀態1和狀態2下面沒多少觀測值,狀態1代表市場同步大跌,狀態2是市場同步輕微下跌。狀態0代表滬深輕微震蕩、恒生輕微上漲,狀態3則是同步上漲。

當然,隱含狀態的劃分不一定要有經驗意義,可以理解為是聚類演算法的一種。每個類也不一定要均衡。

接下來我們再來研究下它們的轉移矩陣:

我們不難總結出,不管是在2和3個隱含狀態數量時,每個狀態95%以上的概率會維持自身狀態,這是否說明了市場動量的慣性特徵?

在4個隱含狀態時,狀態0和4有更多可能會繼續留在原狀態,其中狀態4還有19%的概率會變成狀態三,大漲過後更容易調整?狀態1有96%的概率繼續留在原狀態,並且有不到4%的概率會切換成0狀態,看來市場下跌的慣性也很大。 然後狀態2有78%的概率會變成71%,27%的概率留在原狀態。

我不想過分去解釋這些隱含狀態,有些人為性,我們直接來看數據擬合效果,這裡為了演示目的,我們只展示三個隱含狀態數量的MAP狀態序列估計(詳細代碼點擊下方閱讀原文查看):

這裡大家看到了滬深和恆指在MAP最優隱含狀態序列,有什麼規律大家自己去看。這裡只想強調一點,HMM的隱含狀態本質上可以理解為聚類,給我們提供了另外一種視角來看待問題,它本身不知道隱含狀態的意義,只是擬合出來的結果,Thats it。 另外,大家在觀測上圖模式的時候,一定要記住,HMM是根據觀測分布來劃分不同的聯合分布,本身也沒有太多的「記憶」。大家還可以再加入其他的變數,及調整隱含狀態數量。

總結

  • HMM是一個概率模型,對於觀測量分布和狀態分布均有概率解釋
  • HMM是一個時序模型,對狀態序列做了自相關一階的建模和假設,即馬爾科夫假設
  • HMM是一個非監督學習模型,可以看成是一個聚類模型,隱狀態可以給我們看待問題的全新角度
  • HMM是一個預測模型,對未來觀測值的預測本質上就是隱狀態所代表的概率分布的加權平均
  • HMM是一個貝葉斯模型,可以對觀測分布預設初始信念參數
  • HMM需要預設隱狀態數量,這個有一定的人為性
  • HMM需要預測觀測分布,比如高斯分布、高斯混合分布
  • HMM對狀態序列平滑的效果似乎要超過對狀態預測的效果,最著名的就是Viterbi演算法

預告:《ML系列》下期可能推出關於HMM的演算法詳解和實現

策略完整代碼:《HMM 理論基礎及金融市場的應用(一)》

本文由BigQuant《量化研究每周精選》原創推出,版權歸BigQuant所有,轉載請註明出處


  • 更多精彩文章歡迎前往BigQuant社區查看並參與討論:BigQuant人工智慧量化社區
  • 加入 人工智慧量化投資交流群,與大牛共討人工智慧量化話題:微信搜索 bigq100,添加微信群管理員微信,附上姓名、所在機構、部門和職位,審核後管理員會邀請您入群。

  • 關注 BigQuant 微信公眾號,及時獲取新鮮資訊:微信搜索 BigQuant, 獲取更多人工智慧、Machine Learning、量化投資相關文章。

推薦閱讀:

圖解微積分:特殊函數讓多重derivative計算變得簡單高效
Google開放最大目標檢測數據集,還要為它舉辦AI挑戰賽
Day1-《The Introduction of Statistical Learning》-學習筆記
218個機器學習術語辭彙表(收藏)

TAG:金融 | 人工智慧 | 機器學習 |