HMM(隱馬爾科夫模型)在股票上的簡單應(yīng)用

Ricequant團(tuán)隊出品,如需轉(zhuǎn)發(fā)請注明且請私信聯(lián)系,否則必究。

原文:https://www.ricequant.com/community/topic/788/

今天我們來介紹一下HMM隱馬爾科夫模型)在股票上的簡單應(yīng)用。

隱馬爾科夫模型强缘,乍一聽起來好高端,完全不知道是什么鬼不傅,那么就讓我們退一步旅掂,先看看馬爾科夫鏈

馬爾可夫鏈访娶,因安德烈·馬爾可夫(A.A.Markov商虐,1856-1922)得名(就是下面這家伙)肯适,是指數(shù)學(xué)中具有馬爾可夫性質(zhì)的離散事件隨機(jī)過程缀壤。在給定當(dāng)前知識或信息的情況下,過去(即當(dāng)前以前的歷史狀態(tài))對于預(yù)測將來(即當(dāng)前以后的未來狀態(tài))是無關(guān)的桅锄。

該過程中劫哼,每個狀態(tài)的轉(zhuǎn)移只依賴于之前的n個狀態(tài)叮趴,這個過程被稱為1個n階的模型,其中n是影響轉(zhuǎn)移狀態(tài)的數(shù)目权烧。最簡單的馬爾科夫過程就是一階過程眯亦,每一個狀態(tài)的轉(zhuǎn)移只依賴于其之前的那一個狀態(tài)伤溉。

用數(shù)學(xué)表達(dá)式表示就是下面的樣子:

舉一個日常生活中的例子,我們希望根據(jù)當(dāng)前天氣的情況來預(yù)測未來天氣情況妻率。一種辦法就是假設(shè)這個模型的每個狀態(tài)都只依賴于前一個的狀態(tài)乱顾,即馬爾科夫假設(shè),這個假設(shè)可以極大簡化這個問題舌涨。當(dāng)然糯耍,這個例子也是有些不合實際的扔字。但是囊嘉,這樣一個簡化的系統(tǒng)可以有利于我們的分析,所以我們通常接受這樣的假設(shè)革为,因為我們知道這樣的系統(tǒng)能讓我們獲得一些有用的信息扭粱,盡管不是十分準(zhǔn)確的。上面的圖顯示了天氣進(jìn)行轉(zhuǎn)移的模型震檩。

注意一個含有N個狀態(tài)的一階過程有N2個狀態(tài)轉(zhuǎn)移琢蛤。每一個轉(zhuǎn)移的概率叫做狀態(tài)轉(zhuǎn)移概率,就是從一個狀態(tài)轉(zhuǎn)移到另一個狀態(tài)的概率抛虏。這所有的N2個概率可以用一個狀態(tài)轉(zhuǎn)移矩陣來表示博其,上面天氣例子的狀態(tài)轉(zhuǎn)移矩陣如下:這個矩陣表示,如果昨天是陰天迂猴,那么今天有25%的可能是晴天慕淡,12.5%的概率是陰天,62.5%的概率會下雨沸毁,很明顯峰髓,矩陣中每一行的和都是1。

為了初始化這樣一個系統(tǒng)息尺,我們需要一個初始的概率向量:

這個向量表示第一天是晴天携兵。到這里,我們就為上面的一階馬爾科夫過程定義了以下三個部分:

狀態(tài):晴天搂誉、陰天和下雨徐紧。

初始向量:定義系統(tǒng)在時間為0的時候的狀態(tài)的概率。

狀態(tài)轉(zhuǎn)移矩陣:每種天氣轉(zhuǎn)換的概率炭懊。所有的能被這樣描述的系統(tǒng)都是一個馬爾科夫過程并级。

然而,當(dāng)馬爾科夫過程不夠強(qiáng)大的時候凛虽,我們又該怎么辦呢死遭?在某些情況下,馬爾科夫過程不足以描述我們希望發(fā)現(xiàn)的模式凯旋。

比如我們的股市呀潭,如果只是觀測市場钉迷,我們只能知道當(dāng)天的價格、成交量等信息钠署,但是并不知道當(dāng)前股市處于什么樣的狀態(tài)(牛市糠聪、熊市、震蕩谐鼎、反彈等等)舰蟆,在這種情況下我們有兩個狀態(tài)集合,一個可以觀察到的狀態(tài)集合(股市價格成交量狀態(tài)等)和一個隱藏的狀態(tài)集合(股市狀況)狸棍。我們希望能找到一個算法可以根據(jù)股市價格成交量狀況和馬爾科夫假設(shè)來預(yù)測股市的狀況身害。

在上面的這些情況下,可以觀察到的狀態(tài)序列和隱藏的狀態(tài)序列是概率相關(guān)的草戈。于是我們可以將這種類型的過程建模為有一個隱藏的馬爾科夫過程和一個與這個隱藏馬爾科夫過程概率相關(guān)的并且可以觀察到的狀態(tài)集合塌鸯,就是隱馬爾可夫模型

隱馬爾可夫模型(Hidden Markov Model) 是一種統(tǒng)計模型唐片,用來描述一個含有隱含未知參數(shù)的馬爾可夫過程丙猬。其難點是從可觀察的參數(shù)中確定該過程的隱含參數(shù),然后利用這些參數(shù)來作進(jìn)一步的分析费韭。下圖是一個三個狀態(tài)的隱馬爾可夫模型狀態(tài)轉(zhuǎn)移圖茧球,其中x表示隱含狀態(tài),y表示可觀察的輸出星持,a表示狀態(tài)轉(zhuǎn)換概率抢埋,b表示輸出概率。用一個擲篩子的例子闡述一下:假設(shè)我手里有三個不同的骰子钉汗。第一個骰子是我們平常見的骰子(稱這個骰子為D6)羹令,6個面,每個面(1损痰,2福侈,3,4卢未,5肪凛,6)出現(xiàn)的概率是1/6。第二個骰子是個四面體(稱這個骰子為D4)辽社,每個面(1伟墙,2,3滴铅,4)出現(xiàn)的概率是1/4戳葵。第三個骰子有八個面(稱這個骰子為D8),每個面(1汉匙,2拱烁,3生蚁,4,5戏自,6邦投,7,8)出現(xiàn)的概率是1/8擅笔。

假設(shè)我們開始擲骰子志衣,我們先從三個骰子里挑一個,挑到每一個骰子的概率都是1/3猛们。然后我們擲骰子念脯,得到一個數(shù)字,1阅懦,2和二,3,4耳胎,5,6惕它,7怕午,8中的一個。不停的重復(fù)上述過程淹魄,我們會得到一串?dāng)?shù)字郁惜,每個數(shù)字都是1,2甲锡,3兆蕉,4,5缤沦,6虎韵,7,8中的一個缸废。例如我們可能得到這么一串?dāng)?shù)字(擲骰子10次):1 6 3 5 2 7 3 5 2 4

這串?dāng)?shù)字叫做可見狀態(tài)鏈包蓝。但是在隱馬爾可夫模型中,我們不僅僅有這么一串可見狀態(tài)鏈企量,還有一串隱含狀態(tài)鏈测萎。在這個例子里,這串隱含狀態(tài)鏈就是你用的骰子的序列届巩。比如硅瞧,隱含狀態(tài)鏈有可能是:D4 D6 D8 D6 D4 D8 D6 D6 D6 D4。

一般來說恕汇,HMM中說到的馬爾可夫鏈其實是指隱含狀態(tài)鏈腕唧,因為隱含狀態(tài)(骰子)之間存在轉(zhuǎn)換概率冒嫡。在我們這個例子里,D6的下一個狀態(tài)是D4四苇,D6孝凌,D8的概率都是1/3。D4月腋,D8的下一個狀態(tài)是D4蟀架,D6,D8的轉(zhuǎn)換概率也都一樣是1/3榆骚。這樣設(shè)定是為了最開始容易說清楚片拍,但是我們其實是可以隨意設(shè)定轉(zhuǎn)換概率的。比如妓肢,我們可以這樣定義捌省,D6后面不能接D4,D6后面是D6的概率是0.9碉钠,是D8的概率是0.1纲缓。這樣就是一個新的HMM。

同樣的喊废,盡管可見狀態(tài)之間沒有轉(zhuǎn)換概率祝高,但是隱含狀態(tài)和可見狀態(tài)之間有一個概率叫做輸出概率。就我們的例子來說污筷,六面骰子(D6)產(chǎn)生1的輸出概率是1/6工闺。產(chǎn)生2,3瓣蛀,4陆蟆,5,6的概率也都是1/6惋增。我們同樣可以對輸出概率進(jìn)行其他定義叠殷。比如,我有一個被賭場動過手腳的六面骰子器腋,擲出來是1的概率更大溪猿,是1/2,擲出來是2纫塌,3诊县,4,5措左,6的概率是1/10依痊。

其實對于HMM來說,如果提前知道所有隱含狀態(tài)之間的轉(zhuǎn)換概率和所有隱含狀態(tài)到所有可見狀態(tài)之間的輸出概率,做模擬是相當(dāng)容易的胸嘁。但是應(yīng)用HMM模型時候呢瓶摆,往往是缺失了一部分信息的,有時候你知道骰子有幾種性宏,每種骰子是什么群井,但是不知道擲出來的骰子序列;有時候你只是看到了很多次擲骰子的結(jié)果毫胜,剩下的什么都不知道书斜。如果應(yīng)用算法去估計這些缺失的信息,就成了一個很重要的問題酵使。

和HMM模型相關(guān)的算法主要分為三類荐吉,分別解決三種問題:

知道骰子有幾種(隱含狀態(tài)數(shù)量),每種骰子是什么(轉(zhuǎn)換概率)口渔,根據(jù)擲骰子擲出的結(jié)果(可見狀態(tài)鏈)样屠,我想知道每次擲出來的都是哪種骰子(隱含狀態(tài)鏈)。

還是知道骰子有幾種(隱含狀態(tài)數(shù)量)缺脉,每種骰子是什么(轉(zhuǎn)換概率)痪欲,根據(jù)擲骰子擲出的結(jié)果(可見狀態(tài)鏈),我想知道擲出這個結(jié)果的概率枪向。

知道骰子有幾種(隱含狀態(tài)數(shù)量)勤揩,不知道每種骰子是什么(轉(zhuǎn)換概率),觀測到很多次擲骰子的結(jié)果(可見狀態(tài)鏈)秘蛔,我想反推出每種骰子是什么(轉(zhuǎn)換概率)。

如果要解決上面股市中的問題傍衡,我們就需要解決問題1和問題3深员,下面我們就看看如何實現(xiàn)。

原文及實現(xiàn):HMM在股票上的簡單應(yīng)用



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蛙埂,一起剝皮案震驚了整個濱河市倦畅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绣的,老刑警劉巖叠赐,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異屡江,居然都是意外死亡芭概,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進(jìn)店門惩嘉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來罢洲,“玉大人,你說我怎么就攤上這事文黎∪敲纾” “怎么了殿较?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長桩蓉。 經(jīng)常有香客問我淋纲,道長,這世上最難降的妖魔是什么院究? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任洽瞬,我火速辦了婚禮,結(jié)果婚禮上儡首,老公的妹妹穿的比我還像新娘片任。我一直安慰自己,他們只是感情好蔬胯,可當(dāng)我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布对供。 她就那樣靜靜地躺著,像睡著了一般氛濒。 火紅的嫁衣襯著肌膚如雪产场。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天舞竿,我揣著相機(jī)與錄音京景,去河邊找鬼。 笑死骗奖,一個胖子當(dāng)著我的面吹牛确徙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播执桌,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼鄙皇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了仰挣?” 一聲冷哼從身側(cè)響起伴逸,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎膘壶,沒想到半個月后错蝴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡颓芭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年顷锰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片畜伐。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡馍惹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情万矾,我是刑警寧澤悼吱,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站良狈,受9級特大地震影響后添,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜薪丁,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一遇西、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧严嗜,春花似錦粱檀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至睦优,卻和暖如春渗常,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背汗盘。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工皱碘, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人隐孽。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓癌椿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親菱阵。 傳聞我的和親對象是個殘疾皇子如失,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容